summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--dist/gateway/src/schema/Activity.d.ts79
-rw-r--r--dist/gateway/src/schema/Activity.js44
-rw-r--r--dist/gateway/src/schema/Activity.js.map1
-rw-r--r--dist/gateway/src/schema/Emoji.d.ts10
-rw-r--r--dist/gateway/src/schema/Emoji.js9
-rw-r--r--dist/gateway/src/schema/Emoji.js.map1
-rw-r--r--dist/gateway/src/schema/Identify.d.ts68
-rw-r--r--dist/gateway/src/schema/Identify.js20
-rw-r--r--dist/gateway/src/schema/Identify.js.map1
-rw-r--r--dist/index.d.ts6
-rw-r--r--dist/index.js11
-rw-r--r--dist/index.js.map2
-rw-r--r--dist/models/Event.d.ts1
-rw-r--r--dist/models/Event.js.map2
-rw-r--r--dist/models/Guild.d.ts4
-rw-r--r--dist/models/Role.d.ts4
-rw-r--r--dist/server-util/src/index.d.ts20
-rw-r--r--dist/server-util/src/index.js49
-rw-r--r--dist/server-util/src/index.js.map1
-rw-r--r--dist/server-util/src/models/Channel.d.ts19
-rw-r--r--dist/server-util/src/models/Channel.js3
-rw-r--r--dist/server-util/src/models/Channel.js.map1
-rw-r--r--dist/server-util/src/models/Emoji.d.ts12
-rw-r--r--dist/server-util/src/models/Emoji.js3
-rw-r--r--dist/server-util/src/models/Emoji.js.map1
-rw-r--r--dist/server-util/src/models/Event.d.ts8
-rw-r--r--dist/server-util/src/models/Event.js4
-rw-r--r--dist/server-util/src/models/Event.js.map1
-rw-r--r--dist/server-util/src/models/Guild.d.ts47
-rw-r--r--dist/server-util/src/models/Guild.js3
-rw-r--r--dist/server-util/src/models/Guild.js.map1
-rw-r--r--dist/server-util/src/models/Invite.d.ts30
-rw-r--r--dist/server-util/src/models/Invite.js3
-rw-r--r--dist/server-util/src/models/Invite.js.map1
-rw-r--r--dist/server-util/src/models/Member.d.ts13
-rw-r--r--dist/server-util/src/models/Member.js3
-rw-r--r--dist/server-util/src/models/Member.js.map1
-rw-r--r--dist/server-util/src/models/Role.d.ts13
-rw-r--r--dist/server-util/src/models/Role.js3
-rw-r--r--dist/server-util/src/models/Role.js.map1
-rw-r--r--dist/server-util/src/models/User.d.ts61
-rw-r--r--dist/server-util/src/models/User.js3
-rw-r--r--dist/server-util/src/models/User.js.map1
-rw-r--r--dist/server-util/src/util/BitField.d.ts66
-rw-r--r--dist/server-util/src/util/BitField.js127
-rw-r--r--dist/server-util/src/util/BitField.js.map1
-rw-r--r--dist/server-util/src/util/Config.d.ts13
-rw-r--r--dist/server-util/src/util/Config.js28
-rw-r--r--dist/server-util/src/util/Config.js.map1
-rw-r--r--dist/server-util/src/util/Constants.d.ts2
-rw-r--r--dist/server-util/src/util/Constants.js5
-rw-r--r--dist/server-util/src/util/Constants.js.map1
-rw-r--r--dist/server-util/src/util/Database.d.ts3
-rw-r--r--dist/server-util/src/util/Database.js10
-rw-r--r--dist/server-util/src/util/Database.js.map1
-rw-r--r--dist/server-util/src/util/Intents.d.ts20
-rw-r--r--dist/server-util/src/util/Intents.js25
-rw-r--r--dist/server-util/src/util/Intents.js.map1
-rw-r--r--dist/server-util/src/util/MessageFlags.d.ts10
-rw-r--r--dist/server-util/src/util/MessageFlags.js17
-rw-r--r--dist/server-util/src/util/MessageFlags.js.map1
-rw-r--r--dist/server-util/src/util/Permissions.d.ts45
-rw-r--r--dist/server-util/src/util/Permissions.js55
-rw-r--r--dist/server-util/src/util/Permissions.js.map1
-rw-r--r--dist/server-util/src/util/Snowflake.d.ts58
-rw-r--r--dist/server-util/src/util/Snowflake.js116
-rw-r--r--dist/server-util/src/util/Snowflake.js.map1
-rw-r--r--dist/server-util/src/util/String.d.ts3
-rw-r--r--dist/server-util/src/util/String.js10
-rw-r--r--dist/server-util/src/util/String.js.map1
-rw-r--r--dist/server-util/src/util/UserFlags.d.ts18
-rw-r--r--dist/server-util/src/util/UserFlags.js25
-rw-r--r--dist/server-util/src/util/UserFlags.js.map1
-rw-r--r--dist/server-util/src/util/checkToken.d.ts1
-rw-r--r--dist/server-util/src/util/checkToken.js20
-rw-r--r--dist/server-util/src/util/checkToken.js.map1
-rw-r--r--src/Schema/Activity.ts81
-rw-r--r--src/Schema/Emoji.ts11
-rw-r--r--src/Schema/Guild.ts35
-rw-r--r--src/Schema/Identify.ts33
-rw-r--r--src/index.ts10
-rw-r--r--src/models/Event.ts1
-rw-r--r--src/models/Guild.ts4
-rw-r--r--src/models/Role.ts4
84 files changed, 1243 insertions, 193 deletions
diff --git a/dist/gateway/src/schema/Activity.d.ts b/dist/gateway/src/schema/Activity.d.ts
new file mode 100644

