Config and database update

This commit is contained in:
Flam3rboy 2021-02-13 14:15:59 +01:00
parent 8595646b72
commit a44da1024d
51 changed files with 836 additions and 97 deletions

View File

@ -1,5 +1,6 @@
import { User } from "..";
import { ClientStatus, Status } from "./Status";
import { Types } from "mongoose";
export interface Presence {
user: User;
guild_id?: bigint;
@ -42,6 +43,41 @@ export interface Activity {
instance?: boolean;
flags?: bigint;
}
export declare const Activity: {
name: StringConstructor;
type: NumberConstructor;
url: StringConstructor;
created_at: NumberConstructor;
timestamps: {
start: NumberConstructor;
end: NumberConstructor;
}[];
application_id: typeof Types.Long;
details: StringConstructor;
state: StringConstructor;
emoji: {
name: StringConstructor;
id: typeof Types.Long;
amimated: 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: typeof Types.Long;
};
export declare enum ActivityType {
GAME = 0,
STREAMING = 1,

View File

@ -1,6 +1,44 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ActivityType = void 0;
exports.ActivityType = exports.Activity = void 0;
const mongoose_1 = require("mongoose");
exports.Activity = {
name: String,
type: Number,
url: String,
created_at: Number,
timestamps: [
{
start: Number,
end: Number,
},
],
application_id: mongoose_1.Types.Long,
details: String,
state: String,
emoji: {
name: String,
id: mongoose_1.Types.Long,
amimated: Boolean,
},
party: {
id: String,
size: [Number, Number],
},
assets: {
large_image: String,
large_text: String,
small_image: String,
small_text: String,
},
secrets: {
join: String,
spectate: String,
match: String,
},
instance: Boolean,
flags: mongoose_1.Types.Long,
};
var ActivityType;
(function (ActivityType) {
ActivityType[ActivityType["GAME"] = 0] = "GAME";

View File

@ -1 +1 @@
{"version":3,"file":"Activity.js","sourceRoot":"","sources":["../../src/models/Activity.ts"],"names":[],"mappings":";;;AA+CA,IAAY,YAMX;AAND,WAAY,YAAY;IACvB,+CAAQ,CAAA;IACR,yDAAa,CAAA;IACb,yDAAa,CAAA;IACb,mDAAU,CAAA;IACV,yDAAa,CAAA;AACd,CAAC,EANW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAMvB"}
{"version":3,"file":"Activity.js","sourceRoot":"","sources":["../../src/models/Activity.ts"],"names":[],"mappings":";;;AAEA,uCAA0D;AA8C7C,QAAA,QAAQ,GAAG;IACvB,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,MAAM;IACX,UAAU,EAAE,MAAM;IAClB,UAAU,EAAE;QACX;YACC,KAAK,EAAE,MAAM;YACb,GAAG,EAAE,MAAM;SACX;KACD;IACD,cAAc,EAAE,gBAAK,CAAC,IAAI;IAC1B,OAAO,EAAE,MAAM;IACf,KAAK,EAAE,MAAM;IACb,KAAK,EAAE;QACN,IAAI,EAAE,MAAM;QACZ,EAAE,EAAE,gBAAK,CAAC,IAAI;QACd,QAAQ,EAAE,OAAO;KACjB;IACD,KAAK,EAAE;QACN,EAAE,EAAE,MAAM;QACV,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;KACtB;IACD,MAAM,EAAE;QACP,WAAW,EAAE,MAAM;QACnB,UAAU,EAAE,MAAM;QAClB,WAAW,EAAE,MAAM;QACnB,UAAU,EAAE,MAAM;KAClB;IACD,OAAO,EAAE;QACR,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,MAAM;QAChB,KAAK,EAAE,MAAM;KACb;IACD,QAAQ,EAAE,OAAO;IACjB,KAAK,EAAE,gBAAK,CAAC,IAAI;CACjB,CAAC;AAEF,IAAY,YAMX;AAND,WAAY,YAAY;IACvB,+CAAQ,CAAA;IACR,yDAAa,CAAA;IACb,yDAAa,CAAA;IACb,mDAAU,CAAA;IACV,yDAAa,CAAA;AACd,CAAC,EANW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAMvB"}

View File

@ -1,17 +1,17 @@
/// <reference path="../util/MongoBigInt.d.ts" />
import { Schema, Document } from "mongoose";
export interface ChannelDocument extends Channel, DMChannel, TextChannel, VoiceChannel, Document {
id: bigint;
}
export declare const ChannelSchema: Schema<Document<any>, import("mongoose").Model<Document<any>>, undefined>;
export declare const ChannelModel: import("mongoose").Model<ChannelDocument>;
export interface Channel {
id: bigint;
created_at: number;
name: string;
type: number;
read_state: ReadState[];
}
export interface ReadState {
last_message_id: bigint;
last_pin_timestamp: number;
mention_count: number;
}
export interface TextBasedChannel {
messages: any[];
last_message_id?: bigint;
last_pin_timestamp?: number;
}

View File

@ -1,6 +1,32 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ChannelType = void 0;
exports.ChannelType = exports.ChannelModel = exports.ChannelSchema = void 0;
const mongoose_1 = require("mongoose");
exports.ChannelSchema = new mongoose_1.Schema({
id: mongoose_1.Types.Long,
created_at: { type: mongoose_1.Schema.Types.Date, required: true },
name: { type: String, required: true },
type: { type: Number, required: true },
guild_id: mongoose_1.Types.Long,
owner_id: mongoose_1.Types.Long,
parent_id: mongoose_1.Types.Long,
recipients: [mongoose_1.Types.Long],
position: Number,
last_message_id: mongoose_1.Types.Long,
last_pin_timestamp: Date,
nsfw: Boolean,
rate_limit_per_user: Number,
topic: String,
permission_overwrites: [
{
allow: mongoose_1.Types.Long,
deny: mongoose_1.Types.Long,
id: mongoose_1.Types.Long,
type: Number,
},
],
});
exports.ChannelModel = mongoose_1.model("Channel", exports.ChannelSchema, "channels");
var ChannelType;
(function (ChannelType) {
ChannelType[ChannelType["GUILD_TEXT"] = 0] = "GUILD_TEXT";

View File

@ -1 +1 @@
{"version":3,"file":"Channel.js","sourceRoot":"","sources":["../../src/models/Channel.ts"],"names":[],"mappings":";;;AA6CA,IAAY,WAQX;AARD,WAAY,WAAW;IACtB,yDAAc,CAAA;IACd,yCAAM,CAAA;IACN,2DAAe,CAAA;IACf,qDAAY,CAAA;IACZ,iEAAkB,CAAA;IAClB,yDAAc,CAAA;IACd,2DAAe,CAAA;AAChB,CAAC,EARW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAQtB"}
{"version":3,"file":"Channel.js","sourceRoot":"","sources":["../../src/models/Channel.ts"],"names":[],"mappings":";;;AAAA,uCAA0D;AAM7C,QAAA,aAAa,GAAG,IAAI,iBAAM,CAAC;IACvC,EAAE,EAAE,gBAAK,CAAC,IAAI;IACd,UAAU,EAAE,EAAE,IAAI,EAAE,iBAAM,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;IACvD,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACtC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACtC,QAAQ,EAAE,gBAAK,CAAC,IAAI;IACpB,QAAQ,EAAE,gBAAK,CAAC,IAAI;IACpB,SAAS,EAAE,gBAAK,CAAC,IAAI;IACrB,UAAU,EAAE,CAAC,gBAAK,CAAC,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM;IAChB,eAAe,EAAE,gBAAK,CAAC,IAAI;IAC3B,kBAAkB,EAAE,IAAI;IACxB,IAAI,EAAE,OAAO;IACb,mBAAmB,EAAE,MAAM;IAC3B,KAAK,EAAE,MAAM;IACb,qBAAqB,EAAE;QACtB;YACC,KAAK,EAAE,gBAAK,CAAC,IAAI;YACjB,IAAI,EAAE,gBAAK,CAAC,IAAI;YAChB,EAAE,EAAE,gBAAK,CAAC,IAAI;YACd,IAAI,EAAE,MAAM;SACZ;KACD;CACD,CAAC,CAAC;AAEU,QAAA,YAAY,GAAG,gBAAK,CAAkB,SAAS,EAAE,qBAAa,EAAE,UAAU,CAAC,CAAC;AAuCzF,IAAY,WAQX;AARD,WAAY,WAAW;IACtB,yDAAc,CAAA;IACd,yCAAM,CAAA;IACN,2DAAe,CAAA;IACf,qDAAY,CAAA;IACZ,iEAAkB,CAAA;IAClB,yDAAc,CAAA;IACd,2DAAe,CAAA;AAChB,CAAC,EARW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAQtB"}

View File

@ -1,12 +1,15 @@
export interface Emoji {
allNamesString: string;
/// <reference path="../util/MongoBigInt.d.ts" />
import { Schema, Document } from "mongoose";
export interface Emoji extends Document {
id: bigint;
animated: boolean;
available: boolean;
guildId: bigint;
id: bigint;
guild_id: bigint;
managed: boolean;
name: string;
require_colons: boolean;
url: string;
roles: [];
roles: bigint[];
}
export declare const EmojiSchema: Schema<Document<any>, import("mongoose").Model<Document<any>>, undefined>;
export declare const EmojiModel: import("mongoose").Model<Emoji>;

14
dist/models/Emoji.js vendored
View File

@ -1,3 +1,17 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.EmojiModel = exports.EmojiSchema = void 0;
const mongoose_1 = require("mongoose");
exports.EmojiSchema = new mongoose_1.Schema({
id: mongoose_1.Types.Long,
animated: Boolean,
available: Boolean,
guild_id: mongoose_1.Types.Long,
managed: Boolean,
name: String,
require_colons: Boolean,
url: String,
roles: [mongoose_1.Types.Long],
});
exports.EmojiModel = mongoose_1.model("Emoji", exports.EmojiSchema, "emojis");
//# sourceMappingURL=Emoji.js.map

View File

@ -1 +1 @@
{"version":3,"file":"Emoji.js","sourceRoot":"","sources":["../../src/models/Emoji.ts"],"names":[],"mappings":""}
{"version":3,"file":"Emoji.js","sourceRoot":"","sources":["../../src/models/Emoji.ts"],"names":[],"mappings":";;;AAAA,uCAA0D;AAc7C,QAAA,WAAW,GAAG,IAAI,iBAAM,CAAC;IACrC,EAAE,EAAE,gBAAK,CAAC,IAAI;IACd,QAAQ,EAAE,OAAO;IACjB,SAAS,EAAE,OAAO;IAClB,QAAQ,EAAE,gBAAK,CAAC,IAAI;IACpB,OAAO,EAAE,OAAO;IAChB,IAAI,EAAE,MAAM;IACZ,cAAc,EAAE,OAAO;IACvB,GAAG,EAAE,MAAM;IACX,KAAK,EAAE,CAAC,gBAAK,CAAC,IAAI,CAAC;CACnB,CAAC,CAAC;AAEU,QAAA,UAAU,GAAG,gBAAK,CAAQ,OAAO,EAAE,mBAAW,EAAE,QAAQ,CAAC,CAAC"}

View File

@ -1,3 +1,4 @@
/// <reference path="../util/MongoBigInt.d.ts" />
import { ConnectedAccount, User, UserSettings } from "./User";
import { DMChannel, Channel } from "./Channel";
import { Guild } from "./Guild";
@ -10,7 +11,8 @@ import { Message, PartialEmoji } from "./Message";
import { VoiceState } from "./VoiceState";
import { ApplicationCommand } from "./Application";
import { Interaction } from "./Interaction";
export interface Event {
import { Schema, Document } from "mongoose";
export interface Event extends Document {
guild_id?: bigint;
user_id?: bigint;
channel_id?: bigint;
@ -18,6 +20,8 @@ export interface Event {
event: EVENT;
data?: any;
}
export declare const EventSchema: Schema<Document<any>, import("mongoose").Model<Document<any>>, undefined>;
export declare const EventModel: import("mongoose").Model<Event>;
export interface InvalidatedEvent extends Event {
event: "INVALIDATED";
}
@ -113,7 +117,10 @@ export interface GuildUpdateEvent extends Event {
}
export interface GuildDeleteEvent extends Event {
event: "GUILD_DELETE";
data: Guild;
data: {
id: bigint;
unavailable?: boolean;
};
}
export interface GuildBanAddEvent extends Event {
event: "GUILD_BAN_ADD";

11
dist/models/Event.js vendored
View File

@ -1,3 +1,14 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.EventModel = exports.EventSchema = void 0;
const mongoose_1 = require("mongoose");
exports.EventSchema = new mongoose_1.Schema({
guild_id: mongoose_1.Types.Long,
user_id: mongoose_1.Types.Long,
channel_id: mongoose_1.Types.Long,
created_at: { type: Number, required: true },
event: { type: String, required: true },
data: Object,
});
exports.EventModel = mongoose_1.model("Event", exports.EventSchema, "events");
//# sourceMappingURL=Event.js.map

View File

@ -1 +1 @@
{"version":3,"file":"Event.js","sourceRoot":"","sources":["../../src/models/Event.ts"],"names":[],"mappings":""}
{"version":3,"file":"Event.js","sourceRoot":"","sources":["../../src/models/Event.ts"],"names":[],"mappings":";;;AAYA,uCAA0D;AAW7C,QAAA,WAAW,GAAG,IAAI,iBAAM,CAAC;IACrC,QAAQ,EAAE,gBAAK,CAAC,IAAI;IACpB,OAAO,EAAE,gBAAK,CAAC,IAAI;IACnB,UAAU,EAAE,gBAAK,CAAC,IAAI;IACtB,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC5C,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACvC,IAAI,EAAE,MAAM;CACZ,CAAC,CAAC;AAEU,QAAA,UAAU,GAAG,gBAAK,CAAQ,OAAO,EAAE,mBAAW,EAAE,QAAQ,CAAC,CAAC"}

View File

@ -1,5 +1,7 @@
import { Emoji } from "./Emoji";
export interface Guild {
/// <reference path="../util/MongoBigInt.d.ts" />
import { Schema, Document } from "mongoose";
export interface Guild extends Document {
id: bigint;
afk_channel_id?: bigint;
afk_timeout?: number;
application_id?: bigint;
@ -7,11 +9,9 @@ export interface Guild {
default_message_notifications?: number;
description?: string;
discovery_splash?: string;
emojis: Emoji[];
explicit_content_filter?: number;
features: string[];
icon?: string;
id: bigint;
large?: boolean;
max_members?: number;
max_presences?: number;
@ -38,3 +38,5 @@ export interface Guild {
widget_channel_id?: bigint;
widget_enabled?: boolean;
}
export declare const GuildSchema: Schema<Document<any>, import("mongoose").Model<Document<any>>, undefined>;
export declare const GuildModel: import("mongoose").Model<Guild>;

41
dist/models/Guild.js vendored
View File

@ -1,3 +1,44 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.GuildModel = exports.GuildSchema = void 0;
const mongoose_1 = require("mongoose");
exports.GuildSchema = new mongoose_1.Schema({
afk_channel_id: mongoose_1.Types.Long,
afk_timeout: Number,
application_id: mongoose_1.Types.Long,
banner: String,
default_message_notifications: Number,
description: String,
discovery_splash: String,
explicit_content_filter: Number,
features: { type: [String], default: [] },
icon: String,
id: { type: mongoose_1.Types.Long, required: true },
large: Boolean,
max_members: { type: Number, default: 100000 },
max_presences: Number,
max_video_channel_users: { type: Number, default: 25 },
member_count: Number,
presence_count: Number,
mfa_level: Number,
name: { type: String, required: true },
owner_id: { type: mongoose_1.Types.Long, required: true },
preferred_locale: String,
premium_subscription_count: Number,
premium_tier: Number,
public_updates_channel_id: mongoose_1.Types.Long,
region: String,
rules_channel_id: mongoose_1.Types.Long,
splash: String,
system_channel_flags: Number,
system_channel_id: mongoose_1.Types.Long,
unavailable: Boolean,
vanity_url_code: String,
verification_level: Number,
voice_states: { type: [Object], default: [] },
welcome_screen: { type: [Object], default: [] },
widget_channel_id: mongoose_1.Types.Long,
widget_enabled: Boolean,
});
exports.GuildModel = mongoose_1.model("Guild", exports.GuildSchema, "guilds");
//# sourceMappingURL=Guild.js.map

View File

@ -1 +1 @@
{"version":3,"file":"Guild.js","sourceRoot":"","sources":["../../src/models/Guild.ts"],"names":[],"mappings":""}
{"version":3,"file":"Guild.js","sourceRoot":"","sources":["../../src/models/Guild.ts"],"names":[],"mappings":";;;AAAA,uCAA0D;AA6C7C,QAAA,WAAW,GAAG,IAAI,iBAAM,CAAC;IACrC,cAAc,EAAE,gBAAK,CAAC,IAAI;IAC1B,WAAW,EAAE,MAAM;IACnB,cAAc,EAAE,gBAAK,CAAC,IAAI;IAC1B,MAAM,EAAE,MAAM;IACd,6BAA6B,EAAE,MAAM;IACrC,WAAW,EAAE,MAAM;IACnB,gBAAgB,EAAE,MAAM;IACxB,uBAAuB,EAAE,MAAM;IAC/B,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;IACzC,IAAI,EAAE,MAAM;IACZ,EAAE,EAAE,EAAE,IAAI,EAAE,gBAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;IACxC,KAAK,EAAE,OAAO;IACd,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;IAC9C,aAAa,EAAE,MAAM;IACrB,uBAAuB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;IACtD,YAAY,EAAE,MAAM;IACpB,cAAc,EAAE,MAAM;IACtB,SAAS,EAAE,MAAM;IACjB,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACtC,QAAQ,EAAE,EAAE,IAAI,EAAE,gBAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC9C,gBAAgB,EAAE,MAAM;IACxB,0BAA0B,EAAE,MAAM;IAClC,YAAY,EAAE,MAAM;IACpB,yBAAyB,EAAE,gBAAK,CAAC,IAAI;IACrC,MAAM,EAAE,MAAM;IACd,gBAAgB,EAAE,gBAAK,CAAC,IAAI;IAC5B,MAAM,EAAE,MAAM;IACd,oBAAoB,EAAE,MAAM;IAC5B,iBAAiB,EAAE,gBAAK,CAAC,IAAI;IAC7B,WAAW,EAAE,OAAO;IACpB,eAAe,EAAE,MAAM;IACvB,kBAAkB,EAAE,MAAM;IAC1B,YAAY,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;IAC7C,cAAc,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;IAC/C,iBAAiB,EAAE,gBAAK,CAAC,IAAI;IAC7B,cAAc,EAAE,OAAO;CACvB,CAAC,CAAC;AAEU,QAAA,UAAU,GAAG,gBAAK,CAAQ,OAAO,EAAE,mBAAW,EAAE,QAAQ,CAAC,CAAC"}

View File

@ -1,4 +1,6 @@
export interface Invite {
/// <reference path="../util/MongoBigInt.d.ts" />
import { Schema, Document } from "mongoose";
export interface Invite extends Document {
code: string;
temporary: boolean;
uses: number;
@ -33,3 +35,5 @@ export interface Invite {
};
target_user_type: number;
}
export declare const InviteSchema: Schema<Document<any>, import("mongoose").Model<Document<any>>, undefined>;
export declare const InviteModel: import("mongoose").Model<Invite>;

38
dist/models/Invite.js vendored
View File

@ -1,3 +1,41 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.InviteModel = exports.InviteSchema = void 0;
const mongoose_1 = require("mongoose");
exports.InviteSchema = new mongoose_1.Schema({
code: String,
temporary: Boolean,
uses: Number,
max_uses: Number,
max_age: Number,
created_at: Number,
guild: {
id: mongoose_1.Types.Long,
name: String,
splash: String,
description: String,
icon: String,
features: Object,
verification_level: Number,
},
channel: {
id: mongoose_1.Types.Long,
name: String,
type: Number,
},
inviter: {
id: mongoose_1.Types.Long,
username: String,
avatar: String,
discriminator: Number,
},
target_user: {
id: mongoose_1.Types.Long,
username: String,
avatar: String,
discriminator: Number,
},
target_user_type: Number,
});
exports.InviteModel = mongoose_1.model("Invite", exports.InviteSchema, "invites");
//# sourceMappingURL=Invite.js.map

View File

@ -1 +1 @@
{"version":3,"file":"Invite.js","sourceRoot":"","sources":["../../src/models/Invite.ts"],"names":[],"mappings":""}
{"version":3,"file":"Invite.js","sourceRoot":"","sources":["../../src/models/Invite.ts"],"names":[],"mappings":";;;AAAA,uCAA0D;AAsC7C,QAAA,YAAY,GAAG,IAAI,iBAAM,CAAC;IACtC,IAAI,EAAE,MAAM;IACZ,SAAS,EAAE,OAAO;IAClB,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,MAAM;IAChB,OAAO,EAAE,MAAM;IACf,UAAU,EAAE,MAAM;IAClB,KAAK,EAAE;QACN,EAAE,EAAE,gBAAK,CAAC,IAAI;QACd,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,MAAM;QACd,WAAW,EAAE,MAAM;QACnB,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,MAAM;QAChB,kBAAkB,EAAE,MAAM;KAC1B;IACD,OAAO,EAAE;QACR,EAAE,EAAE,gBAAK,CAAC,IAAI;QACd,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,MAAM;KACZ;IAED,OAAO,EAAE;QACR,EAAE,EAAE,gBAAK,CAAC,IAAI;QACd,QAAQ,EAAE,MAAM;QAChB,MAAM,EAAE,MAAM;QACd,aAAa,EAAE,MAAM;KACrB;IACD,WAAW,EAAE;QACZ,EAAE,EAAE,gBAAK,CAAC,IAAI;QACd,QAAQ,EAAE,MAAM;QAChB,MAAM,EAAE,MAAM;QACd,aAAa,EAAE,MAAM;KACrB;IACD,gBAAgB,EAAE,MAAM;CACxB,CAAC,CAAC;AAEU,QAAA,WAAW,GAAG,gBAAK,CAAS,QAAQ,EAAE,oBAAY,EAAE,SAAS,CAAC,CAAC"}

View File

@ -1,5 +1,7 @@
/// <reference path="../util/MongoBigInt.d.ts" />
import { PublicUser } from "./User";
export interface Member {
import { Schema, Document } from "mongoose";
export interface Member extends Document {
id: bigint;
nick?: string;
roles: bigint[];
@ -11,9 +13,6 @@ export interface Member {
permissions: bigint;
settings: UserGuildSettings;
}
export interface PublicMember extends Omit<Member, "settings" | "id"> {
user: PublicUser;
}
export interface UserGuildSettings {
channel_overrides: {
channel_id: bigint;
@ -33,3 +32,8 @@ export interface MuteConfig {
end_time: number;
selected_time_window: number;
}
export declare const MemberSchema: Schema<Document<any>, import("mongoose").Model<Document<any>>, undefined>;
export declare const MemberModel: import("mongoose").Model<Member>;
export interface PublicMember extends Omit<Member, "settings" | "id"> {
user: PublicUser;
}

35
dist/models/Member.js vendored
View File

@ -1,3 +1,38 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.MemberModel = exports.MemberSchema = void 0;
const mongoose_1 = require("mongoose");
const MuteConfig = {
end_time: Number,
selected_time_window: Number,
};
exports.MemberSchema = new mongoose_1.Schema({
id: mongoose_1.Types.Long,
nick: String,
roles: [mongoose_1.Types.Long],
joined_at: Number,
premium_since: Number,
deaf: Boolean,
mute: Boolean,
pending: Boolean,
permissions: mongoose_1.Types.Long,
settings: {
channel_overrides: [
{
channel_id: mongoose_1.Types.Long,
message_notifications: Number,
mute_config: MuteConfig,
muted: Boolean,
},
],
message_notifications: Number,
mobile_push: Boolean,
mute_config: MuteConfig,
muted: Boolean,
suppress_everyone: Boolean,
suppress_roles: Boolean,
version: Number,
},
});
exports.MemberModel = mongoose_1.model("Member", exports.MemberSchema, "members");
//# sourceMappingURL=Member.js.map

View File

@ -1 +1 @@
{"version":3,"file":"Member.js","sourceRoot":"","sources":["../../src/models/Member.ts"],"names":[],"mappings":""}
{"version":3,"file":"Member.js","sourceRoot":"","sources":["../../src/models/Member.ts"],"names":[],"mappings":";;;AACA,uCAA0D;AAoC1D,MAAM,UAAU,GAAG;IAClB,QAAQ,EAAE,MAAM;IAChB,oBAAoB,EAAE,MAAM;CAC5B,CAAC;AAEW,QAAA,YAAY,GAAG,IAAI,iBAAM,CAAC;IACtC,EAAE,EAAE,gBAAK,CAAC,IAAI;IACd,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,CAAC,gBAAK,CAAC,IAAI,CAAC;IACnB,SAAS,EAAE,MAAM;IACjB,aAAa,EAAE,MAAM;IACrB,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,OAAO;IACb,OAAO,EAAE,OAAO;IAChB,WAAW,EAAE,gBAAK,CAAC,IAAI;IACvB,QAAQ,EAAE;QACT,iBAAiB,EAAE;YAClB;gBACC,UAAU,EAAE,gBAAK,CAAC,IAAI;gBACtB,qBAAqB,EAAE,MAAM;gBAC7B,WAAW,EAAE,UAAU;gBACvB,KAAK,EAAE,OAAO;aACd;SACD;QACD,qBAAqB,EAAE,MAAM;QAC7B,WAAW,EAAE,OAAO;QACpB,WAAW,EAAE,UAAU;QACvB,KAAK,EAAE,OAAO;QACd,iBAAiB,EAAE,OAAO;QAC1B,cAAc,EAAE,OAAO;QACvB,OAAO,EAAE,MAAM;KACf;CACD,CAAC,CAAC;AAEU,QAAA,WAAW,GAAG,gBAAK,CAAS,QAAQ,EAAE,oBAAY,EAAE,SAAS,CAAC,CAAC"}

View File

@ -1,5 +1,7 @@
/// <reference path="../util/MongoBigInt.d.ts" />
import { Schema, Document } from "mongoose";
import { ChannelType } from "./Channel";
export interface Message {
export interface Message extends Document {
id: bigint;
author_id?: bigint;
webhook_id?: bigint;
@ -26,7 +28,7 @@ export interface Message {
activity?: {
type: number;
party_id: string;
}[];
};
flags?: bigint;
stickers?: [];
message_reference?: {
@ -115,3 +117,5 @@ export interface AllowedMentions {
users?: bigint[];
replied_user?: boolean;
}
export declare const MessageSchema: Schema<Document<any>, import("mongoose").Model<Document<any>>, undefined>;
export declare const MessageModel: import("mongoose").Model<Message>;

View File

@ -1,6 +1,8 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.MessageType = void 0;
exports.MessageModel = exports.MessageSchema = exports.MessageType = void 0;
const mongoose_1 = require("mongoose");
const Channel_1 = require("./Channel");
var MessageType;
(function (MessageType) {
MessageType[MessageType["DEFAULT"] = 0] = "DEFAULT";
@ -21,4 +23,99 @@ var MessageType;
MessageType[MessageType["REPLY"] = 19] = "REPLY";
MessageType[MessageType["APPLICATION_COMMAND"] = 20] = "APPLICATION_COMMAND";
})(MessageType = exports.MessageType || (exports.MessageType = {}));
const Attachment = {
id: mongoose_1.Types.Long,
filename: String,
size: Number,
url: String,
proxy_url: String,
height: Number,
width: Number,
};
const EmbedImage = {
url: String,
proxy_url: String,
height: Number,
width: Number,
};
const Reaction = {
count: Number,
emoji: {
id: mongoose_1.Types.Long,
name: String,
animated: Boolean,
},
};
const Embed = {
title: String,
type: String,
description: String,
url: String,
timestamp: Number,
color: Number,
footer: {
text: String,
icon_url: String,
proxy_icon_url: String,
},
image: EmbedImage,
thumbnail: EmbedImage,
video: EmbedImage,
provider: {
name: String,
url: String,
},
author: {
name: String,
url: String,
icon_url: String,
proxy_icon_url: String,
},
fields: [
{
name: String,
value: String,
inline: Boolean,
},
],
};
exports.MessageSchema = new mongoose_1.Schema({
id: mongoose_1.Types.Long,
author_id: mongoose_1.Types.Long,
webhook_id: mongoose_1.Types.Long,
application_id: mongoose_1.Types.Long,
content: String,
timestamp: Number,
edited_timestamp: Number,
tts: Boolean,
mention_everyone: Boolean,
mentions: [mongoose_1.Types.Long],
mention_roles: [mongoose_1.Types.Long],
mention_channels: [
{
id: mongoose_1.Types.Long,
guild_id: mongoose_1.Types.Long,
type: Channel_1.ChannelType,
name: String,
},
],
attachments: [Attachment],
embeds: [Embed],
reactions: [Reaction],
nonce: mongoose_1.Schema.Types.Mixed,
pinned: Boolean,
type: MessageType,
activity: {
type: Number,
party_id: String,
},
flags: mongoose_1.Types.Long,
stickers: [],
message_reference: {
message_id: mongoose_1.Types.Long,
channel_id: mongoose_1.Types.Long,
guild_id: mongoose_1.Types.Long,
},
});
exports.MessageModel = mongoose_1.model("Message", exports.MessageSchema, "messages");
//# sourceMappingURL=Message.js.map

View File

@ -1 +1 @@
{"version":3,"file":"Message.js","sourceRoot":"","sources":["../../src/models/Message.ts"],"names":[],"mappings":";;;AAuCA,IAAY,WAkBX;AAlBD,WAAY,WAAW;IACtB,mDAAW,CAAA;IACX,+DAAiB,CAAA;IACjB,qEAAoB,CAAA;IACpB,6CAAQ,CAAA;IACR,2EAAuB,CAAA;IACvB,2EAAuB,CAAA;IACvB,iFAA0B,CAAA;IAC1B,uEAAqB,CAAA;IACrB,mGAAmC,CAAA;IACnC,iHAA0C,CAAA;IAC1C,kHAA2C,CAAA;IAC3C,kHAA2C,CAAA;IAC3C,0EAAuB,CAAA;IACvB,8FAAiC,CAAA;IACjC,4FAAgC,CAAA;IAChC,gDAAU,CAAA;IACV,4EAAwB,CAAA;AACzB,CAAC,EAlBW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAkBtB"}
{"version":3,"file":"Message.js","sourceRoot":"","sources":["../../src/models/Message.ts"],"names":[],"mappings":"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"}

View File

@ -1,4 +1,6 @@
export interface Role {
/// <reference path="../util/MongoBigInt.d.ts" />
import { Schema, Document } from "mongoose";
export interface Role extends Document {
id: bigint;
color: number;
hoist: boolean;
@ -11,3 +13,5 @@ export interface Role {
bot_id?: bigint;
};
}
export declare const RoleSchema: Schema<Document<any>, import("mongoose").Model<Document<any>>, undefined>;
export declare const RoleModel: import("mongoose").Model<Role>;

16
dist/models/Role.js vendored
View File

@ -1,3 +1,19 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.RoleModel = exports.RoleSchema = void 0;
const mongoose_1 = require("mongoose");
exports.RoleSchema = new mongoose_1.Schema({
id: mongoose_1.Types.Long,
color: Number,
hoist: Boolean,
managed: Boolean,
mentionable: Boolean,
name: String,
permissions: mongoose_1.Types.Long,
position: Number,
tags: {
bot_id: mongoose_1.Types.Long,
},
});
exports.RoleModel = mongoose_1.model("Role", exports.RoleSchema, "roles");
//# sourceMappingURL=Role.js.map

View File

@ -1 +1 @@
{"version":3,"file":"Role.js","sourceRoot":"","sources":["../../src/models/Role.ts"],"names":[],"mappings":""}
{"version":3,"file":"Role.js","sourceRoot":"","sources":["../../src/models/Role.ts"],"names":[],"mappings":";;;AAAA,uCAA0D;AAgB7C,QAAA,UAAU,GAAG,IAAI,iBAAM,CAAC;IACpC,EAAE,EAAE,gBAAK,CAAC,IAAI;IACd,KAAK,EAAE,MAAM;IACb,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,OAAO;IAChB,WAAW,EAAE,OAAO;IACpB,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,gBAAK,CAAC,IAAI;IACvB,QAAQ,EAAE,MAAM;IAChB,IAAI,EAAE;QACL,MAAM,EAAE,gBAAK,CAAC,IAAI;KAClB;CACD,CAAC,CAAC;AAEU,QAAA,SAAS,GAAG,gBAAK,CAAO,MAAM,EAAE,kBAAU,EAAE,OAAO,CAAC,CAAC"}

View File

@ -4,3 +4,8 @@ export interface ClientStatus {
mobile?: string;
web?: string;
}
export declare const ClientStatus: {
desktop: StringConstructor;
mobile: StringConstructor;
web: StringConstructor;
};

View File

@ -1,3 +1,9 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ClientStatus = void 0;
exports.ClientStatus = {
desktop: String,
mobile: String,
web: String,
};
//# sourceMappingURL=Status.js.map

View File

@ -1 +1 @@
{"version":3,"file":"Status.js","sourceRoot":"","sources":["../../src/models/Status.ts"],"names":[],"mappings":""}
{"version":3,"file":"Status.js","sourceRoot":"","sources":["../../src/models/Status.ts"],"names":[],"mappings":";;;AAQa,QAAA,YAAY,GAAG;IAC3B,OAAO,EAAE,MAAM;IACf,MAAM,EAAE,MAAM;IACd,GAAG,EAAE,MAAM;CACX,CAAC"}

View File

@ -1,6 +1,8 @@
/// <reference path="../util/MongoBigInt.d.ts" />
import { Activity } from "./Activity";
import { ClientStatus, Status } from "./Status";
export interface User {
import { Schema, Document } from "mongoose";
export interface User extends Document {
id: bigint;
username: string;
discriminator: string;
@ -99,3 +101,5 @@ export interface UserSettings {
theme: "dark" | "white";
timezone_offset: number;
}
export declare const UserSchema: Schema<Document<any>, import("mongoose").Model<Document<any>>, undefined>;
export declare const UserModel: import("mongoose").Model<User>;

99
dist/models/User.js vendored
View File

@ -1,3 +1,102 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.UserModel = exports.UserSchema = void 0;
const Activity_1 = require("./Activity");
const Status_1 = require("./Status");
const mongoose_1 = require("mongoose");
exports.UserSchema = new mongoose_1.Schema({
id: mongoose_1.Types.Long,
username: String,
discriminator: String,
avatar: String,
phone: String,
desktop: Boolean,
mobile: Boolean,
premium: Boolean,
premium_type: Number,
bot: Boolean,
system: Boolean,
nsfw_allowed: Boolean,
mfa_enabled: Boolean,
created_at: Number,
verified: Boolean,
email: String,
flags: mongoose_1.Types.Long,
public_flags: mongoose_1.Types.Long,
hash: String,
guilds: [mongoose_1.Types.Long],
valid_tokens_since: Number,
user_settings: {
afk_timeout: Number,
allow_accessibility_detection: Boolean,
animate_emoji: Boolean,
animate_stickers: Number,
contact_sync_enabled: Boolean,
convert_emoticons: Boolean,
custom_status: {
emoji_id: mongoose_1.Types.Long,
emoji_name: String,
expires_at: Number,
text: String,
},
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,
// every top guild is displayed as a "folder"
guild_folders: [
{
color: Number,
guild_ids: [mongoose_1.Types.Long],
id: Number,
name: String,
},
],
guild_positions: [mongoose_1.Types.Long],
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: [mongoose_1.Types.Long],
show_current_game: Boolean,
status: String,
stream_notifications_enabled: Boolean,
theme: String,
timezone_offset: Number,
},
relationships: [
{
id: mongoose_1.Types.Long,
nickname: String,
type: Number,
user_id: mongoose_1.Types.Long,
},
],
connected_accounts: [
{
access_token: String,
friend_sync: Boolean,
id: String,
name: String,
revoked: Boolean,
show_activity: Boolean,
type: String,
verifie: Boolean,
visibility: Number,
},
],
presence: {
status: String,
activities: [Activity_1.Activity],
client_status: Status_1.ClientStatus,
},
});
exports.UserModel = mongoose_1.model("User", exports.UserSchema, "users");
//# sourceMappingURL=User.js.map

View File

@ -1 +1 @@
{"version":3,"file":"User.js","sourceRoot":"","sources":["../../src/models/User.ts"],"names":[],"mappings":""}
{"version":3,"file":"User.js","sourceRoot":"","sources":["../../src/models/User.ts"],"names":[],"mappings":"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"}

View File

@ -1,4 +1,6 @@
export interface VoiceState {
/// <reference path="../util/MongoBigInt.d.ts" />
import { Schema, Document } from "mongoose";
export interface VoiceState extends Document {
guild_id?: bigint;
channel_id: bigint;
user_id: bigint;
@ -11,3 +13,5 @@ export interface VoiceState {
self_video: boolean;
suppress: boolean;
}
export declare const VoiceSateSchema: Schema<Document<any>, import("mongoose").Model<Document<any>>, undefined>;
export declare const VoiceStateModel: import("mongoose").Model<VoiceState>;

View File

@ -1,3 +1,19 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.VoiceStateModel = exports.VoiceSateSchema = void 0;
const mongoose_1 = require("mongoose");
exports.VoiceSateSchema = new mongoose_1.Schema({
guild_id: mongoose_1.Types.Long,
channel_id: mongoose_1.Types.Long,
user_id: mongoose_1.Types.Long,
session_id: String,
deaf: Boolean,
mute: Boolean,
self_deaf: Boolean,
self_mute: Boolean,
self_stream: Boolean,
self_video: Boolean,
suppress: Boolean,
});
exports.VoiceStateModel = mongoose_1.model("VoiceState", exports.VoiceSateSchema, "voicestates");
//# sourceMappingURL=VoiceState.js.map

View File

@ -1 +1 @@
{"version":3,"file":"VoiceState.js","sourceRoot":"","sources":["../../src/models/VoiceState.ts"],"names":[],"mappings":""}
{"version":3,"file":"VoiceState.js","sourceRoot":"","sources":["../../src/models/VoiceState.ts"],"names":[],"mappings":";;;AACA,uCAA0D;AAgB7C,QAAA,eAAe,GAAG,IAAI,iBAAM,CAAC;IACzC,QAAQ,EAAE,gBAAK,CAAC,IAAI;IACpB,UAAU,EAAE,gBAAK,CAAC,IAAI;IACtB,OAAO,EAAE,gBAAK,CAAC,IAAI;IACnB,UAAU,EAAE,MAAM;IAClB,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,OAAO;IACb,SAAS,EAAE,OAAO;IAClB,SAAS,EAAE,OAAO;IAClB,WAAW,EAAE,OAAO;IACpB,UAAU,EAAE,OAAO;IACnB,QAAQ,EAAE,OAAO;CACjB,CAAC,CAAC;AAEU,QAAA,eAAe,GAAG,gBAAK,CAAa,YAAY,EAAE,uBAAe,EAAE,aAAa,CAAC,CAAC"}

16
dist/util/Config.d.ts vendored
View File

@ -1,13 +1,21 @@
/// <reference path="MongoBigInt.d.ts" />
import { Schema, Document } from "mongoose";
import "missing-native-js-functions";
declare const _default: {
init: (opts?: DefaultOptions) => Promise<void>;
init: () => Promise<import("mongodb").UpdateWriteOpResult>;
getAll: () => DefaultOptions;
setAll: (val: any) => any;
setAll: (val: any) => Promise<import("mongodb").UpdateWriteOpResult>;
};
export default _default;
export interface DefaultOptions {
export declare const DefaultOptions: {
api: {};
gateway: {};
voice: {};
};
export interface DefaultOptions extends Document {
api?: any;
gateway?: any;
voice?: any;
}
export declare const DefaultOptions: DefaultOptions;
export declare const ConfigSchema: Schema<Document<any>, import("mongoose").Model<Document<any>>, undefined>;
export declare const ConfigModel: import("mongoose").Model<DefaultOptions>;

42
dist/util/Config.js vendored
View File

@ -1,23 +1,39 @@
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
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;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.DefaultOptions = void 0;
exports.ConfigModel = exports.ConfigSchema = exports.DefaultOptions = void 0;
const mongoose_1 = require("mongoose");
require("missing-native-js-functions");
const Database_1 = __importDefault(require("./Database"));
var Config;
const Database_1 = __importStar(require("./Database"));
var Config = new Database_1.MongooseCache(Database_1.default.collection("config"), [], { onlyEvents: false });
exports.default = {
init: async function init(opts = exports.DefaultOptions) {
Config = await Database_1.default.data.config({}).cache();
init: async function init() {
await Config.init();
await Config.set(opts.merge(Config.cache || {}));
return this.setAll(Config.data.merge(exports.DefaultOptions));
},
getAll: function get() {
return Config.get();
return Config.data;
},
setAll: function set(val) {
return Config.set(val);
return Database_1.default.collection("config").updateOne({}, { $set: val });
},
};
exports.DefaultOptions = {
@ -25,4 +41,10 @@ exports.DefaultOptions = {
gateway: {},
voice: {},
};
exports.ConfigSchema = new mongoose_1.Schema({
api: Object,
gateway: Object,
voice: Object,
});
exports.ConfigModel = mongoose_1.model("Config", exports.ConfigSchema, "config");
//# sourceMappingURL=Config.js.map

View File

@ -1 +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"}
{"version":3,"file":"Config.js","sourceRoot":"","sources":["../../src/util/Config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,uCAA0D;AAC1D,uCAAqC;AACrC,uDAA+C;AAE/C,IAAI,MAAM,GAAG,IAAI,wBAAa,CAAC,kBAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;AAEnF,kBAAe;IACd,IAAI,EAAE,KAAK,UAAU,IAAI;QACxB,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,sBAAc,CAAC,CAAC,CAAC;IACvD,CAAC;IACD,MAAM,EAAE,SAAS,GAAG;QACnB,OAAuB,MAAM,CAAC,IAAI,CAAC;IACpC,CAAC;IACD,MAAM,EAAE,SAAS,GAAG,CAAC,GAAQ;QAC5B,OAAO,kBAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;IAC7D,CAAC;CACD,CAAC;AAEW,QAAA,cAAc,GAAG;IAC7B,GAAG,EAAE,EAAE;IACP,OAAO,EAAE,EAAE;IACX,KAAK,EAAE,EAAE;CACT,CAAC;AAQW,QAAA,YAAY,GAAG,IAAI,iBAAM,CAAC;IACtC,GAAG,EAAE,MAAM;IACX,OAAO,EAAE,MAAM;IACf,KAAK,EAAE,MAAM;CACb,CAAC,CAAC;AAEU,QAAA,WAAW,GAAG,gBAAK,CAAiB,QAAQ,EAAE,oBAAY,EAAE,QAAQ,CAAC,CAAC"}

View File

@ -1,3 +1,29 @@
import { MongoDatabase } from "lambert-db";
declare const db: MongoDatabase;
export default db;
/// <reference types="node" />
import "./MongoBigInt";
import mongoose, { Collection } from "mongoose";
import { ChangeStream, ChangeEvent } from "mongodb";
import EventEmitter from "events";
declare const _default: mongoose.Connection;
export default _default;
export interface MongooseCache {
on(event: "delete", listener: (id: string) => void): this;
on(event: "change", listener: (data: any) => void): this;
on(event: "insert", listener: (data: any) => void): this;
on(event: "close", listener: () => void): this;
}
export declare class MongooseCache extends EventEmitter {
collection: Collection;
pipeline: Array<Record<string, unknown>>;
opts: {
onlyEvents: boolean;
};
stream: ChangeStream;
data: any;
constructor(collection: Collection, pipeline: Array<Record<string, unknown>>, opts: {
onlyEvents: boolean;
});
init(): Promise<void>;
convertResult(obj: any): any;
change: (doc: ChangeEvent) => boolean | Promise<any> | undefined;
destroy(): Promise<any> | undefined;
}

79
dist/util/Database.js vendored
View File

@ -1,10 +1,75 @@
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
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;
exports.MongooseCache = void 0;
require("./MongoBigInt");
const mongoose_1 = __importDefault(require("mongoose"));
const mongodb_1 = require("mongodb");
const events_1 = __importDefault(require("events"));
const uri = process.env.MONGO_URL || "mongodb://localhost:27017/fosscord?readPreference=secondaryPreferred";
const connection = mongoose_1.default.createConnection(uri, { autoIndex: true });
exports.default = connection;
class MongooseCache extends events_1.default {
constructor(collection, pipeline, opts) {
super();
this.collection = collection;
this.pipeline = pipeline;
this.opts = opts;
this.change = (doc) => {
// @ts-ignore
if (doc.fullDocument) {
// @ts-ignore
if (!this.opts.onlyEvents)
this.data = doc.fullDocument;
}
switch (doc.operationType) {
case "dropDatabase":
return this.destroy();
case "drop":
return this.destroy();
case "delete":
return this.emit("delete", doc.documentKey._id.toHexString());
case "insert":
return this.emit("insert", doc.fullDocument);
case "update":
case "replace":
return this.emit("change", doc.fullDocument);
case "invalidate":
return this.destroy();
default:
return;
}
};
}
async init() {
this.stream = this.collection.watch(this.pipeline, { fullDocument: "updateLookup" });
this.stream.on("change", this.change);
this.stream.on("close", this.destroy);
this.stream.on("error", console.error);
if (!this.opts.onlyEvents) {
const arr = await this.collection.aggregate(this.pipeline).toArray();
this.data = arr.length ? arr[0] : arr;
}
}
convertResult(obj) {
if (obj instanceof mongodb_1.Long)
return BigInt(obj.toString());
if (typeof obj === "object") {
Object.keys(obj).forEach((key) => {
obj[key] = this.convertResult(obj[key]);
});
}
return obj;
}
destroy() {
this.stream.off("change", this.change);
this.emit("close");
if (this.stream.isClosed())
return;
return this.stream.close();
}
}
exports.MongooseCache = MongooseCache;
//# sourceMappingURL=Database.js.map

View File

@ -1 +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"}
{"version":3,"file":"Database.js","sourceRoot":"","sources":["../../src/util/Database.ts"],"names":[],"mappings":"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"}

34
dist/util/MongoBigInt.d.ts vendored Normal file
View File

@ -0,0 +1,34 @@
import mongoose from "mongoose";
declare class LongSchema extends mongoose.SchemaType {
$conditionalHandlers: {
$lt: (val: any) => any;
$lte: (val: any) => any;
$gt: (val: any) => any;
$gte: (val: any) => any;
$ne: (val: any) => any;
$in: (val: any) => any;
$nin: (val: any) => any;
$mod: (val: any) => any;
$all: (val: any) => any;
$bitsAnySet: (val: any) => any;
$bitsAllSet: (val: any) => any;
};
handleSingle(val: any): any;
handleArray(val: any): any;
checkRequired(val: any): boolean;
cast(val: any, scope?: any, init?: any): any;
castForQuery($conditional: string, value: any): any;
}
declare module "mongoose" {
namespace Types {
class Long extends mongoose.mongo.Long {
}
}
namespace Schema {
namespace Types {
class Long extends LongSchema {
}
}
}
}
export {};

70
dist/util/MongoBigInt.js vendored Normal file
View File

@ -0,0 +1,70 @@
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const mongoose_1 = __importDefault(require("mongoose"));
class LongSchema extends mongoose_1.default.SchemaType {
constructor() {
super(...arguments);
this.$conditionalHandlers = {
$lt: this.handleSingle,
$lte: this.handleSingle,
$gt: this.handleSingle,
$gte: this.handleSingle,
$ne: this.handleSingle,
$in: this.handleArray,
$nin: this.handleArray,
$mod: this.handleArray,
$all: this.handleArray,
$bitsAnySet: this.handleArray,
$bitsAllSet: this.handleArray,
};
}
handleSingle(val) {
return this.cast(val);
}
handleArray(val) {
var self = this;
return val.map(function (m) {
return self.cast(m);
});
}
checkRequired(val) {
return null != val;
}
cast(val, scope, init) {
if (null === val)
return val;
if ("" === val)
return null;
if (val instanceof mongoose_1.default.mongo.Long)
return BigInt(val.toString());
if (val instanceof Number || "number" == typeof val)
return BigInt(val);
if (!Array.isArray(val) && val.toString)
return BigInt(val.toString());
// @ts-ignore
throw new SchemaType.CastError("Long", val);
}
castForQuery($conditional, value) {
var handler;
if (2 === arguments.length) {
// @ts-ignore
handler = this.$conditionalHandlers[$conditional];
if (!handler) {
throw new Error("Can't use " + $conditional + " with Long.");
}
return handler.call(this, value);
}
else {
return this.cast($conditional);
}
}
}
LongSchema.cast = mongoose_1.default.SchemaType.cast;
LongSchema.set = mongoose_1.default.SchemaType.set;
LongSchema.get = mongoose_1.default.SchemaType.get;
mongoose_1.default.Schema.Types.Long = LongSchema;
mongoose_1.default.Types.Long = mongoose_1.default.mongo.Long;
//# sourceMappingURL=MongoBigInt.js.map

1
dist/util/MongoBigInt.js.map vendored Normal file
View File

@ -0,0 +1 @@
{"version":3,"file":"MongoBigInt.js","sourceRoot":"","sources":["../../src/util/MongoBigInt.ts"],"names":[],"mappings":";;;;;AAAA,wDAAgC;AAEhC,MAAM,UAAW,SAAQ,kBAAQ,CAAC,UAAU;IAA5C;;QACQ,yBAAoB,GAAG;YAC7B,GAAG,EAAE,IAAI,CAAC,YAAY;YACtB,IAAI,EAAE,IAAI,CAAC,YAAY;YACvB,GAAG,EAAE,IAAI,CAAC,YAAY;YACtB,IAAI,EAAE,IAAI,CAAC,YAAY;YACvB,GAAG,EAAE,IAAI,CAAC,YAAY;YACtB,GAAG,EAAE,IAAI,CAAC,WAAW;YACrB,IAAI,EAAE,IAAI,CAAC,WAAW;YACtB,IAAI,EAAE,IAAI,CAAC,WAAW;YACtB,IAAI,EAAE,IAAI,CAAC,WAAW;YACtB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;SAC7B,CAAC;IA0CH,CAAC;IAxCA,YAAY,CAAC,GAAQ;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC;IAED,WAAW,CAAC,GAAQ;QACnB,IAAI,IAAI,GAAG,IAAI,CAAC;QAChB,OAAO,GAAG,CAAC,GAAG,CAAC,UAAU,CAAM;YAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,aAAa,CAAC,GAAQ;QACrB,OAAO,IAAI,IAAI,GAAG,CAAC;IACpB,CAAC;IAED,IAAI,CAAC,GAAQ,EAAE,KAAW,EAAE,IAAU;QACrC,IAAI,IAAI,KAAK,GAAG;YAAE,OAAO,GAAG,CAAC;QAC7B,IAAI,EAAE,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC;QAE5B,IAAI,GAAG,YAAY,kBAAQ,CAAC,KAAK,CAAC,IAAI;YAAE,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QACtE,IAAI,GAAG,YAAY,MAAM,IAAI,QAAQ,IAAI,OAAO,GAAG;YAAE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;QACxE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ;YAAE,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEvE,aAAa;QACb,MAAM,IAAI,UAAU,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7C,CAAC;IAED,YAAY,CAAC,YAAoB,EAAE,KAAU;QAC5C,IAAI,OAAO,CAAC;QACZ,IAAI,CAAC,KAAK,SAAS,CAAC,MAAM,EAAE;YAC3B,aAAa;YACb,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;YAClD,IAAI,CAAC,OAAO,EAAE;gBACb,MAAM,IAAI,KAAK,CAAC,YAAY,GAAG,YAAY,GAAG,aAAa,CAAC,CAAC;aAC7D;YACD,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;SACjC;aAAM;YACN,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SAC/B;IACF,CAAC;CACD;AAED,UAAU,CAAC,IAAI,GAAG,kBAAQ,CAAC,UAAU,CAAC,IAAI,CAAC;AAC3C,UAAU,CAAC,GAAG,GAAG,kBAAQ,CAAC,UAAU,CAAC,GAAG,CAAC;AACzC,UAAU,CAAC,GAAG,GAAG,kBAAQ,CAAC,UAAU,CAAC,GAAG,CAAC;AAazC,kBAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,UAAU,CAAC;AACxC,kBAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,kBAAQ,CAAC,KAAK,CAAC,IAAI,CAAC"}

View File

@ -37,9 +37,6 @@ export declare class Permissions extends BitField {
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;
}

View File

@ -10,9 +10,6 @@ class Permissions extends BitField_1.BitField {
}
/**
* 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);

View File

@ -1 +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"}
{"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;;OAEG;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;;AA5CF,kCA6CC;AA5CO,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"}

View File

@ -1,31 +1,38 @@
import { Schema, model, Types, Document } from "mongoose";
import "missing-native-js-functions";
import db from "./Database";
import { ProviderCache } from "lambert-db";
var Config: ProviderCache;
import db, { MongooseCache } from "./Database";
var Config = new MongooseCache(db.collection("config"), [], { onlyEvents: false });
export default {
init: async function init(opts: DefaultOptions = DefaultOptions) {
await db.collection("config").findOne({});
Config = await db.data.config({}).cache();
init: async function init() {
await Config.init();
await Config.set(opts.merge(Config.cache || {}));
return this.setAll(Config.data.merge(DefaultOptions));
},
getAll: function get() {
return <DefaultOptions>Config.get();
return <DefaultOptions>Config.data;
},
setAll: function set(val: any) {
return Config.set(val);
return db.collection("config").updateOne({}, { $set: val });
},
};
export interface DefaultOptions {
export const DefaultOptions = {
api: {},
gateway: {},
voice: {},
};
export interface DefaultOptions extends Document {
api?: any;
gateway?: any;
voice?: any;
}
export const DefaultOptions: DefaultOptions = {
api: {},
gateway: {},
voice: {},
};
export const ConfigSchema = new Schema({
api: Object,
gateway: Object,
voice: Object,
});
export const ConfigModel = model<DefaultOptions>("Config", ConfigSchema, "config");

View File

@ -1,12 +1,12 @@
import "./MongoBigInt";
import mongoose, { Collection } from "mongoose";
import mongoose, { Collection, Connection } from "mongoose";
import { ChangeStream, ChangeEvent, Long } from "mongodb";
import EventEmitter from "events";
const uri = process.env.MONGO_URL || "mongodb://localhost:27017/fosscord?readPreference=secondaryPreferred";
const connection = mongoose.createConnection(uri, { autoIndex: true });
export default connection;
export default <Connection>connection;
export interface MongooseCache {
on(event: "delete", listener: (id: string) => void): this;
@ -37,7 +37,8 @@ export class MongooseCache extends EventEmitter {
this.stream.on("error", console.error);
if (!this.opts.onlyEvents) {
this.data = await this.collection.aggregate(this.pipeline).toArray();
const arr = await this.collection.aggregate(this.pipeline).toArray();
this.data = arr.length ? arr[0] : arr;
}
}

View File

@ -46,9 +46,6 @@ export class Permissions extends BitField {
/**
* 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 = true) {
return (checkAdmin && super.has(Permissions.FLAGS.ADMINISTRATOR)) || super.has(permission);