index 00000000..e5f276d6 --- /dev/null +++ b/dist/gateway/src/schema/Activity.d.ts
@@ -0,0 +1,79 @@ +import { EmojiSchema } from "./Emoji"; +export declare const ActivitySchema: { + afk: BooleanConstructor; + status: StringConstructor; + $activities: { + name: StringConstructor; + type: NumberConstructor; + $url: StringConstructor; + $created_at: NumberConstructor; + $timestamps: { + start: NumberConstructor; + end: NumberConstructor; + }; + $application_id: BigIntConstructor; + $details: StringConstructor; + $State: StringConstructor; + $emoji: { + name: StringConstructor; + $id: BigIntConstructor; + animated: BooleanConstructor; + }; + $party: { + $id: StringConstructor; + $size: NumberConstructor[]; + }; + $assets: { + $large_image: StringConstructor; + $large_text: StringConstructor; + $small_image: StringConstructor; + $small_text: StringConstructor; + }; + $secrets: { + $join: StringConstructor; + $spectate: StringConstructor; + $match: StringConstructor; + }; + $instance: BooleanConstructor; + flags: BigIntConstructor; + }[]; + $since: NumberConstructor; +}; +export interface ActivitySchema { + afk: boolean; + status: string; + activities?: [ + { + name: string; + type: number; + url?: string; + created_at?: number; + timestamps?: { + start: number; + end: number; + }; + application_id?: bigint; + details?: string; + State?: string; + emoji?: EmojiSchema; + party?: { + id?: string; + size?: [number]; + }; + assets?: { + large_image?: string; + large_text?: string; + small_image?: string; + small_text?: string; + }; + secrets?: { + join?: string; + spectate?: string; + match?: string; + }; + instance?: boolean; + flags: bigint; + } + ]; + since?: number; +} diff --git a/dist/gateway/src/schema/Activity.js b/dist/gateway/src/schema/Activity.js new file mode 100644
index 00000000..cbca224c --- /dev/null +++ b/dist/gateway/src/schema/Activity.js
@@ -0,0 +1,44 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ActivitySchema = void 0; +const Emoji_1 = require("./Emoji"); +exports.ActivitySchema = { + afk: Boolean, + status: String, + $activities: [ + { + name: String, + type: Number, + $url: String, + $created_at: Number, + $timestamps: { + // unix timestamps for start and/or end of the game + start: Number, + end: Number, + }, + $application_id: BigInt, + $details: String, + $State: String, + $emoji: Emoji_1.EmojiSchema, + $party: { + $id: String, + $size: [Number], + }, + $assets: { + $large_image: String, + $large_text: String, + $small_image: String, + $small_text: String, + }, + $secrets: { + $join: String, + $spectate: String, + $match: String, + }, + $instance: Boolean, + flags: BigInt, + }, + ], + $since: Number, +}; +//# sourceMappingURL=Activity.js.map \ No newline at end of file diff --git a/dist/gateway/src/schema/Activity.js.map b/dist/gateway/src/schema/Activity.js.map new file mode 100644
index 00000000..da873ecc --- /dev/null +++ b/dist/gateway/src/schema/Activity.js.map
@@ -0,0 +1 @@ +{"version":3,"file":"Activity.js","sourceRoot":"","sources":["../../../../../gateway/src/schema/Activity.ts"],"names":[],"mappings":";;;AAAA,mCAAsC;AAEzB,QAAA,cAAc,GAAG;IAC7B,GAAG,EAAE,OAAO;IACZ,MAAM,EAAE,MAAM;IACd,WAAW,EAAE;QACZ;YACC,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,MAAM;YACZ,WAAW,EAAE,MAAM;YACnB,WAAW,EAAE;gBACZ,mDAAmD;gBACnD,KAAK,EAAE,MAAM;gBACb,GAAG,EAAE,MAAM;aACX;YACD,eAAe,EAAE,MAAM;YACvB,QAAQ,EAAE,MAAM;YAChB,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,mBAAW;YACnB,MAAM,EAAE;gBACP,GAAG,EAAE,MAAM;gBACX,KAAK,EAAE,CAAC,MAAM,CAAC;aACf;YACD,OAAO,EAAE;gBACR,YAAY,EAAE,MAAM;gBACpB,WAAW,EAAE,MAAM;gBACnB,YAAY,EAAE,MAAM;gBACpB,WAAW,EAAE,MAAM;aACnB;YACD,QAAQ,EAAE;gBACT,KAAK,EAAE,MAAM;gBACb,SAAS,EAAE,MAAM;gBACjB,MAAM,EAAE,MAAM;aACd;YACD,SAAS,EAAE,OAAO;YAClB,KAAK,EAAE,MAAM;SACb;KACD;IACD,MAAM,EAAE,MAAM;CACd,CAAC"} \ No newline at end of file diff --git a/dist/gateway/src/schema/Emoji.d.ts b/dist/gateway/src/schema/Emoji.d.ts new file mode 100644
index 00000000..da4770e9 --- /dev/null +++ b/dist/gateway/src/schema/Emoji.d.ts
@@ -0,0 +1,10 @@ +export declare const EmojiSchema: { + name: StringConstructor; + $id: BigIntConstructor; + animated: BooleanConstructor; +}; +export interface EmojiSchema { + name: string; + id?: bigint; + animated: Boolean; +} diff --git a/dist/gateway/src/schema/Emoji.js b/dist/gateway/src/schema/Emoji.js new file mode 100644
index 00000000..79213bce --- /dev/null +++ b/dist/gateway/src/schema/Emoji.js
@@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.EmojiSchema = void 0; +exports.EmojiSchema = { + name: String, + $id: BigInt, + animated: Boolean, +}; +//# sourceMappingURL=Emoji.js.map \ No newline at end of file diff --git a/dist/gateway/src/schema/Emoji.js.map b/dist/gateway/src/schema/Emoji.js.map new file mode 100644
index 00000000..5e53526e --- /dev/null +++ b/dist/gateway/src/schema/Emoji.js.map
@@ -0,0 +1 @@ +{"version":3,"file":"Emoji.js","sourceRoot":"","sources":["../../../../../gateway/src/schema/Emoji.ts"],"names":[],"mappings":";;;AAAa,QAAA,WAAW,GAAG;IAC1B,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,MAAM;IACX,QAAQ,EAAE,OAAO;CACjB,CAAC"} \ No newline at end of file diff --git a/dist/gateway/src/schema/Identify.d.ts b/dist/gateway/src/schema/Identify.d.ts new file mode 100644
index 00000000..750f2871 --- /dev/null +++ b/dist/gateway/src/schema/Identify.d.ts
@@ -0,0 +1,68 @@ +import { ActivitySchema } from "./Activity"; +export declare const IdentifySchema: { + token: StringConstructor; + intents: BigIntConstructor; + $properties: { + $$os: StringConstructor; + $$browser: StringConstructor; + $$device: StringConstructor; + }; + $presence: { + afk: BooleanConstructor; + status: StringConstructor; + $activities: { + name: StringConstructor; + type: NumberConstructor; + $url: StringConstructor; + $created_at: NumberConstructor; + $timestamps: { + start: NumberConstructor; + end: NumberConstructor; + }; + $application_id: BigIntConstructor; + $details: StringConstructor; + $State: StringConstructor; + $emoji: { + name: StringConstructor; + $id: BigIntConstructor; + animated: BooleanConstructor; + }; + $party: { + $id: StringConstructor; + $size: NumberConstructor[]; + }; + $assets: { + $large_image: StringConstructor; + $large_text: StringConstructor; + $small_image: StringConstructor; + $small_text: StringConstructor; + }; + $secrets: { + $join: StringConstructor; + $spectate: StringConstructor; + $match: StringConstructor; + }; + $instance: BooleanConstructor; + flags: BigIntConstructor; + }[]; + $since: NumberConstructor; + }; + $compress: BooleanConstructor; + $large_threshold: NumberConstructor; + $shard: NumberConstructor[]; + $guild_subscriptions: BooleanConstructor; +}; +export interface IdentifySchema { + token: string; + properties: { + $$os: string; + $$browser: string; + $$device: string; + }; + intents: bigint; + presence?: ActivitySchema; + compress?: boolean; + large_threshold?: number; + shard?: [number]; + guild_subscriptions?: boolean; +} diff --git a/dist/gateway/src/schema/Identify.js b/dist/gateway/src/schema/Identify.js new file mode 100644
index 00000000..3cc343c8 --- /dev/null +++ b/dist/gateway/src/schema/Identify.js
@@ -0,0 +1,20 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.IdentifySchema = void 0; +const Activity_1 = require("./Activity"); +exports.IdentifySchema = { + token: String, + intents: BigInt, + $properties: { + // bruh discord really uses $ in the property key, so we need to double prefix it, because instanceOf treats $ (prefix) as a optional key + $$os: String, + $$browser: String, + $$device: String, + }, + $presence: Activity_1.ActivitySchema, + $compress: Boolean, + $large_threshold: Number, + $shard: [Number], + $guild_subscriptions: Boolean, +}; +//# sourceMappingURL=Identify.js.map \ No newline at end of file diff --git a/dist/gateway/src/schema/Identify.js.map b/dist/gateway/src/schema/Identify.js.map new file mode 100644
index 00000000..b0389550 --- /dev/null +++ b/dist/gateway/src/schema/Identify.js.map
@@ -0,0 +1 @@ +{"version":3,"file":"Identify.js","sourceRoot":"","sources":["../../../../../gateway/src/schema/Identify.ts"],"names":[],"mappings":";;;AAAA,yCAA4C;AAE/B,QAAA,cAAc,GAAG;IAC7B,KAAK,EAAE,MAAM;IACb,OAAO,EAAE,MAAM;IACf,WAAW,EAAE;QACZ,yIAAyI;QACzI,IAAI,EAAE,MAAM;QACZ,SAAS,EAAE,MAAM;QACjB,QAAQ,EAAE,MAAM;KAChB;IACD,SAAS,EAAE,yBAAc;IACzB,SAAS,EAAE,OAAO;IAClB,gBAAgB,EAAE,MAAM;IACxB,MAAM,EAAE,CAAC,MAAM,CAAC;IAChB,oBAAoB,EAAE,OAAO;CAC7B,CAAC"} \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts
index edfb4d90..f6968189 100644 --- a/dist/index.d.ts +++ b/dist/index.d.ts
@@ -10,10 +10,6 @@ import { Invite } from "./models/Invite"; import { Member } from "./models/Member"; import { Role } from "./models/Role"; import { User } from "./models/User"; -import { EmojiSchema } from "./Schema/Emoji"; -import { ActivitySchema } from "./Schema/Activity"; -import { IdentifySchema } from "./Schema/Identify"; -import { GuildSchema } from "./Schema/Guild"; import { trimSpecial } from "./util/String"; import { BitField } from "./util/BitField"; import { Intents } from "./util/Intents"; @@ -21,4 +17,4 @@ import { MessageFlags } from "./util/MessageFlags"; import { Permissions } from "./util/Permissions"; import { Snowflake } from "./util/Snowflake"; import { UserFlags } from "./util/UserFlags"; -export { trimSpecial, checkToken, Config, Constants, db, BitField, DefaultOptions, Permissions, MessageFlags, UserFlags, Snowflake, Intents, Channel, Event, Emoji, Guild, Invite, Member, Role, User, EmojiSchema, ActivitySchema, IdentifySchema, GuildSchema, }; +export { trimSpecial, checkToken, Config, Constants, db, BitField, DefaultOptions, Permissions, MessageFlags, UserFlags, Snowflake, Intents, Channel, Event, Emoji, Guild, Invite, Member, Role, User, }; diff --git a/dist/index.js b/dist/index.js
index 118d3fed..80fdef3b 100644 --- a/dist/index.js +++ b/dist/index.js
@@ -22,7 +22,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); -exports.GuildSchema = exports.IdentifySchema = exports.ActivitySchema = exports.EmojiSchema = exports.Intents = exports.Snowflake = exports.UserFlags = exports.MessageFlags = exports.Permissions = exports.DefaultOptions = exports.BitField = exports.db = exports.Constants = exports.Config = exports.checkToken = exports.trimSpecial = void 0; +exports.Intents = exports.Snowflake = exports.UserFlags = exports.MessageFlags = exports.Permissions = exports.DefaultOptions = exports.BitField = exports.db = exports.Constants = exports.Config = exports.checkToken = exports.trimSpecial = void 0; const checkToken_1 = require("./util/checkToken"); Object.defineProperty(exports, "checkToken", { enumerable: true, get: function () { return checkToken_1.checkToken; } }); const Config_1 = __importStar(require("./util/Config")); @@ -32,15 +32,6 @@ const Database_1 = __importDefault(require("./util/Database")); exports.db = Database_1.default; const Constants = __importStar(require("./util/Constants")); exports.Constants = Constants; -//* schema -const Emoji_1 = require("./Schema/Emoji"); -Object.defineProperty(exports, "EmojiSchema", { enumerable: true, get: function () { return Emoji_1.EmojiSchema; } }); -const Activity_1 = require("./Schema/Activity"); -Object.defineProperty(exports, "ActivitySchema", { enumerable: true, get: function () { return Activity_1.ActivitySchema; } }); -const Identify_1 = require("./Schema/Identify"); -Object.defineProperty(exports, "IdentifySchema", { enumerable: true, get: function () { return Identify_1.IdentifySchema; } }); -const Guild_1 = require("./Schema/Guild"); -Object.defineProperty(exports, "GuildSchema", { enumerable: true, get: function () { return Guild_1.GuildSchema; } }); const String_1 = require("./util/String"); Object.defineProperty(exports, "trimSpecial", { enumerable: true, get: function () { return String_1.trimSpecial; } }); const BitField_1 = require("./util/BitField"); diff --git a/dist/index.js.map b/dist/index.js.map
index 5278ab07..b6b17220 100644 --- a/dist/index.js.map +++ b/dist/index.js.map
@@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA+C;AA8B9C,2FA9BQ,uBAAU,OA8BR;AA7BX,wDAAuD;AA8BtD,iBA9BM,gBAAM,CA8BN;AAIN,+FAlCgB,uBAAc,OAkChB;AAjCf,+DAAiC;AA+BhC,aA/BM,kBAAE,CA+BN;AA7BH,4DAA8C;AA4B7C,8BAAS;AAlBV,WAAW;AACX,0CAA6C;AAkC5C,4FAlCQ,mBAAW,OAkCR;AAjCZ,gDAAmD;AAkClD,+FAlCQ,yBAAc,OAkCR;AAjCf,gDAAmD;AAkClD,+FAlCQ,yBAAc,OAkCR;AAjCf,0CAA6C;AAkC5C,4FAlCQ,mBAAW,OAkCR;AAhCZ,0CAA4C;AAS3C,4FATQ,oBAAW,OASR;AARZ,8CAA2C;AAa1C,yFAbQ,mBAAQ,OAaR;AAZT,4CAAyC;AAkBxC,wFAlBQ,iBAAO,OAkBR;AAjBR,sDAAmD;AAclD,6FAdQ,2BAAY,OAcR;AAbb,oDAAiD;AAYhD,4FAZQ,yBAAW,OAYR;AAXZ,gDAA6C;AAc5C,0FAdQ,qBAAS,OAcR;AAbV,gDAA6C;AAY5C,0FAZQ,qBAAS,OAYR"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA+C;AAwB9C,2FAxBQ,uBAAU,OAwBR;AAvBX,wDAAuD;AAwBtD,iBAxBM,gBAAM,CAwBN;AAIN,+FA5BgB,uBAAc,OA4BhB;AA3Bf,+DAAiC;AAyBhC,aAzBM,kBAAE,CAyBN;AAvBH,4DAA8C;AAsB7C,8BAAS;AAZV,0CAA4C;AAS3C,4FATQ,oBAAW,OASR;AARZ,8CAA2C;AAa1C,yFAbQ,mBAAQ,OAaR;AAZT,4CAAyC;AAkBxC,wFAlBQ,iBAAO,OAkBR;AAjBR,sDAAmD;AAclD,6FAdQ,2BAAY,OAcR;AAbb,oDAAiD;AAYhD,4FAZQ,yBAAW,OAYR;AAXZ,gDAA6C;AAc5C,0FAdQ,qBAAS,OAcR;AAbV,gDAA6C;AAY5C,0FAZQ,qBAAS,OAYR"} \ No newline at end of file diff --git a/dist/models/Event.d.ts b/dist/models/Event.d.ts
index 969baef8..a86f3c07 100644 --- a/dist/models/Event.d.ts +++ b/dist/models/Event.d.ts
@@ -1,6 +1,7 @@ export interface Event { guild_id?: bigint; user_id?: bigint; + channel_id?: bigint; created_at: number; data: any; event: string; diff --git a/dist/models/Event.js.map b/dist/models/Event.js.map
index 0253f5dc..4f46ac0a 100644 --- a/dist/models/Event.js.map +++ b/dist/models/Event.js.map
@@ -1 +1 @@ -{"version":3,"file":"Event.js","sourceRoot":"","sources":["../../src/models/Event.ts"],"names":[],"mappings":";;AAQA,+BAA+B"} \ No newline at end of file +{"version":3,"file":"Event.js","sourceRoot":"","sources":["../../src/models/Event.ts"],"names":[],"mappings":";;AASA,+BAA+B"} \ No newline at end of file diff --git a/dist/models/Guild.d.ts b/dist/models/Guild.d.ts
index ff038f76..4bf9a831 100644 --- a/dist/models/Guild.d.ts +++ b/dist/models/Guild.d.ts
@@ -6,8 +6,6 @@ export interface Guild { afk_channel_id?: bigint; afk_timeout?: number; application_id?: bigint; - approximate_member_count?: number; - approximate_presence_count?: number; banner?: string; channels: Channel[]; default_message_notifications?: number; @@ -23,11 +21,11 @@ export interface Guild { max_presences?: number; max_video_channel_users?: number; member_count?: number; + presence_count?: number; members?: Member[]; mfa_level?: number; name: string; owner_id: bigint; - permissions?: string; preferred_locale?: string; premium_subscription_count?: number; premium_tier?: number; diff --git a/dist/models/Role.d.ts b/dist/models/Role.d.ts
index 8e8042c1..11582893 100644 --- a/dist/models/Role.d.ts +++ b/dist/models/Role.d.ts
@@ -1,4 +1,5 @@ export interface Role { + id: bigint; color: number; hoist: boolean; managed: boolean; @@ -6,4 +7,7 @@ export interface Role { name: string; permissions: bigint; position: number; + tags?: { + bot_id?: bigint; + }; } diff --git a/dist/server-util/src/index.d.ts b/dist/server-util/src/index.d.ts new file mode 100644
index 00000000..f6968189 --- /dev/null +++ b/dist/server-util/src/index.d.ts
@@ -0,0 +1,20 @@ +import { checkToken } from "./util/checkToken"; +import Config, { DefaultOptions } from "./util/Config"; +import db from "./util/Database"; +import * as Constants from "./util/Constants"; +import { Channel } from "./models/Channel"; +import { Emoji } from "./models/Emoji"; +import { Guild } from "./models/Guild"; +import { Event } from "./models/Event"; +import { Invite } from "./models/Invite"; +import { Member } from "./models/Member"; +import { Role } from "./models/Role"; +import { User } from "./models/User"; +import { trimSpecial } from "./util/String"; +import { BitField } from "./util/BitField"; +import { Intents } from "./util/Intents"; +import { MessageFlags } from "./util/MessageFlags"; +import { Permissions } from "./util/Permissions"; +import { Snowflake } from "./util/Snowflake"; +import { UserFlags } from "./util/UserFlags"; +export { trimSpecial, checkToken, Config, Constants, db, BitField, DefaultOptions, Permissions, MessageFlags, UserFlags, Snowflake, Intents, Channel, Event, Emoji, Guild, Invite, Member, Role, User, }; diff --git a/dist/server-util/src/index.js b/dist/server-util/src/index.js new file mode 100644
index 00000000..80fdef3b --- /dev/null +++ b/dist/server-util/src/index.js
@@ -0,0 +1,49 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Intents = exports.Snowflake = exports.UserFlags = exports.MessageFlags = exports.Permissions = exports.DefaultOptions = exports.BitField = exports.db = exports.Constants = exports.Config = exports.checkToken = exports.trimSpecial = void 0; +const checkToken_1 = require("./util/checkToken"); +Object.defineProperty(exports, "checkToken", { enumerable: true, get: function () { return checkToken_1.checkToken; } }); +const Config_1 = __importStar(require("./util/Config")); +exports.Config = Config_1.default; +Object.defineProperty(exports, "DefaultOptions", { enumerable: true, get: function () { return Config_1.DefaultOptions; } }); +const Database_1 = __importDefault(require("./util/Database")); +exports.db = Database_1.default; +const Constants = __importStar(require("./util/Constants")); +exports.Constants = Constants; +const String_1 = require("./util/String"); +Object.defineProperty(exports, "trimSpecial", { enumerable: true, get: function () { return String_1.trimSpecial; } }); +const BitField_1 = require("./util/BitField"); +Object.defineProperty(exports, "BitField", { enumerable: true, get: function () { return BitField_1.BitField; } }); +const Intents_1 = require("./util/Intents"); +Object.defineProperty(exports, "Intents", { enumerable: true, get: function () { return Intents_1.Intents; } }); +const MessageFlags_1 = require("./util/MessageFlags"); +Object.defineProperty(exports, "MessageFlags", { enumerable: true, get: function () { return MessageFlags_1.MessageFlags; } }); +const Permissions_1 = require("./util/Permissions"); +Object.defineProperty(exports, "Permissions", { enumerable: true, get: function () { return Permissions_1.Permissions; } }); +const Snowflake_1 = require("./util/Snowflake"); +Object.defineProperty(exports, "Snowflake", { enumerable: true, get: function () { return Snowflake_1.Snowflake; } }); +const UserFlags_1 = require("./util/UserFlags"); +Object.defineProperty(exports, "UserFlags", { enumerable: true, get: function () { return UserFlags_1.UserFlags; } }); +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/dist/server-util/src/index.js.map b/dist/server-util/src/index.js.map new file mode 100644
index 00000000..92b0fb97 --- /dev/null +++ b/dist/server-util/src/index.js.map
@@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA+C;AAwB9C,2FAxBQ,uBAAU,OAwBR;AAvBX,wDAAuD;AAwBtD,iBAxBM,gBAAM,CAwBN;AAIN,+FA5BgB,uBAAc,OA4BhB;AA3Bf,+DAAiC;AAyBhC,aAzBM,kBAAE,CAyBN;AAvBH,4DAA8C;AAsB7C,8BAAS;AAZV,0CAA4C;AAS3C,4FATQ,oBAAW,OASR;AARZ,8CAA2C;AAa1C,yFAbQ,mBAAQ,OAaR;AAZT,4CAAyC;AAkBxC,wFAlBQ,iBAAO,OAkBR;AAjBR,sDAAmD;AAclD,6FAdQ,2BAAY,OAcR;AAbb,oDAAiD;AAYhD,4FAZQ,yBAAW,OAYR;AAXZ,gDAA6C;AAc5C,0FAdQ,qBAAS,OAcR;AAbV,gDAA6C;AAY5C,0FAZQ,qBAAS,OAYR"} \ No newline at end of file diff --git a/dist/server-util/src/models/Channel.d.ts b/dist/server-util/src/models/Channel.d.ts new file mode 100644
index 00000000..f19071ef --- /dev/null +++ b/dist/server-util/src/models/Channel.d.ts
@@ -0,0 +1,19 @@ +export interface Channel { + id: bigint; + guild_id: bigint; + last_message_id: string; + last_pin_timestamp: string; + name: string; + nsfw: boolean; + parent_id: bigint; + position: number; + rate_limit_per_user: number; + topic: string | null; + type: number; + permission_overwrites: { + allow: bigint; + deny: bigint; + id: bigint; + type: number; + }[]; +} diff --git a/dist/server-util/src/models/Channel.js b/dist/server-util/src/models/Channel.js new file mode 100644
index 00000000..5d719d95 --- /dev/null +++ b/dist/server-util/src/models/Channel.js
@@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=Channel.js.map \ No newline at end of file diff --git a/dist/server-util/src/models/Channel.js.map b/dist/server-util/src/models/Channel.js.map new file mode 100644
index 00000000..4c63d20c --- /dev/null +++ b/dist/server-util/src/models/Channel.js.map
@@ -0,0 +1 @@ +{"version":3,"file":"Channel.js","sourceRoot":"","sources":["../../../../src/models/Channel.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/dist/server-util/src/models/Emoji.d.ts b/dist/server-util/src/models/Emoji.d.ts new file mode 100644
index 00000000..e2f639db --- /dev/null +++ b/dist/server-util/src/models/Emoji.d.ts
@@ -0,0 +1,12 @@ +export interface Emoji { + allNamesString: string; + animated: boolean; + available: boolean; + guildId: bigint; + id: bigint; + managed: boolean; + name: string; + require_colons: boolean; + url: string; + roles: []; +} diff --git a/dist/server-util/src/models/Emoji.js b/dist/server-util/src/models/Emoji.js new file mode 100644
index 00000000..f4bbad78 --- /dev/null +++ b/dist/server-util/src/models/Emoji.js
@@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=Emoji.js.map \ No newline at end of file diff --git a/dist/server-util/src/models/Emoji.js.map b/dist/server-util/src/models/Emoji.js.map new file mode 100644
index 00000000..5e9e45be --- /dev/null +++ b/dist/server-util/src/models/Emoji.js.map
@@ -0,0 +1 @@ +{"version":3,"file":"Emoji.js","sourceRoot":"","sources":["../../../../src/models/Emoji.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/dist/server-util/src/models/Event.d.ts b/dist/server-util/src/models/Event.d.ts new file mode 100644
index 00000000..a86f3c07 --- /dev/null +++ b/dist/server-util/src/models/Event.d.ts
@@ -0,0 +1,8 @@ +export interface Event { + guild_id?: bigint; + user_id?: bigint; + channel_id?: bigint; + created_at: number; + data: any; + event: string; +} diff --git a/dist/server-util/src/models/Event.js b/dist/server-util/src/models/Event.js new file mode 100644
index 00000000..5a8077b3 --- /dev/null +++ b/dist/server-util/src/models/Event.js
@@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +// located in collection events +//# sourceMappingURL=Event.js.map \ No newline at end of file diff --git a/dist/server-util/src/models/Event.js.map b/dist/server-util/src/models/Event.js.map new file mode 100644
index 00000000..30e17cb4 --- /dev/null +++ b/dist/server-util/src/models/Event.js.map
@@ -0,0 +1 @@ +{"version":3,"file":"Event.js","sourceRoot":"","sources":["../../../../src/models/Event.ts"],"names":[],"mappings":";;AASA,+BAA+B"} \ No newline at end of file diff --git a/dist/server-util/src/models/Guild.d.ts b/dist/server-util/src/models/Guild.d.ts new file mode 100644
index 00000000..4bf9a831 --- /dev/null +++ b/dist/server-util/src/models/Guild.d.ts
@@ -0,0 +1,47 @@ +import { Channel } from "./Channel"; +import { Emoji } from "./Emoji"; +import { Member } from "./Member"; +import { Role } from "./Role"; +export interface Guild { + afk_channel_id?: bigint; + afk_timeout?: number; + application_id?: bigint; + banner?: string; + channels: Channel[]; + default_message_notifications?: number; + description?: string; + discovery_splash?: string; + emojis: Emoji[]; + explicit_content_filter?: number; + features: []; + icon?: string; + id: bigint; + large?: boolean; + max_members?: number; + max_presences?: number; + max_video_channel_users?: number; + member_count?: number; + presence_count?: number; + members?: Member[]; + mfa_level?: number; + name: string; + owner_id: bigint; + preferred_locale?: string; + premium_subscription_count?: number; + premium_tier?: number; + presences: []; + public_updates_channel_id?: bigint; + region?: string; + roles: Role[]; + rules_channel_id?: bigint; + splash?: string; + system_channel_flags?: number; + system_channel_id?: bigint; + unavailable?: boolean; + vanity_url_code?: string; + verification_level?: number; + voice_states: []; + welcome_screen: []; + widget_channel_id?: bigint; + widget_enabled?: boolean; +} diff --git a/dist/server-util/src/models/Guild.js b/dist/server-util/src/models/Guild.js new file mode 100644
index 00000000..6c1c7bc5 --- /dev/null +++ b/dist/server-util/src/models/Guild.js
@@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=Guild.js.map \ No newline at end of file diff --git a/dist/server-util/src/models/Guild.js.map b/dist/server-util/src/models/Guild.js.map new file mode 100644
index 00000000..c45ef542 --- /dev/null +++ b/dist/server-util/src/models/Guild.js.map
@@ -0,0 +1 @@ +{"version":3,"file":"Guild.js","sourceRoot":"","sources":["../../../../src/models/Guild.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/dist/server-util/src/models/Invite.d.ts b/dist/server-util/src/models/Invite.d.ts new file mode 100644
index 00000000..e68886c6 --- /dev/null +++ b/dist/server-util/src/models/Invite.d.ts
@@ -0,0 +1,30 @@ +export interface Invite { + code: string; + guild: { + id: bigint; + name: string; + splash: string; + description: string; + icon: string; + features: Object; + verification_level: number; + }; + channel: { + id: bigint; + name: string; + type: number; + }; + inviter: { + id: bigint; + username: string; + avatar: string; + discriminator: number; + }; + target_user: { + id: bigint; + username: string; + avatar: string; + discriminator: number; + }; + target_user_type: number; +} diff --git a/dist/server-util/src/models/Invite.js b/dist/server-util/src/models/Invite.js new file mode 100644
index 00000000..ff9594fe --- /dev/null +++ b/dist/server-util/src/models/Invite.js
@@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=Invite.js.map \ No newline at end of file diff --git a/dist/server-util/src/models/Invite.js.map b/dist/server-util/src/models/Invite.js.map new file mode 100644
index 00000000..35c8d115 --- /dev/null +++ b/dist/server-util/src/models/Invite.js.map
@@ -0,0 +1 @@ +{"version":3,"file":"Invite.js","sourceRoot":"","sources":["../../../../src/models/Invite.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/dist/server-util/src/models/Member.d.ts b/dist/server-util/src/models/Member.d.ts new file mode 100644
index 00000000..0ccdd5fe --- /dev/null +++ b/dist/server-util/src/models/Member.d.ts
@@ -0,0 +1,13 @@ +import { Role } from "./Role"; +import { User } from "./User"; +export interface Member { + user: User; + nick: string; + roles: Role[]; + joined_at: number; + premium_since: number; + deaf: boolean; + mute: boolean; + pending: boolean; + permissions: string; +} diff --git a/dist/server-util/src/models/Member.js b/dist/server-util/src/models/Member.js new file mode 100644
index 00000000..0a75bf46 --- /dev/null +++ b/dist/server-util/src/models/Member.js
@@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=Member.js.map \ No newline at end of file diff --git a/dist/server-util/src/models/Member.js.map b/dist/server-util/src/models/Member.js.map new file mode 100644
index 00000000..e6b97284 --- /dev/null +++ b/dist/server-util/src/models/Member.js.map
@@ -0,0 +1 @@ +{"version":3,"file":"Member.js","sourceRoot":"","sources":["../../../../src/models/Member.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/dist/server-util/src/models/Role.d.ts b/dist/server-util/src/models/Role.d.ts new file mode 100644
index 00000000..11582893 --- /dev/null +++ b/dist/server-util/src/models/Role.d.ts
@@ -0,0 +1,13 @@ +export interface Role { + id: bigint; + color: number; + hoist: boolean; + managed: boolean; + mentionable: boolean; + name: string; + permissions: bigint; + position: number; + tags?: { + bot_id?: bigint; + }; +} diff --git a/dist/server-util/src/models/Role.js b/dist/server-util/src/models/Role.js new file mode 100644
index 00000000..467f4294 --- /dev/null +++ b/dist/server-util/src/models/Role.js
@@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=Role.js.map \ No newline at end of file diff --git a/dist/server-util/src/models/Role.js.map b/dist/server-util/src/models/Role.js.map new file mode 100644
index 00000000..de99b545 --- /dev/null +++ b/dist/server-util/src/models/Role.js.map
@@ -0,0 +1 @@ +{"version":3,"file":"Role.js","sourceRoot":"","sources":["../../../../src/models/Role.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/dist/server-util/src/models/User.d.ts b/dist/server-util/src/models/User.d.ts new file mode 100644
index 00000000..5e86a8a3 --- /dev/null +++ b/dist/server-util/src/models/User.d.ts
@@ -0,0 +1,61 @@ +export interface User { + id: bigint; + username: string; + discriminator: string; + avatar: string | null; + bot: boolean; + system: boolean; + mfa_enabled: boolean; + created_at: number; + verified: boolean; + email: string; + flags: bigint; + hash: string; + valid_tokens_since: number; + user_settings: UserSettings; + guilds: bigint[]; +} +export interface UserSettings { + afk_timeout: number; + allow_accessibility_detection: boolean; + animate_emoji: boolean; + animate_stickers: number; + contact_sync_enabled: boolean; + convert_emoticons: boolean; + custom_status: { + emoji_id: bigint | null; + emoji_name: string | null; + expires_at: number | null; + text: string | null; + }; + default_guilds_restricted: boolean; + detect_platform_accounts: boolean; + developer_mode: boolean; + disable_games_tab: boolean; + enable_tts_command: boolean; + explicit_content_filter: number; + friend_source_flags: { + all: boolean; + }; + gif_auto_play: boolean; + guild_folders: { + color: number; + guild_ids: bigint[]; + id: number; + name: string; + }[]; + guild_positions: bigint[]; + inline_attachment_media: boolean; + inline_embed_media: boolean; + locale: string; + message_display_compact: boolean; + native_phone_integration_enabled: boolean; + render_embeds: boolean; + render_reactions: boolean; + restricted_guilds: bigint[]; + show_current_game: boolean; + status: "online" | "offline" | "dnd" | "idle"; + stream_notifications_enabled: boolean; + theme: "dark" | "white"; + timezone_offset: number; +} diff --git a/dist/server-util/src/models/User.js b/dist/server-util/src/models/User.js new file mode 100644
index 00000000..9da5871e --- /dev/null +++ b/dist/server-util/src/models/User.js
@@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=User.js.map \ No newline at end of file diff --git a/dist/server-util/src/models/User.js.map b/dist/server-util/src/models/User.js.map new file mode 100644
index 00000000..fa1f1259 --- /dev/null +++ b/dist/server-util/src/models/User.js.map
@@ -0,0 +1 @@ +{"version":3,"file":"User.js","sourceRoot":"","sources":["../../../../src/models/User.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/dist/server-util/src/util/BitField.d.ts b/dist/server-util/src/util/BitField.d.ts new file mode 100644
index 00000000..1b08c1f8 --- /dev/null +++ b/dist/server-util/src/util/BitField.d.ts
@@ -0,0 +1,66 @@ +export declare type BitFieldResolvable = number | BigInt | BitField | string | BitFieldResolvable[]; +/** + * Data structure that makes it easy to interact with a bitfield. + */ +export declare class BitField { + bitfield: bigint; + static FLAGS: Record<string, bigint>; + constructor(bits?: BitFieldResolvable); + /** + * Checks whether the bitfield has a bit, or any of multiple bits. + */ + any(bit: BitFieldResolvable): boolean; + /** + * Checks if this bitfield equals another + */ + equals(bit: BitFieldResolvable): boolean; + /** + * Checks whether the bitfield has a bit, or multiple bits. + */ + has(bit: BitFieldResolvable): boolean; + /** + * Gets all given bits that are missing from the bitfield. + */ + missing(bits: BitFieldResolvable): BitFieldResolvable[]; + /** + * Freezes these bits, making them immutable. + */ + freeze(): Readonly<BitField>; + /** + * Adds bits to these ones. + * @param {...BitFieldResolvable} [bits] Bits to add + * @returns {BitField} These bits or new BitField if the instance is frozen. + */ + add(...bits: BitFieldResolvable[]): BitField; + /** + * Removes bits from these. + * @param {...BitFieldResolvable} [bits] Bits to remove + */ + remove(...bits: BitFieldResolvable[]): BitField; + /** + * Gets an object mapping field names to a {@link boolean} indicating whether the + * bit is available. + * @param {...*} hasParams Additional parameters for the has method, if any + */ + serialize(): Record<string, boolean>; + /** + * Gets an {@link Array} of bitfield names based on the bits available. + */ + toArray(): string[]; + toJSON(): bigint; + valueOf(): bigint; + [Symbol.iterator](): Generator<string, void, undefined>; + /** + * Data that can be resolved to give a bitfield. This can be: + * * A bit number (this can be a number literal or a value taken from {@link BitField.FLAGS}) + * * An instance of BitField + * * An Array of BitFieldResolvable + * @typedef {number|BitField|BitFieldResolvable[]} BitFieldResolvable + */ + /** + * Resolves bitfields to their numeric form. + * @param {BitFieldResolvable} [bit=0] - bit(s) to resolve + * @returns {number} + */ + static resolve(bit?: BitFieldResolvable): bigint; +} diff --git a/dist/server-util/src/util/BitField.js b/dist/server-util/src/util/BitField.js new file mode 100644
index 00000000..97d76f3a --- /dev/null +++ b/dist/server-util/src/util/BitField.js
@@ -0,0 +1,127 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.BitField = void 0; +/** + * Data structure that makes it easy to interact with a bitfield. + */ +class BitField { + constructor(bits = 0) { + this.bitfield = BigInt(0); + this.bitfield = BitField.resolve(bits); + } + /** + * Checks whether the bitfield has a bit, or any of multiple bits. + */ + any(bit) { + return (this.bitfield & BitField.resolve(bit)) !== 0n; + } + /** + * Checks if this bitfield equals another + */ + equals(bit) { + return this.bitfield === BitField.resolve(bit); + } + /** + * Checks whether the bitfield has a bit, or multiple bits. + */ + has(bit) { + if (Array.isArray(bit)) + return bit.every((p) => this.has(p)); + const BIT = BitField.resolve(bit); + return (this.bitfield & BIT) === BIT; + } + /** + * Gets all given bits that are missing from the bitfield. + */ + missing(bits) { + if (!Array.isArray(bits)) + bits = new BitField(bits).toArray(); + return bits.filter((p) => !this.has(p)); + } + /** + * Freezes these bits, making them immutable. + */ + freeze() { + return Object.freeze(this); + } + /** + * Adds bits to these ones. + * @param {...BitFieldResolvable} [bits] Bits to add + * @returns {BitField} These bits or new BitField if the instance is frozen. + */ + add(...bits) { + let total = 0n; + for (const bit of bits) { + total |= BitField.resolve(bit); + } + if (Object.isFrozen(this)) + return new BitField(this.bitfield | total); + this.bitfield |= total; + return this; + } + /** + * Removes bits from these. + * @param {...BitFieldResolvable} [bits] Bits to remove + */ + remove(...bits) { + let total = 0n; + for (const bit of bits) { + total |= BitField.resolve(bit); + } + if (Object.isFrozen(this)) + return new BitField(this.bitfield & ~total); + this.bitfield &= ~total; + return this; + } + /** + * Gets an object mapping field names to a {@link boolean} indicating whether the + * bit is available. + * @param {...*} hasParams Additional parameters for the has method, if any + */ + serialize() { + const serialized = {}; + for (const [flag, bit] of Object.entries(BitField.FLAGS)) + serialized[flag] = this.has(bit); + return serialized; + } + /** + * Gets an {@link Array} of bitfield names based on the bits available. + */ + toArray() { + return Object.keys(BitField.FLAGS).filter((bit) => this.has(bit)); + } + toJSON() { + return this.bitfield; + } + valueOf() { + return this.bitfield; + } + *[Symbol.iterator]() { + yield* this.toArray(); + } + /** + * Data that can be resolved to give a bitfield. This can be: + * * A bit number (this can be a number literal or a value taken from {@link BitField.FLAGS}) + * * An instance of BitField + * * An Array of BitFieldResolvable + * @typedef {number|BitField|BitFieldResolvable[]} BitFieldResolvable + */ + /** + * Resolves bitfields to their numeric form. + * @param {BitFieldResolvable} [bit=0] - bit(s) to resolve + * @returns {number} + */ + static resolve(bit = 0n) { + if ((typeof bit === "number" || typeof bit === "bigint") && bit >= 0n) + return BigInt(bit); + if (bit instanceof BitField) + return bit.bitfield; + if (Array.isArray(bit)) + return bit.map((p) => this.resolve(p)).reduce((prev, p) => BigInt(prev) | BigInt(p), 0n); + if (typeof bit === "string" && typeof this.FLAGS[bit] !== "undefined") + return this.FLAGS[bit]; + throw new RangeError("BITFIELD_INVALID: " + bit); + } +} +exports.BitField = BitField; +//# sourceMappingURL=BitField.js.map \ No newline at end of file diff --git a/dist/server-util/src/util/BitField.js.map b/dist/server-util/src/util/BitField.js.map new file mode 100644
index 00000000..9fed2fff --- /dev/null +++ b/dist/server-util/src/util/BitField.js.map
@@ -0,0 +1 @@ +{"version":3,"file":"BitField.js","sourceRoot":"","sources":["../../../../src/util/BitField.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;AAOb;;GAEG;AACH,MAAa,QAAQ;IAKpB,YAAY,OAA2B,CAAC;QAJjC,aAAQ,GAAW,MAAM,CAAC,CAAC,CAAC,CAAC;QAKnC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,GAAuB;QAC1B,OAAO,CAAC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;IACvD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,GAAuB;QAC7B,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,GAAuB;QAC1B,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;YAAE,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7D,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAClC,OAAO,CAAC,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,KAAK,GAAG,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,IAAwB;QAC/B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;YAAE,IAAI,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QAC9D,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,MAAM;QACL,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED;;;;OAIG;IACH,GAAG,CAAC,GAAG,IAA0B;QAChC,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;YACvB,KAAK,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SAC/B;QACD,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC;QACtE,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC;QACvB,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,GAAG,IAA0B;QACnC,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;YACvB,KAAK,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SAC/B;QACD,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,KAAK,CAAC,CAAC;QACvE,IAAI,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC;QACxB,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;;OAIG;IACH,SAAS;QACR,MAAM,UAAU,GAA4B,EAAE,CAAC;QAC/C,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3F,OAAO,UAAU,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,OAAO;QACN,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,MAAM;QACL,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;IAED,OAAO;QACN,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;IAED,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;QACjB,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;IACvB,CAAC;IAED;;;;;;OAMG;IAEH;;;;OAIG;IACH,MAAM,CAAC,OAAO,CAAC,MAA0B,EAAE;QAC1C,IAAI,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,GAAG,KAAK,QAAQ,CAAC,IAAI,GAAG,IAAI,EAAE;YAAE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1F,IAAI,GAAG,YAAY,QAAQ;YAAE,OAAO,GAAG,CAAC,QAAQ,CAAC;QACjD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;YACrB,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1F,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,WAAW;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9F,MAAM,IAAI,UAAU,CAAC,oBAAoB,GAAG,GAAG,CAAC,CAAC;IAClD,CAAC;CACD;AA/HD,4BA+HC"} \ No newline at end of file diff --git a/dist/server-util/src/util/Config.d.ts b/dist/server-util/src/util/Config.d.ts new file mode 100644
index 00000000..2ab792f5 --- /dev/null +++ b/dist/server-util/src/util/Config.d.ts
@@ -0,0 +1,13 @@ +import "missing-native-js-functions"; +declare const _default: { + init: (opts?: DefaultOptions) => Promise<void>; + getAll: () => DefaultOptions; + setAll: (val: any) => any; +}; +export default _default; +export interface DefaultOptions { + api?: any; + gateway?: any; + voice?: any; +} +export declare const DefaultOptions: DefaultOptions; diff --git a/dist/server-util/src/util/Config.js b/dist/server-util/src/util/Config.js new file mode 100644
index 00000000..5c41d39a --- /dev/null +++ b/dist/server-util/src/util/Config.js
@@ -0,0 +1,28 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DefaultOptions = void 0; +require("missing-native-js-functions"); +const Database_1 = __importDefault(require("./Database")); +var Config; +exports.default = { + init: async function init(opts = exports.DefaultOptions) { + Config = await Database_1.default.data.config({}).cache(); + await Config.init(); + await Config.set(opts.merge(Config.cache || {})); + }, + getAll: function get() { + return Config.get(); + }, + setAll: function set(val) { + return Config.set(val); + }, +}; +exports.DefaultOptions = { + api: {}, + gateway: {}, + voice: {}, +}; +//# sourceMappingURL=Config.js.map \ No newline at end of file diff --git a/dist/server-util/src/util/Config.js.map b/dist/server-util/src/util/Config.js.map new file mode 100644
index 00000000..d4d5a3ba --- /dev/null +++ b/dist/server-util/src/util/Config.js.map
@@ -0,0 +1 @@ +{"version":3,"file":"Config.js","sourceRoot":"","sources":["../../../../src/util/Config.ts"],"names":[],"mappings":";;;;;;AAAA,uCAAqC;AACrC,0DAA4B;AAE5B,IAAI,MAAqB,CAAC;AAE1B,kBAAe;IACd,IAAI,EAAE,KAAK,UAAU,IAAI,CAAC,OAAuB,sBAAc;QAC9D,MAAM,GAAG,MAAM,kBAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;QAC1C,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,MAAM,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;IAClD,CAAC;IACD,MAAM,EAAE,SAAS,GAAG;QACnB,OAAuB,MAAM,CAAC,GAAG,EAAE,CAAC;IACrC,CAAC;IACD,MAAM,EAAE,SAAS,GAAG,CAAC,GAAQ;QAC5B,OAAO,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;CACD,CAAC;AAQW,QAAA,cAAc,GAAmB;IAC7C,GAAG,EAAE,EAAE;IACP,OAAO,EAAE,EAAE;IACX,KAAK,EAAE,EAAE;CACT,CAAC"} \ No newline at end of file diff --git a/dist/server-util/src/util/Constants.d.ts b/dist/server-util/src/util/Constants.d.ts new file mode 100644
index 00000000..ecceb4e6 --- /dev/null +++ b/dist/server-util/src/util/Constants.d.ts
@@ -0,0 +1,2 @@ +import { VerifyOptions } from "jsonwebtoken"; +export declare const JWTOptions: VerifyOptions; diff --git a/dist/server-util/src/util/Constants.js b/dist/server-util/src/util/Constants.js new file mode 100644
index 00000000..d65f8185 --- /dev/null +++ b/dist/server-util/src/util/Constants.js
@@ -0,0 +1,5 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.JWTOptions = void 0; +exports.JWTOptions = { algorithms: ["HS256"] }; +//# sourceMappingURL=Constants.js.map \ No newline at end of file diff --git a/dist/server-util/src/util/Constants.js.map b/dist/server-util/src/util/Constants.js.map new file mode 100644
index 00000000..d24e9439 --- /dev/null +++ b/dist/server-util/src/util/Constants.js.map
@@ -0,0 +1 @@ +{"version":3,"file":"Constants.js","sourceRoot":"","sources":["../../../../src/util/Constants.ts"],"names":[],"mappings":";;;AAEa,QAAA,UAAU,GAAkB,EAAE,UAAU,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC"} \ No newline at end of file diff --git a/dist/server-util/src/util/Database.d.ts b/dist/server-util/src/util/Database.d.ts new file mode 100644
index 00000000..1a45ea78 --- /dev/null +++ b/dist/server-util/src/util/Database.d.ts
@@ -0,0 +1,3 @@ +import { MongoDatabase } from "lambert-db"; +declare const db: MongoDatabase; +export default db; diff --git a/dist/server-util/src/util/Database.js b/dist/server-util/src/util/Database.js new file mode 100644
index 00000000..9ac6eeeb --- /dev/null +++ b/dist/server-util/src/util/Database.js
@@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const lambert_db_1 = require("lambert-db"); +// TODO: load url from config +const db = new lambert_db_1.MongoDatabase("mongodb://127.0.0.1:27017/lambert?readPreference=secondaryPreferred", { + useNewUrlParser: true, + useUnifiedTopology: false, +}); +exports.default = db; +//# sourceMappingURL=Database.js.map \ No newline at end of file diff --git a/dist/server-util/src/util/Database.js.map b/dist/server-util/src/util/Database.js.map new file mode 100644
index 00000000..d85557dc --- /dev/null +++ b/dist/server-util/src/util/Database.js.map
@@ -0,0 +1 @@ +{"version":3,"file":"Database.js","sourceRoot":"","sources":["../../../../src/util/Database.ts"],"names":[],"mappings":";;AAAA,2CAA2C;AAE3C,6BAA6B;AAC7B,MAAM,EAAE,GAAG,IAAI,0BAAa,CAAC,qEAAqE,EAAE;IACnG,eAAe,EAAE,IAAI;IACrB,kBAAkB,EAAE,KAAK;CACzB,CAAC,CAAC;AAEH,kBAAe,EAAE,CAAC"} \ No newline at end of file diff --git a/dist/server-util/src/util/Intents.d.ts b/dist/server-util/src/util/Intents.d.ts new file mode 100644
index 00000000..bf8bac90 --- /dev/null +++ b/dist/server-util/src/util/Intents.d.ts
@@ -0,0 +1,20 @@ +import { BitField } from "./BitField"; +export declare class Intents extends BitField { + static FLAGS: { + GUILDS: bigint; + GUILD_MEMBERS: bigint; + GUILD_BANS: bigint; + GUILD_EMOJIS: bigint; + GUILD_INTEGRATIONS: bigint; + GUILD_WEBHOOKS: bigint; + GUILD_INVITES: bigint; + GUILD_VOICE_STATES: bigint; + GUILD_PRESENCES: bigint; + GUILD_MESSAGES: bigint; + GUILD_MESSAGE_REACTIONS: bigint; + GUILD_MESSAGE_TYPING: bigint; + DIRECT_MESSAGES: bigint; + DIRECT_MESSAGE_REACTIONS: bigint; + DIRECT_MESSAGE_TYPING: bigint; + }; +} diff --git a/dist/server-util/src/util/Intents.js b/dist/server-util/src/util/Intents.js new file mode 100644
index 00000000..5a7baa8c --- /dev/null +++ b/dist/server-util/src/util/Intents.js
@@ -0,0 +1,25 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Intents = void 0; +const BitField_1 = require("./BitField"); +class Intents extends BitField_1.BitField { +} +exports.Intents = Intents; +Intents.FLAGS = { + GUILDS: 1n << 0n, + GUILD_MEMBERS: 1n << 1n, + GUILD_BANS: 1n << 2n, + GUILD_EMOJIS: 1n << 3n, + GUILD_INTEGRATIONS: 1n << 4n, + GUILD_WEBHOOKS: 1n << 5n, + GUILD_INVITES: 1n << 6n, + GUILD_VOICE_STATES: 1n << 7n, + GUILD_PRESENCES: 1n << 8n, + GUILD_MESSAGES: 1n << 9n, + GUILD_MESSAGE_REACTIONS: 1n << 10n, + GUILD_MESSAGE_TYPING: 1n << 11n, + DIRECT_MESSAGES: 1n << 12n, + DIRECT_MESSAGE_REACTIONS: 1n << 13n, + DIRECT_MESSAGE_TYPING: 1n << 14n, +}; +//# sourceMappingURL=Intents.js.map \ No newline at end of file diff --git a/dist/server-util/src/util/Intents.js.map b/dist/server-util/src/util/Intents.js.map new file mode 100644
index 00000000..162e3777 --- /dev/null +++ b/dist/server-util/src/util/Intents.js.map
@@ -0,0 +1 @@ +{"version":3,"file":"Intents.js","sourceRoot":"","sources":["../../../../src/util/Intents.ts"],"names":[],"mappings":";;;AAAA,yCAAsC;AAEtC,MAAa,OAAQ,SAAQ,mBAAQ;;AAArC,0BAkBC;AAjBO,aAAK,GAAG;IACd,MAAM,EAAE,EAAE,IAAI,EAAE;IAChB,aAAa,EAAE,EAAE,IAAI,EAAE;IACvB,UAAU,EAAE,EAAE,IAAI,EAAE;IACpB,YAAY,EAAE,EAAE,IAAI,EAAE;IACtB,kBAAkB,EAAE,EAAE,IAAI,EAAE;IAC5B,cAAc,EAAE,EAAE,IAAI,EAAE;IACxB,aAAa,EAAE,EAAE,IAAI,EAAE;IACvB,kBAAkB,EAAE,EAAE,IAAI,EAAE;IAC5B,eAAe,EAAE,EAAE,IAAI,EAAE;IACzB,cAAc,EAAE,EAAE,IAAI,EAAE;IACxB,uBAAuB,EAAE,EAAE,IAAI,GAAG;IAClC,oBAAoB,EAAE,EAAE,IAAI,GAAG;IAC/B,eAAe,EAAE,EAAE,IAAI,GAAG;IAC1B,wBAAwB,EAAE,EAAE,IAAI,GAAG;IACnC,qBAAqB,EAAE,EAAE,IAAI,GAAG;CAChC,CAAC"} \ No newline at end of file diff --git a/dist/server-util/src/util/MessageFlags.d.ts b/dist/server-util/src/util/MessageFlags.d.ts new file mode 100644
index 00000000..9a0a8e40 --- /dev/null +++ b/dist/server-util/src/util/MessageFlags.d.ts
@@ -0,0 +1,10 @@ +import { BitField } from "./BitField"; +export declare class MessageFlags extends BitField { + static FLAGS: { + CROSSPOSTED: bigint; + IS_CROSSPOST: bigint; + SUPPRESS_EMBEDS: bigint; + SOURCE_MESSAGE_DELETED: bigint; + URGENT: bigint; + }; +} diff --git a/dist/server-util/src/util/MessageFlags.js b/dist/server-util/src/util/MessageFlags.js new file mode 100644
index 00000000..bdfed0fe --- /dev/null +++ b/dist/server-util/src/util/MessageFlags.js
@@ -0,0 +1,17 @@ +"use strict"; +// https://github.com/discordjs/discord.js/blob/master/src/util/MessageFlags.js +// Apache License Version 2.0 Copyright 2015 - 2021 Amish Shah +Object.defineProperty(exports, "__esModule", { value: true }); +exports.MessageFlags = void 0; +const BitField_1 = require("./BitField"); +class MessageFlags extends BitField_1.BitField { +} +exports.MessageFlags = MessageFlags; +MessageFlags.FLAGS = { + CROSSPOSTED: 1n << 0n, + IS_CROSSPOST: 1n << 1n, + SUPPRESS_EMBEDS: 1n << 2n, + SOURCE_MESSAGE_DELETED: 1n << 3n, + URGENT: 1n << 4n, +}; +//# sourceMappingURL=MessageFlags.js.map \ No newline at end of file diff --git a/dist/server-util/src/util/MessageFlags.js.map b/dist/server-util/src/util/MessageFlags.js.map new file mode 100644
index 00000000..c405d611 --- /dev/null +++ b/dist/server-util/src/util/MessageFlags.js.map
@@ -0,0 +1 @@ +{"version":3,"file":"MessageFlags.js","sourceRoot":"","sources":["../../../../src/util/MessageFlags.ts"],"names":[],"mappings":";AAAA,+EAA+E;AAC/E,8DAA8D;;;AAE9D,yCAAsC;AAEtC,MAAa,YAAa,SAAQ,mBAAQ;;AAA1C,oCAQC;AAPO,kBAAK,GAAG;IACd,WAAW,EAAE,EAAE,IAAI,EAAE;IACrB,YAAY,EAAE,EAAE,IAAI,EAAE;IACtB,eAAe,EAAE,EAAE,IAAI,EAAE;IACzB,sBAAsB,EAAE,EAAE,IAAI,EAAE;IAChC,MAAM,EAAE,EAAE,IAAI,EAAE;CAChB,CAAC"} \ No newline at end of file diff --git a/dist/server-util/src/util/Permissions.d.ts b/dist/server-util/src/util/Permissions.d.ts new file mode 100644
index 00000000..8373f7c8 --- /dev/null +++ b/dist/server-util/src/util/Permissions.d.ts
@@ -0,0 +1,45 @@ +import { BitField } from "./BitField"; +export declare type PermissionResolvable = string | number | Permissions | PermissionResolvable[]; +export declare class Permissions extends BitField { + static FLAGS: { + CREATE_INSTANT_INVITE: bigint; + KICK_MEMBERS: bigint; + BAN_MEMBERS: bigint; + ADMINISTRATOR: bigint; + MANAGE_CHANNELS: bigint; + MANAGE_GUILD: bigint; + ADD_REACTIONS: bigint; + VIEW_AUDIT_LOG: bigint; + PRIORITY_SPEAKER: bigint; + STREAM: bigint; + VIEW_CHANNEL: bigint; + SEND_MESSAGES: bigint; + SEND_TTS_MESSAGES: bigint; + MANAGE_MESSAGES: bigint; + EMBED_LINKS: bigint; + ATTACH_FILES: bigint; + READ_MESSAGE_HISTORY: bigint; + MENTION_EVERYONE: bigint; + USE_EXTERNAL_EMOJIS: bigint; + VIEW_GUILD_INSIGHTS: bigint; + CONNECT: bigint; + SPEAK: bigint; + MUTE_MEMBERS: bigint; + DEAFEN_MEMBERS: bigint; + MOVE_MEMBERS: bigint; + USE_VAD: bigint; + CHANGE_NICKNAME: bigint; + MANAGE_NICKNAMES: bigint; + MANAGE_ROLES: bigint; + MANAGE_WEBHOOKS: bigint; + MANAGE_EMOJIS: bigint; + }; + any(permission: PermissionResolvable, checkAdmin?: boolean): boolean; + /** + * Checks whether the bitfield has a permission, or multiple permissions. + * @param {PermissionResolvable} permission Permission(s) to check for + * @param {boolean} [checkAdmin=true] Whether to allow the administrator permission to override + * @returns {boolean} + */ + has(permission: PermissionResolvable, checkAdmin?: boolean): boolean; +} diff --git a/dist/server-util/src/util/Permissions.js b/dist/server-util/src/util/Permissions.js new file mode 100644
index 00000000..596e1fa9 --- /dev/null +++ b/dist/server-util/src/util/Permissions.js
@@ -0,0 +1,55 @@ +"use strict"; +// https://github.com/discordjs/discord.js/blob/master/src/util/Permissions.js +// Apache License Version 2.0 Copyright 2015 - 2021 Amish Shah +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Permissions = void 0; +const BitField_1 = require("./BitField"); +class Permissions extends BitField_1.BitField { + any(permission, checkAdmin = true) { + return (checkAdmin && super.has(Permissions.FLAGS.ADMINISTRATOR)) || super.any(permission); + } + /** + * Checks whether the bitfield has a permission, or multiple permissions. + * @param {PermissionResolvable} permission Permission(s) to check for + * @param {boolean} [checkAdmin=true] Whether to allow the administrator permission to override + * @returns {boolean} + */ + has(permission, checkAdmin = true) { + return (checkAdmin && super.has(Permissions.FLAGS.ADMINISTRATOR)) || super.has(permission); + } +} +exports.Permissions = Permissions; +Permissions.FLAGS = { + CREATE_INSTANT_INVITE: 1n << 0n, + KICK_MEMBERS: 1n << 1n, + BAN_MEMBERS: 1n << 2n, + ADMINISTRATOR: 1n << 3n, + MANAGE_CHANNELS: 1n << 4n, + MANAGE_GUILD: 1n << 5n, + ADD_REACTIONS: 1n << 6n, + VIEW_AUDIT_LOG: 1n << 7n, + PRIORITY_SPEAKER: 1n << 8n, + STREAM: 1n << 9n, + VIEW_CHANNEL: 1n << 10n, + SEND_MESSAGES: 1n << 11n, + SEND_TTS_MESSAGES: 1n << 12n, + MANAGE_MESSAGES: 1n << 13n, + EMBED_LINKS: 1n << 14n, + ATTACH_FILES: 1n << 15n, + READ_MESSAGE_HISTORY: 1n << 16n, + MENTION_EVERYONE: 1n << 17n, + USE_EXTERNAL_EMOJIS: 1n << 18n, + VIEW_GUILD_INSIGHTS: 1n << 19n, + CONNECT: 1n << 20n, + SPEAK: 1n << 21n, + MUTE_MEMBERS: 1n << 22n, + DEAFEN_MEMBERS: 1n << 23n, + MOVE_MEMBERS: 1n << 24n, + USE_VAD: 1n << 25n, + CHANGE_NICKNAME: 1n << 26n, + MANAGE_NICKNAMES: 1n << 27n, + MANAGE_ROLES: 1n << 28n, + MANAGE_WEBHOOKS: 1n << 29n, + MANAGE_EMOJIS: 1n << 30n, +}; +//# sourceMappingURL=Permissions.js.map \ No newline at end of file diff --git a/dist/server-util/src/util/Permissions.js.map b/dist/server-util/src/util/Permissions.js.map new file mode 100644
index 00000000..f1a01f0e --- /dev/null +++ b/dist/server-util/src/util/Permissions.js.map
@@ -0,0 +1 @@ +{"version":3,"file":"Permissions.js","sourceRoot":"","sources":["../../../../src/util/Permissions.ts"],"names":[],"mappings":";AAAA,8EAA8E;AAC9E,8DAA8D;;;AAE9D,yCAAsC;AAItC,MAAa,WAAY,SAAQ,mBAAQ;IAmCxC,GAAG,CAAC,UAAgC,EAAE,UAAU,GAAG,IAAI;QACtD,OAAO,CAAC,UAAU,IAAI,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC5F,CAAC;IAED;;;;;OAKG;IACH,GAAG,CAAC,UAAgC,EAAE,UAAU,GAAG,IAAI;QACtD,OAAO,CAAC,UAAU,IAAI,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC5F,CAAC;;AA/CF,kCAgDC;AA/CO,iBAAK,GAAG;IACd,qBAAqB,EAAE,EAAE,IAAI,EAAE;IAC/B,YAAY,EAAE,EAAE,IAAI,EAAE;IACtB,WAAW,EAAE,EAAE,IAAI,EAAE;IACrB,aAAa,EAAE,EAAE,IAAI,EAAE;IACvB,eAAe,EAAE,EAAE,IAAI,EAAE;IACzB,YAAY,EAAE,EAAE,IAAI,EAAE;IACtB,aAAa,EAAE,EAAE,IAAI,EAAE;IACvB,cAAc,EAAE,EAAE,IAAI,EAAE;IACxB,gBAAgB,EAAE,EAAE,IAAI,EAAE;IAC1B,MAAM,EAAE,EAAE,IAAI,EAAE;IAChB,YAAY,EAAE,EAAE,IAAI,GAAG;IACvB,aAAa,EAAE,EAAE,IAAI,GAAG;IACxB,iBAAiB,EAAE,EAAE,IAAI,GAAG;IAC5B,eAAe,EAAE,EAAE,IAAI,GAAG;IAC1B,WAAW,EAAE,EAAE,IAAI,GAAG;IACtB,YAAY,EAAE,EAAE,IAAI,GAAG;IACvB,oBAAoB,EAAE,EAAE,IAAI,GAAG;IAC/B,gBAAgB,EAAE,EAAE,IAAI,GAAG;IAC3B,mBAAmB,EAAE,EAAE,IAAI,GAAG;IAC9B,mBAAmB,EAAE,EAAE,IAAI,GAAG;IAC9B,OAAO,EAAE,EAAE,IAAI,GAAG;IAClB,KAAK,EAAE,EAAE,IAAI,GAAG;IAChB,YAAY,EAAE,EAAE,IAAI,GAAG;IACvB,cAAc,EAAE,EAAE,IAAI,GAAG;IACzB,YAAY,EAAE,EAAE,IAAI,GAAG;IACvB,OAAO,EAAE,EAAE,IAAI,GAAG;IAClB,eAAe,EAAE,EAAE,IAAI,GAAG;IAC1B,gBAAgB,EAAE,EAAE,IAAI,GAAG;IAC3B,YAAY,EAAE,EAAE,IAAI,GAAG;IACvB,eAAe,EAAE,EAAE,IAAI,GAAG;IAC1B,aAAa,EAAE,EAAE,IAAI,GAAG;CACxB,CAAC"} \ No newline at end of file diff --git a/dist/server-util/src/util/Snowflake.d.ts b/dist/server-util/src/util/Snowflake.d.ts new file mode 100644
index 00000000..bd8c05bb --- /dev/null +++ b/dist/server-util/src/util/Snowflake.d.ts
@@ -0,0 +1,58 @@ +/** + * A container for useful snowflake-related methods. + */ +export declare class Snowflake { + static readonly EPOCH = 1420070400000; + static INCREMENT: bigint; + static processId: bigint; + static workerId: bigint; + constructor(); + /** + * A Twitter snowflake, except the epoch is 2015-01-01T00:00:00.000Z + * ``` + * If we have a snowflake '266241948824764416' we can represent it as binary: + * + * 64 22 17 12 0 + * 000000111011000111100001101001000101000000 00001 00000 000000000000 + * number of ms since Discord epoch worker pid increment + * ``` + * @typedef {string} Snowflake + */ + /** + * Transforms a snowflake from a decimal string to a bit string. + * @param {Snowflake} num Snowflake to be transformed + * @returns {string} + * @private + */ + static idToBinary(num: any): string; + /** + * Transforms a snowflake from a bit string to a decimal string. + * @param {string} num Bit string to be transformed + * @returns {Snowflake} + * @private + */ + static binaryToID(num: any): string; + static generate(): bigint; + /** + * A deconstructed snowflake. + * @typedef {Object} DeconstructedSnowflake + * @property {number} timestamp Timestamp the snowflake was created + * @property {Date} date Date the snowflake was created + * @property {number} workerID Worker ID in the snowflake + * @property {number} processID Process ID in the snowflake + * @property {number} increment Increment in the snowflake + * @property {string} binary Binary representation of the snowflake + */ + /** + * Deconstructs a Discord snowflake. + * @param {Snowflake} snowflake Snowflake to deconstruct + * @returns {DeconstructedSnowflake} Deconstructed snowflake + */ + static deconstruct(snowflake: any): { + timestamp: any; + workerID: number; + processID: number; + increment: number; + binary: string; + }; +} diff --git a/dist/server-util/src/util/Snowflake.js b/dist/server-util/src/util/Snowflake.js new file mode 100644
index 00000000..78373e95 --- /dev/null +++ b/dist/server-util/src/util/Snowflake.js
@@ -0,0 +1,116 @@ +// @ts-nocheck +// https://github.com/discordjs/discord.js/blob/master/src/util/Snowflake.js +// Apache License Version 2.0 Copyright 2015 - 2021 Amish Shah +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Snowflake = void 0; +// Discord epoch (2015-01-01T00:00:00.000Z) +/** + * A container for useful snowflake-related methods. + */ +class Snowflake { + constructor() { + throw new Error(`The ${this.constructor.name} class may not be instantiated.`); + } + /** + * A Twitter snowflake, except the epoch is 2015-01-01T00:00:00.000Z + * ``` + * If we have a snowflake '266241948824764416' we can represent it as binary: + * + * 64 22 17 12 0 + * 000000111011000111100001101001000101000000 00001 00000 000000000000 + * number of ms since Discord epoch worker pid increment + * ``` + * @typedef {string} Snowflake + */ + /** + * Transforms a snowflake from a decimal string to a bit string. + * @param {Snowflake} num Snowflake to be transformed + * @returns {string} + * @private + */ + static idToBinary(num) { + let bin = ""; + let high = parseInt(num.slice(0, -10)) || 0; + let low = parseInt(num.slice(-10)); + while (low > 0 || high > 0) { + bin = String(low & 1) + bin; + low = Math.floor(low / 2); + if (high > 0) { + low += 5000000000 * (high % 2); + high = Math.floor(high / 2); + } + } + return bin; + } + /** + * Transforms a snowflake from a bit string to a decimal string. + * @param {string} num Bit string to be transformed + * @returns {Snowflake} + * @private + */ + static binaryToID(num) { + let dec = ""; + while (num.length > 50) { + const high = parseInt(num.slice(0, -32), 2); + const low = parseInt((high % 10).toString(2) + num.slice(-32), 2); + dec = (low % 10).toString() + dec; + num = + Math.floor(high / 10).toString(2) + + Math.floor(low / 10) + .toString(2) + .padStart(32, "0"); + } + num = parseInt(num, 2); + while (num > 0) { + dec = (num % 10).toString() + dec; + num = Math.floor(num / 10); + } + return dec; + } + static generate() { + var time = BigInt(Date.now() - Snowflake.EPOCH) << 22n; + var worker = Snowflake.workerId << 17n; + var process = Snowflake.processId << 12n; + var increment = Snowflake.INCREMENT++; + return time | worker | process | increment; + } + /** + * A deconstructed snowflake. + * @typedef {Object} DeconstructedSnowflake + * @property {number} timestamp Timestamp the snowflake was created + * @property {Date} date Date the snowflake was created + * @property {number} workerID Worker ID in the snowflake + * @property {number} processID Process ID in the snowflake + * @property {number} increment Increment in the snowflake + * @property {string} binary Binary representation of the snowflake + */ + /** + * Deconstructs a Discord snowflake. + * @param {Snowflake} snowflake Snowflake to deconstruct + * @returns {DeconstructedSnowflake} Deconstructed snowflake + */ + static deconstruct(snowflake) { + const BINARY = Snowflake.idToBinary(snowflake).toString(2).padStart(64, "0"); + const res = { + timestamp: parseInt(BINARY.substring(0, 42), 2) + EPOCH, + workerID: parseInt(BINARY.substring(42, 47), 2), + processID: parseInt(BINARY.substring(47, 52), 2), + increment: parseInt(BINARY.substring(52, 64), 2), + binary: BINARY, + }; + Object.defineProperty(res, "date", { + get: function get() { + return new Date(this.timestamp); + }, + enumerable: true, + }); + return res; + } +} +exports.Snowflake = Snowflake; +Snowflake.EPOCH = 1420070400000; +Snowflake.INCREMENT = 0n; // max 4095 +Snowflake.processId = 0n; // max 31 +Snowflake.workerId = 0n; // max 31 +//# sourceMappingURL=Snowflake.js.map \ No newline at end of file diff --git a/dist/server-util/src/util/Snowflake.js.map b/dist/server-util/src/util/Snowflake.js.map new file mode 100644
index 00000000..f24ecbb9 --- /dev/null +++ b/dist/server-util/src/util/Snowflake.js.map
@@ -0,0 +1 @@ +{"version":3,"file":"Snowflake.js","sourceRoot":"","sources":["../../../../src/util/Snowflake.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/server-util/src/util/String.d.ts b/dist/server-util/src/util/String.d.ts new file mode 100644
index 00000000..0ec4281e --- /dev/null +++ b/dist/server-util/src/util/String.d.ts
@@ -0,0 +1,3 @@ +export declare const DOUBLE_WHITE_SPACE: RegExp; +export declare const SPECIAL_CHAR: RegExp; +export declare function trimSpecial(str: string): string; diff --git a/dist/server-util/src/util/String.js b/dist/server-util/src/util/String.js new file mode 100644
index 00000000..712328ef --- /dev/null +++ b/dist/server-util/src/util/String.js
@@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.trimSpecial = exports.SPECIAL_CHAR = exports.DOUBLE_WHITE_SPACE = void 0; +exports.DOUBLE_WHITE_SPACE = /\s\s+/g; +exports.SPECIAL_CHAR = /[@#`:\r\n\t\f\v\p{C}]/gu; +function trimSpecial(str) { + return str.replace(exports.SPECIAL_CHAR, "").replace(exports.DOUBLE_WHITE_SPACE, " ").trim(); +} +exports.trimSpecial = trimSpecial; +//# sourceMappingURL=String.js.map \ No newline at end of file diff --git a/dist/server-util/src/util/String.js.map b/dist/server-util/src/util/String.js.map new file mode 100644
index 00000000..8d5644c1 --- /dev/null +++ b/dist/server-util/src/util/String.js.map
@@ -0,0 +1 @@ +{"version":3,"file":"String.js","sourceRoot":"","sources":["../../../../src/util/String.ts"],"names":[],"mappings":";;;AAAa,QAAA,kBAAkB,GAAG,QAAQ,CAAC;AAC9B,QAAA,YAAY,GAAG,yBAAyB,CAAC;AAEtD,SAAgB,WAAW,CAAC,GAAW;IACtC,OAAO,GAAG,CAAC,OAAO,CAAC,oBAAY,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,0BAAkB,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AAC9E,CAAC;AAFD,kCAEC"} \ No newline at end of file diff --git a/dist/server-util/src/util/UserFlags.d.ts b/dist/server-util/src/util/UserFlags.d.ts new file mode 100644
index 00000000..b721d61c --- /dev/null +++ b/dist/server-util/src/util/UserFlags.d.ts
@@ -0,0 +1,18 @@ +import { BitField } from "./BitField"; +export declare class UserFlags extends BitField { + static FLAGS: { + DISCORD_EMPLOYEE: bigint; + PARTNERED_SERVER_OWNER: bigint; + HYPESQUAD_EVENTS: bigint; + BUGHUNTER_LEVEL_1: bigint; + HOUSE_BRAVERY: bigint; + HOUSE_BRILLIANCE: bigint; + HOUSE_BALANCE: bigint; + EARLY_SUPPORTER: bigint; + TEAM_USER: bigint; + SYSTEM: bigint; + BUGHUNTER_LEVEL_2: bigint; + VERIFIED_BOT: bigint; + EARLY_VERIFIED_BOT_DEVELOPER: bigint; + }; +} diff --git a/dist/server-util/src/util/UserFlags.js b/dist/server-util/src/util/UserFlags.js new file mode 100644
index 00000000..4df3f232 --- /dev/null +++ b/dist/server-util/src/util/UserFlags.js
@@ -0,0 +1,25 @@ +"use strict"; +// https://github.com/discordjs/discord.js/blob/master/src/util/UserFlags.js +// Apache License Version 2.0 Copyright 2015 - 2021 Amish Shah +Object.defineProperty(exports, "__esModule", { value: true }); +exports.UserFlags = void 0; +const BitField_1 = require("./BitField"); +class UserFlags extends BitField_1.BitField { +} +exports.UserFlags = UserFlags; +UserFlags.FLAGS = { + DISCORD_EMPLOYEE: 1n << 0n, + PARTNERED_SERVER_OWNER: 1n << 1n, + HYPESQUAD_EVENTS: 1n << 2n, + BUGHUNTER_LEVEL_1: 1n << 3n, + HOUSE_BRAVERY: 1n << 6n, + HOUSE_BRILLIANCE: 1n << 7n, + HOUSE_BALANCE: 1n << 8n, + EARLY_SUPPORTER: 1n << 9n, + TEAM_USER: 1n << 10n, + SYSTEM: 1n << 12n, + BUGHUNTER_LEVEL_2: 1n << 14n, + VERIFIED_BOT: 1n << 16n, + EARLY_VERIFIED_BOT_DEVELOPER: 1n << 17n, +}; +//# sourceMappingURL=UserFlags.js.map \ No newline at end of file diff --git a/dist/server-util/src/util/UserFlags.js.map b/dist/server-util/src/util/UserFlags.js.map new file mode 100644
index 00000000..c4d70e7b --- /dev/null +++ b/dist/server-util/src/util/UserFlags.js.map
@@ -0,0 +1 @@ +{"version":3,"file":"UserFlags.js","sourceRoot":"","sources":["../../../../src/util/UserFlags.ts"],"names":[],"mappings":";AAAA,4EAA4E;AAC5E,8DAA8D;;;AAE9D,yCAAsC;AAEtC,MAAa,SAAU,SAAQ,mBAAQ;;AAAvC,8BAgBC;AAfO,eAAK,GAAG;IACd,gBAAgB,EAAE,EAAE,IAAI,EAAE;IAC1B,sBAAsB,EAAE,EAAE,IAAI,EAAE;IAChC,gBAAgB,EAAE,EAAE,IAAI,EAAE;IAC1B,iBAAiB,EAAE,EAAE,IAAI,EAAE;IAC3B,aAAa,EAAE,EAAE,IAAI,EAAE;IACvB,gBAAgB,EAAE,EAAE,IAAI,EAAE;IAC1B,aAAa,EAAE,EAAE,IAAI,EAAE;IACvB,eAAe,EAAE,EAAE,IAAI,EAAE;IACzB,SAAS,EAAE,EAAE,IAAI,GAAG;IACpB,MAAM,EAAE,EAAE,IAAI,GAAG;IACjB,iBAAiB,EAAE,EAAE,IAAI,GAAG;IAC5B,YAAY,EAAE,EAAE,IAAI,GAAG;IACvB,4BAA4B,EAAE,EAAE,IAAI,GAAG;CACvC,CAAC"} \ No newline at end of file diff --git a/dist/server-util/src/util/checkToken.d.ts b/dist/server-util/src/util/checkToken.d.ts new file mode 100644
index 00000000..f8dcbe12 --- /dev/null +++ b/dist/server-util/src/util/checkToken.d.ts
@@ -0,0 +1 @@ +export declare function checkToken(token: string): Promise<any>; diff --git a/dist/server-util/src/util/checkToken.js b/dist/server-util/src/util/checkToken.js new file mode 100644
index 00000000..17d88178 --- /dev/null +++ b/dist/server-util/src/util/checkToken.js
@@ -0,0 +1,20 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.checkToken = void 0; +const Constants_1 = require("./Constants"); +const jsonwebtoken_1 = __importDefault(require("jsonwebtoken")); +const Config_1 = __importDefault(require("./Config")); +function checkToken(token) { + return new Promise((res, rej) => { + jsonwebtoken_1.default.verify(token, Config_1.default.getAll().api.security.jwtSecret, Constants_1.JWTOptions, (err, decoded) => { + if (err || !decoded) + return rej("Invalid Token"); + return res(decoded); + }); + }); +} +exports.checkToken = checkToken; +//# sourceMappingURL=checkToken.js.map \ No newline at end of file diff --git a/dist/server-util/src/util/checkToken.js.map b/dist/server-util/src/util/checkToken.js.map new file mode 100644
index 00000000..29e9d2ec --- /dev/null +++ b/dist/server-util/src/util/checkToken.js.map
@@ -0,0 +1 @@ +{"version":3,"file":"checkToken.js","sourceRoot":"","sources":["../../../../src/util/checkToken.ts"],"names":[],"mappings":";;;;;;AAAA,2CAAyC;AACzC,gEAA+B;AAC/B,sDAA8B;AAE9B,SAAgB,UAAU,CAAC,KAAa;IACvC,OAAO,IAAI,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC/B,sBAAG,CAAC,MAAM,CAAC,KAAK,EAAE,gBAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,sBAAU,EAAE,CAAC,GAAG,EAAE,OAAY,EAAE,EAAE;YAC3F,IAAI,GAAG,IAAI,CAAC,OAAO;gBAAE,OAAO,GAAG,CAAC,eAAe,CAAC,CAAC;YAEjD,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC;AARD,gCAQC"} \ No newline at end of file diff --git a/src/Schema/Activity.ts b/src/Schema/Activity.ts deleted file mode 100644
index 00772743..00000000 --- a/src/Schema/Activity.ts +++ /dev/null
@@ -1,81 +0,0 @@ -import { EmojiSchema } from "./Emoji"; - -export const ActivitySchema = { - afk: Boolean, - status: String, - $activities: [ - { - name: String, // the activity's name - type: Number, // activity type // TODO: check if its between range 0-5 - $url: String, // stream url, is validated when type is 1 - $created_at: Number, // unix timestamp of when the activity was added to the user's session - $timestamps: { - // unix timestamps for start and/or end of the game - start: Number, - end: Number, - }, - $application_id: BigInt, // application id for the game - $details: String, - $State: String, - $emoji: EmojiSchema, - $party: { - $id: String, - $size: [Number], // used to show the party's current and maximum size // TODO: array length 2 - }, - $assets: { - $large_image: String, // the id for a large asset of the activity, usually a snowflake - $large_text: String, // text displayed when hovering over the large image of the activity - $small_image: String, // the id for a small asset of the activity, usually a snowflake - $small_text: String, // text displayed when hovering over the small image of the activity - }, - $secrets: { - $join: String, // the secret for joining a party - $spectate: String, // the secret for spectating a game - $match: String, // the secret for a specific instanced match - }, - $instance: Boolean, - flags: BigInt, // activity flags OR d together, describes what the payload includes - }, - ], - $since: Number, // unix time (in milliseconds) of when the client went idle, or null if the client is not idle -}; - -export interface ActivitySchema { - afk: boolean; - status: string; - activities?: [ - { - name: string; // the activity's name - type: number; // activity type // TODO: check if its between range 0-5 - url?: string; // stream url, is validated when type is 1 - created_at?: number; // unix timestamp of when the activity was added to the user's session - timestamps?: { - // unix timestamps for start and/or end of the game - start: number; - end: number; - }; - application_id?: bigint; // application id for the game - details?: string; - State?: string; - emoji?: EmojiSchema; - party?: { - id?: string; - size?: [number]; // used to show the party's current and maximum size // TODO: array length 2 - }; - assets?: { - large_image?: string; // the id for a large asset of the activity, usually a snowflake - large_text?: string; // text displayed when hovering over the large image of the activity - small_image?: string; // the id for a small asset of the activity, usually a snowflake - small_text?: string; // text displayed when hovering over the small image of the activity - }; - secrets?: { - join?: string; // the secret for joining a party - spectate?: string; // the secret for spectating a game - match?: string; // the secret for a specific instanced match - }; - instance?: boolean; - flags: bigint; // activity flags OR d together, describes what the payload includes - } - ]; - since?: number; // unix time (in milliseconds) of when the client went idle, or null if the client is not idle -} diff --git a/src/Schema/Emoji.ts b/src/Schema/Emoji.ts deleted file mode 100644
index 09f3ebb1..00000000 --- a/src/Schema/Emoji.ts +++ /dev/null
@@ -1,11 +0,0 @@ -export const EmojiSchema = { - name: String, // the name of the emoji - $id: BigInt, // the id of the emoji - animated: Boolean, // whether this emoji is animated -}; - -export interface EmojiSchema { - name: string; - id?: bigint; - animated: Boolean; -} diff --git a/src/Schema/Guild.ts b/src/Schema/Guild.ts deleted file mode 100644
index c8634362..00000000 --- a/src/Schema/Guild.ts +++ /dev/null
@@ -1,35 +0,0 @@ -export const GuildSchema = { - name: String, // ! 2-100 chars - $region: String, // ? voice region ? - // $icon: String, // TODO: add icon data (base64 128x128) - - // * --- useless for us due to templates being a thing --- * // - // $verification_level: Number, // ! https://discord.com/developers/docs/resources/guild#guild-object-verification-level - // $default_message_notifications: Number, // ! https://discord.com/developers/docs/resources/guild#guild-object-default-message-notification-level - // $explicit_content_filter: Number, - // $roles: array of role objects, - // $channels: array of partial channel objects, - // $afk_channel_id: snowflake, - // * --- useless for us --- * // - - // $afk_timeout: Number, - // $system_channel_id: snowflake, -}; - -export interface GuildSchema { - name: string; // ! 2-100 chars - region?: string; // ? voice region ? - // icon?: string; // TODO: add icon data (base64 128x128) - - // * --- useless for us due to templates being a thing --- * // - // verification_level?: number; // ! https://discord.com/developers/docs/resources/guild#guild-object-verification-level - // default_message_notifications?: number; // ! https://discord.com/developers/docs/resources/guild#guild-object-default-message-notification-level - // explicit_content_filter?: number; - // $roles: array of role objects, - // $channels: array of partial channel objects, - // $afk_channel_id: snowflake, - // * --- useless for us --- * // - - // afk_timeout?: number; - // system_channel_id?: snowflake, -} diff --git a/src/Schema/Identify.ts b/src/Schema/Identify.ts deleted file mode 100644
index cfc3702a..00000000 --- a/src/Schema/Identify.ts +++ /dev/null
@@ -1,33 +0,0 @@ -import { ActivitySchema } from "./Activity"; - -export const IdentifySchema = { - token: String, - intents: BigInt, // discord uses a Integer for bitfields we use bigints tho. | instanceOf will automatically convert the Number to a BigInt - $properties: { - // bruh discord really uses $ in the property key, so we need to double prefix it, because instanceOf treats $ (prefix) as a optional key - $$os: String, - $$browser: String, - $$device: String, - }, - $presence: ActivitySchema, - $compress: Boolean, - $large_threshold: Number, - $shard: [Number], - $guild_subscriptions: Boolean, -}; - -export interface IdentifySchema { - token: string; - properties: { - // bruh discord really uses $ in the property key, so we need to double prefix it, because instanceOf treats $ (prefix) as a optional key - $$os: string; - $$browser: string; - $$device: string; - }; - intents: bigint; // discord uses a Integer for bitfields we use bigints tho. | instanceOf will automatically convert the Number to a BigInt - presence?: ActivitySchema; - compress?: boolean; - large_threshold?: number; - shard?: [number]; - guild_subscriptions?: boolean; -} diff --git a/src/index.ts b/src/index.ts
index d18dfeac..b218f8c2 100644 --- a/src/index.ts +++ b/src/index.ts
@@ -12,12 +12,6 @@ import { Member } from "./models/Member"; import { Role } from "./models/Role"; import { User } from "./models/User"; -//* schema -import { EmojiSchema } from "./Schema/Emoji"; -import { ActivitySchema } from "./Schema/Activity"; -import { IdentifySchema } from "./Schema/Identify"; -import { GuildSchema } from "./Schema/Guild"; - import { trimSpecial } from "./util/String"; import { BitField } from "./util/BitField"; import { Intents } from "./util/Intents"; @@ -47,8 +41,4 @@ export { Member, Role, User, - EmojiSchema, - ActivitySchema, - IdentifySchema, - GuildSchema, }; diff --git a/src/models/Event.ts b/src/models/Event.ts
index 4197ed04..8b19fc13 100644 --- a/src/models/Event.ts +++ b/src/models/Event.ts
@@ -1,6 +1,7 @@ export interface Event { guild_id?: bigint; user_id?: bigint; + channel_id?: bigint; created_at: number; data: any; event: string; diff --git a/src/models/Guild.ts b/src/models/Guild.ts
index 33ec9587..7e6fa614 100644 --- a/src/models/Guild.ts +++ b/src/models/Guild.ts
@@ -7,8 +7,6 @@ export interface Guild { afk_channel_id?: bigint; afk_timeout?: number; application_id?: bigint; - approximate_member_count?: number; - approximate_presence_count?: number; banner?: string; channels: Channel[]; default_message_notifications?: number; @@ -25,11 +23,11 @@ export interface Guild { max_presences?: number; max_video_channel_users?: number; // ? default: 25, is this max 25 streaming or watching member_count?: number; + presence_count?: number; // users online members?: Member[]; mfa_level?: number; name: string; owner_id: bigint; - permissions?: string; preferred_locale?: string; // only community guilds can choose this premium_subscription_count?: number; premium_tier?: number; // nitro boost level diff --git a/src/models/Role.ts b/src/models/Role.ts
index 44ddfea1..e0f2f863 100644 --- a/src/models/Role.ts +++ b/src/models/Role.ts
@@ -1,4 +1,5 @@ export interface Role { + id: bigint; color: number; hoist: boolean; managed: boolean; @@ -6,4 +7,7 @@ export interface Role { name: string; permissions: bigint; position: number; + tags?: { + bot_id?: bigint; + }; }