@fnlb-project/database 1.0.78 → 1.0.79
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +113 -14
- package/dist/index.js +1 -1
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
// Generated by dts-bundle-generator v9.5.1
|
|
2
2
|
|
|
3
|
-
import { GenericErrorSender } from '@fnlb-project/shared/errors';
|
|
4
|
-
import { CategoryConfigSupportedPlatforms, CommunityListingKind, CommunityListingStatus, Locales } from '@fnlb-project/shared/types';
|
|
5
3
|
import { ConnectOptions, HydratedDocument, Model, Schema, connection } from 'mongoose';
|
|
6
4
|
|
|
7
5
|
export declare class DatabaseClient {
|
|
@@ -10,6 +8,63 @@ export declare class DatabaseClient {
|
|
|
10
8
|
connect(options?: ConnectOptions): Promise<void>;
|
|
11
9
|
private connectWithRetry;
|
|
12
10
|
}
|
|
11
|
+
declare enum GeneralErrorCodes {
|
|
12
|
+
GenericUnknown = "net.fnlb.errors.generic.unknown",
|
|
13
|
+
GenericInternalError = "net.fnlb.errors.generic.internal_error",
|
|
14
|
+
GenericValidationFailed = "net.fnlb.errors.generic.validation_failed",
|
|
15
|
+
GenericParseFailed = "net.fnlb.errors.generic.parse_failed",
|
|
16
|
+
GenericNotFound = "net.fnlb.errors.generic.not_found",
|
|
17
|
+
GenericAlreadyExists = "net.fnlb.errors.generic.already_exists",
|
|
18
|
+
CommonInvalidRequest = "net.fnlb.errors.common.invalid_request",
|
|
19
|
+
CommonUnableToProcessRequest = "net.fnlb.errors.common.unable_to_process_request",
|
|
20
|
+
CommonInvalidFieldsLength = "net.fnlb.errors.common.invalid_body_fields_length",
|
|
21
|
+
CommonRateLimitExceeded = "net.fnlb.errors.common.rate_limit_exceeded",
|
|
22
|
+
CommonLimitExceeded = "net.fnlb.errors.common.limit_exceeded",
|
|
23
|
+
CommonUnableToSaveToDatabase = "net.fnlb.errors.common.unable_to_save_to_database",
|
|
24
|
+
CommonUpdateRequired = "net.fnlb.errors.common.update_required",
|
|
25
|
+
CommonMaintenanceMode = "net.fnlb.errors.common.maintenance_mode",
|
|
26
|
+
AuthInvalidToken = "net.fnlb.errors.auth.invalid_token",
|
|
27
|
+
AuthInvalidAPIToken = "net.fnlb.errors.auth.invalid_api_token",
|
|
28
|
+
AuthManagedAuthRefused = "net.fnlb.errors.auth.managed_auth_refused",
|
|
29
|
+
AuthInvalidCaptchaToken = "net.fnlb.errors.auth.invalid_captcha_token",
|
|
30
|
+
AuthUnauthorized = "net.fnlb.errors.auth.unauthorized",
|
|
31
|
+
AuthForbidden = "net.fnlb.errors.auth.forbidden",
|
|
32
|
+
AuthUserBanned = "net.fnlb.errors.auth.user_banned",
|
|
33
|
+
Oauth2InvalidCode = "net.fnlb.errors.oauth2.invalid_code",
|
|
34
|
+
Oauth2InvalidScope = "net.fnlb.errors.oauth2.invalid_scope",
|
|
35
|
+
Oauth2TokenInvalid = "net.fnlb.errors.oauth2.token_invalid",
|
|
36
|
+
Oauth2UnableToFetchUser = "net.fnlb.errors.oauth2.unable_to_fetch_user",
|
|
37
|
+
Oauth2UnableToFetchConnections = "net.fnlb.errors.oauth2.unable_to_fetch_connections",
|
|
38
|
+
Oauth2UserWithoutConnection = "net.fnlb.errors.oauth2.user_without_connection",
|
|
39
|
+
Oauth2ConnectionNotVerified = "net.fnlb.errors.oauth2.connection_not_verified",
|
|
40
|
+
ReleaseNotFound = "net.fnlb.errors.release.no_release_found",
|
|
41
|
+
ReleaseVersionAlreadyExists = "net.fnlb.errors.release.version_already_exists",
|
|
42
|
+
ReleaseHashMismatch = "net.fnlb.errors.release.hash_mismatch",
|
|
43
|
+
MfaNotEnabled = "net.fnlb.errors.mfa.not_enabled",
|
|
44
|
+
MfaAlreadyEnabled = "net.fnlb.errors.mfa.already_enabled",
|
|
45
|
+
MfaChallengeExpired = "net.fnlb.errors.mfa.challenge_expired",
|
|
46
|
+
MfaSetupExpired = "net.fnlb.errors.mfa.setup_expired"
|
|
47
|
+
}
|
|
48
|
+
declare enum InputErrorCodes {
|
|
49
|
+
LoginInvalidCredentials = "net.fnlb.errors.login.invalid_credentials",
|
|
50
|
+
LoginInvalidEmail = "net.fnlb.errors.login.invalid_email",
|
|
51
|
+
LoginInvalidOrUsedEmail = "net.fnlb.errors.login.invalid_or_used_email",
|
|
52
|
+
AuthPasswordConfirmationInvalid = "net.fnlb.errors.auth.invalid_password_confirmation",
|
|
53
|
+
MfaInvalidCode = "net.fnlb.errors.mfa.invalid_code",
|
|
54
|
+
MfaRequired = "net.fnlb.errors.mfa.required"
|
|
55
|
+
}
|
|
56
|
+
export type ErrorCodes = GeneralErrorCodes | InputErrorCodes;
|
|
57
|
+
declare enum ErrorInputTypes {
|
|
58
|
+
Username = "username",
|
|
59
|
+
Email = "email",
|
|
60
|
+
Password = "password",
|
|
61
|
+
Shared = "shared",
|
|
62
|
+
MfaCode = "mfaCode"
|
|
63
|
+
}
|
|
64
|
+
export type ErrorSenderErrors = GeneralErrorCodes | GeneralErrorCodes[] | InputErrorCodes | InputErrorCodes[] | ErrorCodes | ErrorCodes[];
|
|
65
|
+
declare abstract class GenericErrorSender {
|
|
66
|
+
abstract sendError(code: number, errors: ErrorSenderErrors, input?: ErrorInputTypes): unknown;
|
|
67
|
+
}
|
|
13
68
|
export declare class DatabaseErrorHandler {
|
|
14
69
|
static handleError(err: any, errorSender: GenericErrorSender): unknown;
|
|
15
70
|
}
|
|
@@ -175,6 +230,55 @@ export declare const BotModel: import("mongoose").Model<{
|
|
|
175
230
|
} & {
|
|
176
231
|
__v: number;
|
|
177
232
|
}>>;
|
|
233
|
+
declare enum CategoryConfigSupportedPlatforms {
|
|
234
|
+
Win = "WIN",
|
|
235
|
+
Mac = "MAC",
|
|
236
|
+
Psn = "PSN",
|
|
237
|
+
Xbl = "XBL",
|
|
238
|
+
Swt = "SWT",
|
|
239
|
+
Swt2 = "SWT2",
|
|
240
|
+
Ios = "IOS",
|
|
241
|
+
And = "AND",
|
|
242
|
+
Ps5 = "PS5",
|
|
243
|
+
Xsx = "XSX"
|
|
244
|
+
}
|
|
245
|
+
declare enum CommunityListingKind {
|
|
246
|
+
Bot = "bot",
|
|
247
|
+
Preset = "preset",
|
|
248
|
+
Category = "category",
|
|
249
|
+
Event = "event",
|
|
250
|
+
CustomCommand = "custom_command",
|
|
251
|
+
Scheduled = "scheduled"
|
|
252
|
+
}
|
|
253
|
+
declare enum CommunityListingStatus {
|
|
254
|
+
Pending = "pending",
|
|
255
|
+
Published = "published",
|
|
256
|
+
Rejected = "rejected",
|
|
257
|
+
Unlisted = "unlisted"
|
|
258
|
+
}
|
|
259
|
+
declare enum Locales {
|
|
260
|
+
Default = "en",
|
|
261
|
+
EnUS = "en-US",
|
|
262
|
+
Es = "es",
|
|
263
|
+
Es419 = "es-419",
|
|
264
|
+
Ar = "ar",
|
|
265
|
+
De = "de",
|
|
266
|
+
Fr = "fr",
|
|
267
|
+
He = "he",
|
|
268
|
+
Id = "id",
|
|
269
|
+
It = "it",
|
|
270
|
+
Ja = "ja",
|
|
271
|
+
Ko = "ko",
|
|
272
|
+
Pl = "pl",
|
|
273
|
+
Pt = "pt",
|
|
274
|
+
PtBR = "pt-BR",
|
|
275
|
+
Ru = "ru",
|
|
276
|
+
Th = "th",
|
|
277
|
+
Tr = "tr",
|
|
278
|
+
Vi = "vi",
|
|
279
|
+
Zh = "zh",
|
|
280
|
+
ZhHant = "zh-Hant"
|
|
281
|
+
}
|
|
178
282
|
export declare const CategoryModel: import("mongoose").Model<{
|
|
179
283
|
owner: import("mongoose").Types.ObjectId;
|
|
180
284
|
name: string;
|
|
@@ -3270,12 +3374,11 @@ export declare const CommunityListingModel: import("mongoose").Model<{
|
|
|
3270
3374
|
status: CommunityListingStatus;
|
|
3271
3375
|
description?: string | null | undefined;
|
|
3272
3376
|
tags?: string[] | null | undefined;
|
|
3273
|
-
thumbnail?: string | null | undefined;
|
|
3274
3377
|
stats?: {
|
|
3275
3378
|
installs?: number | null | undefined;
|
|
3276
3379
|
} | null | undefined;
|
|
3277
3380
|
liveRef?: {
|
|
3278
|
-
|
|
3381
|
+
categoryId: string;
|
|
3279
3382
|
} | null | undefined;
|
|
3280
3383
|
payload?: any;
|
|
3281
3384
|
}, {}, {}, {}, import("mongoose").Document<unknown, {}, {
|
|
@@ -3286,12 +3389,11 @@ export declare const CommunityListingModel: import("mongoose").Model<{
|
|
|
3286
3389
|
status: CommunityListingStatus;
|
|
3287
3390
|
description?: string | null | undefined;
|
|
3288
3391
|
tags?: string[] | null | undefined;
|
|
3289
|
-
thumbnail?: string | null | undefined;
|
|
3290
3392
|
stats?: {
|
|
3291
3393
|
installs?: number | null | undefined;
|
|
3292
3394
|
} | null | undefined;
|
|
3293
3395
|
liveRef?: {
|
|
3294
|
-
|
|
3396
|
+
categoryId: string;
|
|
3295
3397
|
} | null | undefined;
|
|
3296
3398
|
payload?: any;
|
|
3297
3399
|
}, {}, import("mongoose").DefaultSchemaOptions> & {
|
|
@@ -3302,12 +3404,11 @@ export declare const CommunityListingModel: import("mongoose").Model<{
|
|
|
3302
3404
|
status: CommunityListingStatus;
|
|
3303
3405
|
description?: string | null | undefined;
|
|
3304
3406
|
tags?: string[] | null | undefined;
|
|
3305
|
-
thumbnail?: string | null | undefined;
|
|
3306
3407
|
stats?: {
|
|
3307
3408
|
installs?: number | null | undefined;
|
|
3308
3409
|
} | null | undefined;
|
|
3309
3410
|
liveRef?: {
|
|
3310
|
-
|
|
3411
|
+
categoryId: string;
|
|
3311
3412
|
} | null | undefined;
|
|
3312
3413
|
payload?: any;
|
|
3313
3414
|
} & {
|
|
@@ -3322,12 +3423,11 @@ export declare const CommunityListingModel: import("mongoose").Model<{
|
|
|
3322
3423
|
status: CommunityListingStatus;
|
|
3323
3424
|
description?: string | null | undefined;
|
|
3324
3425
|
tags?: string[] | null | undefined;
|
|
3325
|
-
thumbnail?: string | null | undefined;
|
|
3326
3426
|
stats?: {
|
|
3327
3427
|
installs?: number | null | undefined;
|
|
3328
3428
|
} | null | undefined;
|
|
3329
3429
|
liveRef?: {
|
|
3330
|
-
|
|
3430
|
+
categoryId: string;
|
|
3331
3431
|
} | null | undefined;
|
|
3332
3432
|
payload?: any;
|
|
3333
3433
|
}, import("mongoose").Document<unknown, {}, import("mongoose").FlatRecord<{
|
|
@@ -3338,12 +3438,11 @@ export declare const CommunityListingModel: import("mongoose").Model<{
|
|
|
3338
3438
|
status: CommunityListingStatus;
|
|
3339
3439
|
description?: string | null | undefined;
|
|
3340
3440
|
tags?: string[] | null | undefined;
|
|
3341
|
-
thumbnail?: string | null | undefined;
|
|
3342
3441
|
stats?: {
|
|
3343
3442
|
installs?: number | null | undefined;
|
|
3344
3443
|
} | null | undefined;
|
|
3345
3444
|
liveRef?: {
|
|
3346
|
-
|
|
3445
|
+
categoryId: string;
|
|
3347
3446
|
} | null | undefined;
|
|
3348
3447
|
payload?: any;
|
|
3349
3448
|
}>, {}, import("mongoose").DefaultSchemaOptions> & import("mongoose").FlatRecord<{
|
|
@@ -3354,12 +3453,11 @@ export declare const CommunityListingModel: import("mongoose").Model<{
|
|
|
3354
3453
|
status: CommunityListingStatus;
|
|
3355
3454
|
description?: string | null | undefined;
|
|
3356
3455
|
tags?: string[] | null | undefined;
|
|
3357
|
-
thumbnail?: string | null | undefined;
|
|
3358
3456
|
stats?: {
|
|
3359
3457
|
installs?: number | null | undefined;
|
|
3360
3458
|
} | null | undefined;
|
|
3361
3459
|
liveRef?: {
|
|
3362
|
-
|
|
3460
|
+
categoryId: string;
|
|
3363
3461
|
} | null | undefined;
|
|
3364
3462
|
payload?: any;
|
|
3365
3463
|
}> & {
|
|
@@ -3576,6 +3674,7 @@ export interface IUserApplication {
|
|
|
3576
3674
|
export interface IUser {
|
|
3577
3675
|
token: string;
|
|
3578
3676
|
username: string;
|
|
3677
|
+
avatar?: string;
|
|
3579
3678
|
email: string;
|
|
3580
3679
|
password: string;
|
|
3581
3680
|
apiToken: string;
|
package/dist/index.js
CHANGED
|
@@ -937,4 +937,4 @@ updatePath: '${n.raw.path}'`);n.trace.add(e);let s=Object.keys(e||{}),i=s.length
|
|
|
937
937
|
* No-op if there is already a default connection.
|
|
938
938
|
*/function YS(e){if(e.connection)return;let t=e.createConnection();t[rJ]=!0,t.models=e.models}var $n=iJ.exports=sJ=new te({[tJ]:!0})});var cJ=y(function($Me,aJ){/*!
|
|
939
939
|
* Module dependencies.
|
|
940
|
-
*/var uJ=oG();c2().set(uJ);var Hf=oJ();Hf.setDriver(uJ);Hf.Mongoose.prototype.mongo=Aa();aJ.exports=Hf});var Wo=y(function(NMe,Ee){var H=cJ();Ee.exports=H;Ee.exports.default=H;Ee.exports.mongoose=H;Ee.exports.cast=H.cast;Ee.exports.STATES=H.STATES;Ee.exports.setDriver=H.setDriver;Ee.exports.set=H.set;Ee.exports.get=H.get;Ee.exports.createConnection=H.createConnection;Ee.exports.connect=H.connect;Ee.exports.disconnect=H.disconnect;Ee.exports.startSession=H.startSession;Ee.exports.pluralize=H.pluralize;Ee.exports.model=H.model;Ee.exports.deleteModel=H.deleteModel;Ee.exports.modelNames=H.modelNames;Ee.exports.plugin=H.plugin;Ee.exports.connections=H.connections;Ee.exports.version=H.version;Ee.exports.Aggregate=H.Aggregate;Ee.exports.Mongoose=H.Mongoose;Ee.exports.Schema=H.Schema;Ee.exports.SchemaType=H.SchemaType;Ee.exports.SchemaTypes=H.SchemaTypes;Ee.exports.VirtualType=H.VirtualType;Ee.exports.Types=H.Types;Ee.exports.Query=H.Query;Ee.exports.Model=H.Model;Ee.exports.Document=H.Document;Ee.exports.ObjectId=H.ObjectId;Ee.exports.isValidObjectId=H.isValidObjectId;Ee.exports.isObjectIdOrHexString=H.isObjectIdOrHexString;Ee.exports.syncIndexes=H.syncIndexes;Ee.exports.Decimal128=H.Decimal128;Ee.exports.Mixed=H.Mixed;Ee.exports.Date=H.Date;Ee.exports.Number=H.Number;Ee.exports.Error=H.Error;Ee.exports.MongooseError=H.MongooseError;Ee.exports.now=H.now;Ee.exports.CastError=H.CastError;Ee.exports.SchemaTypeOptions=H.SchemaTypeOptions;Ee.exports.mongo=H.mongo;Ee.exports.mquery=H.mquery;Ee.exports.sanitizeFilter=H.sanitizeFilter;Ee.exports.trusted=H.trusted;Ee.exports.skipMiddlewareFunction=H.skipMiddlewareFunction;Ee.exports.overwriteMiddlewareResult=H.overwriteMiddlewareResult});var ZSe=zo(Wo(),1);var So=zo(Wo(),1);class lJ{dbURI;constructor(e){if(!e)throw Error("DB URI is not valid.");this.dbURI=e}async connect(e){console.log("Connecting to database..."),await this.connectWithRetry(e),So.connection.on("connecting",()=>{console.log("Connecting to Database...")}),So.connection.on("connected",()=>{console.log("Database is connected.")}),So.connection.on("open",()=>{console.log("Database connection is ready.")}),So.connection.on("disconnecting: ",()=>{console.log("Database is disconnecting...")}),So.connection.on("error",(t)=>{console.error("Database connection error:",t)}),So.connection.on("disconnected",(t)=>{console.warn("Database disconnected.",t)}),So.connection.on("reconnected",(t)=>{console.warn("Database reconnected.",t)})}async connectWithRetry(e){try{await So.connect(this.dbURI,{maxPoolSize:1000,autoIndex:!0,socketTimeoutMS:300000,...e})}catch(t){console.error("Unable to connect to the database. Retrying in 5s...",t),setTimeout(()=>this.connectWithRetry(),5000)}}}var MSe;((e)=>{e.String="string",e.Integer="integer",e.Float="float",e.Boolean="boolean",e.Object="object",e.Wildcard="wildcard",e.Exec="exec"})(MSe||={});var xSe;((e)=>{e[e.Single=0]="Single",e[e.Select=1]="Select",e[e.Array=2]="Array"})(xSe||={});var BSe;((e)=>{e[e.Offline=0]="Offline",e[e.Booting=1]="Booting",e[e.Available=2]="Available",e[e.Busy=3]="Busy",e[e.Disconnected=4]="Disconnected"})(BSe||={});var FSe;((e)=>{e[e.Neutral=0]="Neutral",e[e.Success=1]="Success",e[e.Info=2]="Info",e[e.Warn=3]="Warn",e[e.Error=4]="Error"})(FSe||={});var JS;((e)=>{e.Win="WIN",e.Mac="MAC",e.Psn="PSN",e.Xbl="XBL",e.Swt="SWT",e.Swt2="SWT2",e.Ios="IOS",e.And="AND",e.Ps5="PS5",e.Xsx="XSX"})(JS||={});var QS;((e)=>{e[e.Public=0]="Public",e[e.Private=1]="Private"})(QS||={});var XS;((e)=>{e[e.Auto=0]="Auto",e[e.Online=1]="Online",e[e.Away=2]="Away"})(XS||={});var j1;((e)=>{e[e.Event=0]="Event",e[e.CustomCommand=1]="CustomCommand",e[e.Scheduled=2]="Scheduled"})(j1||={});var L1;((e)=>{e[e.RunCommand=0]="RunCommand",e[e.RunFunction=1]="RunFunction",e[e.ControlFlow=2]="ControlFlow"})(L1||={});var ZS;((e)=>{e[e.Ready=0]="Ready",e[e.Disconnected=1]="Disconnected",e[e.PartyInvite=2]="PartyInvite",e[e.PartyJoinRequest=3]="PartyJoinRequest",e[e.PartyMemberJoined=4]="PartyMemberJoined",e[e.PartyMemberLeft=5]="PartyMemberLeft",e[e.PartyMemberKicked=6]="PartyMemberKicked",e[e.PartyMemberMessage=7]="PartyMemberMessage",e[e.PartyMemberPromoted=8]="PartyMemberPromoted",e[e.PartyMemberReady=9]="PartyMemberReady",e[e.PartyMemberSitOut=10]="PartyMemberSitOut",e[e.PartyMemberUnready=11]="PartyMemberUnready",e[e.PartyMemberMatch=12]="PartyMemberMatch",e[e.PartyMemberCosmeticUpdated=13]="PartyMemberCosmeticUpdated",e[e.FriendAdded=14]="FriendAdded",e[e.FriendRemoved=15]="FriendRemoved",e[e.FriendRequest=16]="FriendRequest",e[e.FriendMessage=17]="FriendMessage",e[e.FriendOnline=18]="FriendOnline",e[e.FriendOffline=19]="FriendOffline",e[e.UserBlocked=20]="UserBlocked",e[e.UserUnblocked=21]="UserUnblocked",e[e.PartyMemberInParty=22]="PartyMemberInParty"})(ZS||={});var sg;((e)=>{e.Default="en",e.EnUS="en-US",e.Es="es",e.Es419="es-419",e.Ar="ar",e.De="de",e.Fr="fr",e.He="he",e.Id="id",e.It="it",e.Ja="ja",e.Ko="ko",e.Pl="pl",e.Pt="pt",e.PtBR="pt-BR",e.Ru="ru",e.Th="th",e.Tr="tr",e.Vi="vi",e.Zh="zh",e.ZhHant="zh-Hant"})(sg||={});var PSe;((e)=>{e.Default="en",e.Ar="ar",e.De="de",e.Es="es",e.Es419="es-419",e.Fr="fr",e.Id="id",e.It="it",e.Ja="ja",e.Ko="ko",e.Pl="pl",e.PtBR="pt-BR",e.Ru="ru",e.Th="th",e.Tr="tr",e.Vi="vi",e.ZhHans="zh-Hans",e.ZhHant="zh-Hant"})(PSe||={});var eO;((e)=>{e.Bot="bot",e.Preset="preset",e.Category="category",e.Event="event",e.CustomCommand="custom_command",e.Scheduled="scheduled"})(eO||={});var tO;((e)=>{e.Draft="draft",e.Pending="pending",e.Published="published",e.Rejected="rejected",e.Unlisted="unlisted"})(tO||={});var hJ;((e)=>{e.GenericUnknown="net.fnlb.errors.generic.unknown",e.GenericInternalError="net.fnlb.errors.generic.internal_error",e.GenericValidationFailed="net.fnlb.errors.generic.validation_failed",e.GenericParseFailed="net.fnlb.errors.generic.parse_failed",e.GenericNotFound="net.fnlb.errors.generic.not_found",e.GenericAlreadyExists="net.fnlb.errors.generic.already_exists",e.CommonInvalidRequest="net.fnlb.errors.common.invalid_request",e.CommonUnableToProcessRequest="net.fnlb.errors.common.unable_to_process_request",e.CommonInvalidFieldsLength="net.fnlb.errors.common.invalid_body_fields_length",e.CommonRateLimitExceeded="net.fnlb.errors.common.rate_limit_exceeded",e.CommonLimitExceeded="net.fnlb.errors.common.limit_exceeded",e.CommonUnableToSaveToDatabase="net.fnlb.errors.common.unable_to_save_to_database",e.CommonUpdateRequired="net.fnlb.errors.common.update_required",e.CommonMaintenanceMode="net.fnlb.errors.common.maintenance_mode",e.AuthInvalidToken="net.fnlb.errors.auth.invalid_token",e.AuthInvalidAPIToken="net.fnlb.errors.auth.invalid_api_token",e.AuthManagedAuthRefused="net.fnlb.errors.auth.managed_auth_refused",e.AuthInvalidCaptchaToken="net.fnlb.errors.auth.invalid_captcha_token",e.AuthUnauthorized="net.fnlb.errors.auth.unauthorized",e.AuthForbidden="net.fnlb.errors.auth.forbidden",e.AuthUserBanned="net.fnlb.errors.auth.user_banned",e.Oauth2InvalidCode="net.fnlb.errors.oauth2.invalid_code",e.Oauth2InvalidScope="net.fnlb.errors.oauth2.invalid_scope",e.Oauth2TokenInvalid="net.fnlb.errors.oauth2.token_invalid",e.Oauth2UnableToFetchUser="net.fnlb.errors.oauth2.unable_to_fetch_user",e.Oauth2UnableToFetchConnections="net.fnlb.errors.oauth2.unable_to_fetch_connections",e.Oauth2UserWithoutConnection="net.fnlb.errors.oauth2.user_without_connection",e.Oauth2ConnectionNotVerified="net.fnlb.errors.oauth2.connection_not_verified",e.ReleaseNotFound="net.fnlb.errors.release.no_release_found",e.ReleaseVersionAlreadyExists="net.fnlb.errors.release.version_already_exists",e.ReleaseHashMismatch="net.fnlb.errors.release.hash_mismatch",e.MfaNotEnabled="net.fnlb.errors.mfa.not_enabled",e.MfaAlreadyEnabled="net.fnlb.errors.mfa.already_enabled",e.MfaChallengeExpired="net.fnlb.errors.mfa.challenge_expired",e.MfaSetupExpired="net.fnlb.errors.mfa.setup_expired"})(hJ||={});var fJ;((e)=>{e.LoginInvalidCredentials="net.fnlb.errors.login.invalid_credentials",e.LoginInvalidEmail="net.fnlb.errors.login.invalid_email",e.LoginInvalidOrUsedEmail="net.fnlb.errors.login.invalid_or_used_email",e.AuthPasswordConfirmationInvalid="net.fnlb.errors.auth.invalid_password_confirmation",e.MfaInvalidCode="net.fnlb.errors.mfa.invalid_code",e.MfaRequired="net.fnlb.errors.mfa.required"})(fJ||={});var Ha={...hJ,...fJ},ISe;((e)=>{e.Username="username",e.Email="email",e.Password="password",e.Shared="shared",e.MfaCode="mfaCode"})(ISe||={});var $Se;((e)=>{e.General="general",e.Input="input"})($Se||={});var NSe;((e)=>{e[e.Disabled=1]="Disabled",e[e.Verified=2]="Verified",e[e.VerificationPending=4]="VerificationPending",e[e.PublicClient=8]="PublicClient"})(NSe||={});var RSe;((e)=>{e[e.Disabled=1]="Disabled",e[e.Public=2]="Public",e[e.InvalidAuth=4]="InvalidAuth",e[e.Prepared=8]="Prepared"})(RSe||={});var vSe;((e)=>{e[e.Disabled=1]="Disabled",e[e.Managed=2]="Managed"})(vSe||={});var kSe;((e)=>e[e.NotWearable=1]="NotWearable")(kSe||={});var qSe;((e)=>{e[e.identify=1]="identify",e[e.email=2]="email",e[e.connections=4]="connections",e[e["bots.read"]=8]="bots.read",e[e["bots.write"]=16]="bots.write",e[e["bots.run"]=32]="bots.run",e[e["categories.read"]=64]="categories.read",e[e["categories.write"]=128]="categories.write",e[e["commands.run"]=256]="commands.run",e[e.openid=512]="openid",e[e.profile=1024]="profile"})(qSe||={});var jSe;((e)=>{e[e.Ready=1]="Ready",e[e.Leader=2]="Leader",e[e.SittingOut=4]="SittingOut",e[e.Playing=8]="Playing"})(jSe||={});var LSe;((e)=>{e[e.Disabled=1]="Disabled",e[e.IgnoreSelf=2]="IgnoreSelf",e[e.IgnoreBots=4]="IgnoreBots",e[e.IgnoreLeader=8]="IgnoreLeader",e[e.IgnoreOwners=16]="IgnoreOwners",e[e.IgnoreAdmins=32]="IgnoreAdmins",e[e.IgnoreWhitelistUsers=64]="IgnoreWhitelistUsers",e[e.IgnoreBlacklistUsers=128]="IgnoreBlacklistUsers",e[e.IgnoreExcludedAutoAddFriends=256]="IgnoreExcludedAutoAddFriends",e[e.IgnoreFriends=512]="IgnoreFriends",e[e.IgnoreOtherBots=1024]="IgnoreOtherBots",e[e.IgnorePartyMembers=2048]="IgnorePartyMembers"})(LSe||={});var USe;((e)=>{e[e.Staff=1]="Staff",e[e.Admin=2]="Admin",e[e.Vip=4]="Vip",e[e.Verified=8]="Verified",e[e.Banned=16]="Banned",e[e.Tester=32]="Tester",e[e.Developer=64]="Developer",e[e.Partner=128]="Partner",e[e.Management=256]="Management",e[e.Moderation=512]="Moderation",e[e.Support=1024]="Support",e[e.IncreasedLimits=2048]="IncreasedLimits",e[e.Disabled=4096]="Disabled"})(USe||={});var rO;((i)=>{i[i.InternalError=1]="InternalError";i[i.BadValue=2]="BadValue";i[i.NoSuchKey=4]="NoSuchKey";i[i.KeyNotFound=211]="KeyNotFound";i[i.DuplicateKey=11000]="DuplicateKey"})(rO||={});class dJ{static handleError(e,t){if(!e)return!1;switch(e.code){case 11000:return t.sendError(400,Ha.GenericAlreadyExists);case 2:return t.sendError(500,Ha.CommonUnableToSaveToDatabase);case 211:return t.sendError(500,Ha.CommonUnableToSaveToDatabase);case 4:return t.sendError(500,Ha.CommonUnableToSaveToDatabase);case 1:return console.error("Internal MongoDB error:",e),t.sendError(500,Ha.CommonUnableToSaveToDatabase);default:return console.error("Unhandled MongoError code:",e.code,e),t.sendError(500,Ha.CommonUnableToSaveToDatabase)}}}var Kf=zo(Wo(),1);var VSe=["password","token","apiToken","applications","mfa","deviceAuth","secret"];class Ts{static transformSchemaToJSON(e){let t=new Set(e);return(r,n)=>{if(n._id!==void 0)n.id=n._id;delete n._id,delete n.__v;for(let s of Object.keys(n))if(!t.has(s))delete n[s];for(let s of VSe)delete n[s]}}}var WSe=8,pJ=new Kf.Schema({owner:{type:Kf.Schema.Types.ObjectId,ref:"user",required:!0,index:!0},secret:{type:String,required:function(){return!((this.flags??0)&WSe)},trim:!0},name:{type:String,required:!0,trim:!0},icon:{type:String,required:!1,trim:!0,default:void 0},description:{type:String,required:!1,trim:!0,default:void 0},scopes:{type:Number,required:!1,default:void 0},redirectUris:{type:[String],required:!1,trim:!0,default:void 0},tosUri:{type:String,required:!1,trim:!0,default:void 0},policyUri:{type:String,required:!1,trim:!0,default:void 0},installUri:{type:String,required:!1,trim:!0,default:void 0},flags:{type:Number,required:!1,default:void 0}});pJ.set("toJSON",{transform:Ts.transformSchemaToJSON(["id","owner","name","icon","description","scopes","redirectUris","tosUri","policyUri","installUri","flags"])});var zSe=Kf.model("application",pJ);var U1=zo(Wo(),1);var mJ=new U1.Schema({owner:{type:U1.Schema.Types.ObjectId,ref:"user",required:!0,index:!0},parent:{type:U1.Schema.Types.ObjectId,ref:"category",required:!1,index:!0,sparse:!0},nickname:{type:String,required:!0,trim:!0},flags:{type:Number,required:!1},email:{type:String,lowercase:!0,required:!1,trim:!0},deviceAuth:{required:!0,type:{accountId:{type:String,required:!0,unique:!0,lowercase:!0,trim:!0},deviceId:{type:String,required:!0,lowercase:!0,trim:!0},secret:{type:String,required:!0,trim:!0}},_id:!1},mmsBannedUntil:{type:Number,required:!1}});mJ.set("toJSON",{transform:Ts.transformSchemaToJSON(["id","owner","parent","nickname","flags","email","mmsBannedUntil"])});var GSe=U1.model("bot",mJ);var Jf=zo(Wo(),1);function Yf(e){return Object.values(e).filter((t)=>typeof t==="number")}var yJ=new Jf.Schema({owner:{type:Jf.Schema.Types.ObjectId,ref:"user",required:!0,index:!0},name:{type:String,required:!0,trim:!0},flags:{type:Number,required:!1},managed:{type:Boolean,required:!1,index:!0,sparse:!0,default:void 0},config:{replyLangs:{type:[String],enum:Object.values(sg),default:void 0},searchLangs:{type:[String],enum:Object.values(sg),default:void 0},platform:{type:[String],enum:Object.values(JS),default:void 0},privacy:{type:Number,enum:Yf(QS),default:void 0},prefixes:{type:[String],default:void 0},statusType:{type:Number,enum:Yf(XS),default:void 0},statusText:{type:[String],default:void 0},statusInterval:{type:Number,default:void 0},level:{type:[Number],default:void 0},bpLevel:{type:[Number],default:void 0},extraOwners:{type:[{id:String,name:String,_id:!1}],default:void 0},admins:{type:[{id:String,name:String,_id:!1}],default:void 0},whitelistUsers:{type:[{id:String,name:String,_id:!1}],default:void 0},blacklistUsers:{type:[{id:String,name:String,_id:!1}],default:void 0},excludedAutoAddFriends:{type:[{id:String,name:String,_id:!1}],default:void 0},otherBots:{type:[{id:String,name:String,_id:!1}],default:void 0},inviteTimeout:{type:Number,default:void 0},maxBotsPerLobby:{type:Number,default:void 0},maxBotsPerLobbyWithOwner:{type:Number,default:void 0},maxBotsPerLobbyWithAdmin:{type:Number,default:void 0},maxBotsPerLobbyWithWhitelistUser:{type:Number,default:void 0},allowMatchmaking:{type:Boolean,default:void 0},leaveAfterMatchmaking:{type:Boolean,default:void 0},disableMatchmakingChecks:{type:Boolean,default:void 0},disablePlaylistChecks:{type:Boolean,default:void 0},disableJoinMessages:{type:Boolean,default:void 0},disableAutomaticMessages:{type:Boolean,default:void 0},acceptFriendRequests:{type:Boolean,default:void 0},sendFriendRequestOnJoinParty:{type:Boolean,default:void 0},sendFriendRequestOnMemberJoinParty:{type:Boolean,default:void 0},runCommandsWithoutPrefix:{type:Boolean,default:void 0},setCosmeticsWithoutCommands:{type:Boolean,default:void 0},setCosmeticsWithPrefix:{type:Boolean,default:void 0},acceptInvites:{type:Boolean,default:void 0},startBannedBots:{type:Boolean,default:void 0},triggers:{type:[{name:{type:String,required:!0},flags:{type:Number,required:!1,default:void 0},type:{type:Number,required:!0,enum:Yf(j1)},event:{type:Number,enum:Yf(ZS),required(){return this.type===j1.Event},default:void 0},command:{type:String,required(){return this.type===j1.CustomCommand},default:void 0},interval:{type:String,required(){return this.type===j1.Scheduled},default:void 0},actions:{type:[{id:{type:String,required:!1},parent:{type:String,required:!1},type:{type:Number,enum:Yf(L1),required:!0},command:{type:String,required(){return this.type===L1.RunCommand}},function:{type:String,required(){return this.type===L1.RunFunction}},statement:{type:String,required(){return this.type===L1.ControlFlow}},args:{type:[String],default:void 0,required:!0},condition:{type:String,default:void 0,required:!1},_id:!1}],required:!0,default:void 0,_id:!1},_id:!1}],default:void 0},onlyOwnerCommands:{type:[String],default:void 0},onlyAdminCommands:{type:[String],default:void 0},onlyWhitelistUsersCommands:{type:[String],default:void 0},onlyFriendsCommands:{type:[String],default:void 0},onlyPartyMembersCommands:{type:[String],default:void 0},onlyWhisperCommands:{type:[String],default:void 0},startOutfit:{type:[{id:String,variants:[Number],_id:!1}],default:void 0},startBackpack:{type:[{id:String,variants:[Number],_id:!1}],default:void 0},startPickaxe:{type:[{id:String,variants:[Number],_id:!1}],default:void 0},startShoes:{type:[{id:String,variants:[Number],_id:!1}],default:void 0},startSidekick:{type:[{id:String,variants:[Number],_id:!1}],default:void 0},startBanner:{type:[{id:String,_id:!1}],default:void 0},startBannerColor:{type:[{id:String,_id:!1}],default:void 0},joinOutfit:{type:[{id:String,variants:[Number],_id:!1}],default:void 0},joinBackpack:{type:[{id:String,variants:[Number],_id:!1}],default:void 0},joinPickaxe:{type:[{id:String,variants:[Number],_id:!1}],default:void 0},joinEmote:{type:[{id:String,_id:!1}],default:void 0},joinShoes:{type:[{id:String,variants:[Number],_id:!1}],default:void 0},joinSidekick:{type:[{id:String,variants:[Number],_id:!1}],default:void 0},joinBanner:{type:[{id:String,_id:!1}],default:void 0},joinBannerColor:{type:[{id:String,_id:!1}],default:void 0},memberJoinOutfit:{type:[{id:String,variants:[Number],_id:!1}],default:void 0},memberJoinBackpack:{type:[{id:String,variants:[Number],_id:!1}],default:void 0},memberJoinPickaxe:{type:[{id:String,variants:[Number],_id:!1}],default:void 0},memberJoinEmote:{type:[{id:String,_id:!1}],default:void 0},memberJoinShoes:{type:[{id:String,variants:[Number],_id:!1}],default:void 0},memberJoinSidekick:{type:[{id:String,variants:[Number],_id:!1}],default:void 0},memberJoinBanner:{type:[{id:String,_id:!1}],default:void 0},memberJoinBannerColor:{type:[{id:String,_id:!1}],default:void 0}}});yJ.set("toJSON",{transform:Ts.transformSchemaToJSON(["id","owner","name","flags","managed","config"])});var HSe=Jf.model("category",yJ);var V1=zo(Wo(),1);var nO=new V1.Schema({kind:{type:String,required:!0,enum:Object.values(eO),index:!0},slug:{type:String,required:!0,trim:!0,unique:!0},title:{type:String,required:!0,trim:!0,maxlength:80},description:{type:String,required:!1,trim:!0,maxlength:2000},tags:{type:[String],default:void 0},thumbnail:{type:String,required:!1,trim:!0},author:{type:V1.Schema.Types.ObjectId,ref:"user",required:!0,index:!0},status:{type:String,required:!0,enum:Object.values(tO),index:!0},stats:{type:{installs:{type:Number,required:!1}},_id:!1,required:!1,default:void 0},liveRef:{type:{botId:{type:String,required:!0,trim:!0}},_id:!1,required:!1,default:void 0},payload:{type:V1.Schema.Types.Mixed,required:!1,default:void 0}});nO.index({status:1,kind:1});nO.set("toJSON",{transform:Ts.transformSchemaToJSON(["id","kind","slug","title","description","tags","thumbnail","author","status","stats","liveRef","payload"])});var KSe=V1.model("communityListing",nO);var Xf=zo(Wo(),1);var Qf={id:{type:String,required:!0},variants:{type:[Number],default:void 0},_id:!1},YSe={id:{type:String,required:!0},_id:!1},gJ=new Xf.Schema({owner:{type:Xf.Schema.Types.ObjectId,ref:"user",required:!0,index:!0},name:{type:String,required:!0,trim:!0,maxlength:64},outfit:{type:Qf,default:void 0},pickaxe:{type:Qf,default:void 0},backpack:{type:Qf,default:void 0},emote:{type:YSe,default:void 0},shoes:{type:Qf,default:void 0},sidekick:{type:Qf,default:void 0}});gJ.set("toJSON",{transform:Ts.transformSchemaToJSON(["id","owner","name","outfit","pickaxe","backpack","emote","shoes","sidekick"])});var JSe=Xf.model("preset",gJ);var Zf=zo(Wo(),1);var QSe=/^[a-f\d]{24}$/i;function sO(e){return typeof e==="string"&&QSe.test(e)}var iO=new Zf.Schema({token:{type:String,required:!0,unique:!1},username:{type:String,required:!0,trim:!0},email:{type:String,index:!0,required:!0,unique:!0,trim:!0},password:{type:String,required:!0},apiToken:{type:String,required:!0,index:!1,unique:!1,trim:!0},flags:{type:Number,required:!1},connections:{discord:{id:{type:String,index:!0,unique:!0,sparse:!0},username:{type:String},verified:{type:Boolean,required:!1}},google:{id:{type:String,index:!0,unique:!0,sparse:!0},username:{type:String},verified:{type:Boolean,required:!1}},epic:{id:{type:String,index:!0,unique:!0,sparse:!0},username:{type:String},verified:{type:Boolean,required:!1}}},applications:{type:[{_id:!1,id:{type:Zf.Schema.Types.ObjectId,ref:"application",required:!0,trim:!0},token:{type:String,required:!0,trim:!0},scopes:{type:Number,required:!0}}],default:void 0},mfa:{type:{totp:{enabled:{type:Boolean,required:!1},secret:{type:String,required:!1}},recoveryCodes:{type:[{_id:!1,hash:{type:String,required:!0},usedAt:{type:Date,required:!1}}],default:void 0}},default:void 0}},{statics:{async verifyPassword(e,t){return Bun.password.verify(e,t)},async findByToken(e,t){if(!sO(e))return null;let r=await this.findById(e);if(!r?.token||r.token!==t)return null;return r},async findByAPIToken(e,t){if(!sO(e))return null;let r=await this.findById(e);if(!r?.apiToken||r.apiToken!==t)return null;return r},async findByAccessToken(e,t){if(!sO(e))return null;let r=await this.findById(e),n=r?.applications?.find((s)=>s.token===t);if(!n)return null;return{user:r,app:n}}}});iO.pre("save",async function(e){if(!this.isModified("password"))return e();try{return this.password=await Bun.password.hash(this.password,{algorithm:process.env.SAVE_ACCOUNT_ALGORITHM||"argon2id",timeCost:parseInt(process.env.SAVE_ACCOUNT_TIME_COST||"3"),cost:parseInt(process.env.SAVE_ACCOUNT_ALGORITHM_COST||"12")}),e()}catch(t){return e(t)}});iO.set("toJSON",{transform:Ts.transformSchemaToJSON(["id","username","email","flags","connections"])});var XSe=Zf.model("user",iO);var Oxe=ZSe.connection;export{zSe as ApplicationModel,GSe as BotModel,HSe as CategoryModel,KSe as CommunityListingModel,lJ as DatabaseClient,dJ as DatabaseErrorHandler,rO as DatabaseErrors,JSe as PresetModel,XSe as UserModel,Oxe as connection};
|
|
940
|
+
*/var uJ=oG();c2().set(uJ);var Hf=oJ();Hf.setDriver(uJ);Hf.Mongoose.prototype.mongo=Aa();aJ.exports=Hf});var Wo=y(function(NMe,Ee){var H=cJ();Ee.exports=H;Ee.exports.default=H;Ee.exports.mongoose=H;Ee.exports.cast=H.cast;Ee.exports.STATES=H.STATES;Ee.exports.setDriver=H.setDriver;Ee.exports.set=H.set;Ee.exports.get=H.get;Ee.exports.createConnection=H.createConnection;Ee.exports.connect=H.connect;Ee.exports.disconnect=H.disconnect;Ee.exports.startSession=H.startSession;Ee.exports.pluralize=H.pluralize;Ee.exports.model=H.model;Ee.exports.deleteModel=H.deleteModel;Ee.exports.modelNames=H.modelNames;Ee.exports.plugin=H.plugin;Ee.exports.connections=H.connections;Ee.exports.version=H.version;Ee.exports.Aggregate=H.Aggregate;Ee.exports.Mongoose=H.Mongoose;Ee.exports.Schema=H.Schema;Ee.exports.SchemaType=H.SchemaType;Ee.exports.SchemaTypes=H.SchemaTypes;Ee.exports.VirtualType=H.VirtualType;Ee.exports.Types=H.Types;Ee.exports.Query=H.Query;Ee.exports.Model=H.Model;Ee.exports.Document=H.Document;Ee.exports.ObjectId=H.ObjectId;Ee.exports.isValidObjectId=H.isValidObjectId;Ee.exports.isObjectIdOrHexString=H.isObjectIdOrHexString;Ee.exports.syncIndexes=H.syncIndexes;Ee.exports.Decimal128=H.Decimal128;Ee.exports.Mixed=H.Mixed;Ee.exports.Date=H.Date;Ee.exports.Number=H.Number;Ee.exports.Error=H.Error;Ee.exports.MongooseError=H.MongooseError;Ee.exports.now=H.now;Ee.exports.CastError=H.CastError;Ee.exports.SchemaTypeOptions=H.SchemaTypeOptions;Ee.exports.mongo=H.mongo;Ee.exports.mquery=H.mquery;Ee.exports.sanitizeFilter=H.sanitizeFilter;Ee.exports.trusted=H.trusted;Ee.exports.skipMiddlewareFunction=H.skipMiddlewareFunction;Ee.exports.overwriteMiddlewareResult=H.overwriteMiddlewareResult});var ZSe=zo(Wo(),1);var So=zo(Wo(),1);class lJ{dbURI;constructor(e){if(!e)throw Error("DB URI is not valid.");this.dbURI=e}async connect(e){console.log("Connecting to database..."),await this.connectWithRetry(e),So.connection.on("connecting",()=>{console.log("Connecting to Database...")}),So.connection.on("connected",()=>{console.log("Database is connected.")}),So.connection.on("open",()=>{console.log("Database connection is ready.")}),So.connection.on("disconnecting: ",()=>{console.log("Database is disconnecting...")}),So.connection.on("error",(t)=>{console.error("Database connection error:",t)}),So.connection.on("disconnected",(t)=>{console.warn("Database disconnected.",t)}),So.connection.on("reconnected",(t)=>{console.warn("Database reconnected.",t)})}async connectWithRetry(e){try{await So.connect(this.dbURI,{maxPoolSize:1000,autoIndex:!0,socketTimeoutMS:300000,...e})}catch(t){console.error("Unable to connect to the database. Retrying in 5s...",t),setTimeout(()=>this.connectWithRetry(),5000)}}}var MSe;((e)=>{e.String="string",e.Integer="integer",e.Float="float",e.Boolean="boolean",e.Object="object",e.Wildcard="wildcard",e.Exec="exec"})(MSe||={});var xSe;((e)=>{e[e.Single=0]="Single",e[e.Select=1]="Select",e[e.Array=2]="Array"})(xSe||={});var BSe;((e)=>{e[e.Offline=0]="Offline",e[e.Booting=1]="Booting",e[e.Available=2]="Available",e[e.Busy=3]="Busy",e[e.Disconnected=4]="Disconnected"})(BSe||={});var FSe;((e)=>{e[e.Neutral=0]="Neutral",e[e.Success=1]="Success",e[e.Info=2]="Info",e[e.Warn=3]="Warn",e[e.Error=4]="Error"})(FSe||={});var JS;((e)=>{e.Win="WIN",e.Mac="MAC",e.Psn="PSN",e.Xbl="XBL",e.Swt="SWT",e.Swt2="SWT2",e.Ios="IOS",e.And="AND",e.Ps5="PS5",e.Xsx="XSX"})(JS||={});var QS;((e)=>{e[e.Public=0]="Public",e[e.Private=1]="Private"})(QS||={});var XS;((e)=>{e[e.Auto=0]="Auto",e[e.Online=1]="Online",e[e.Away=2]="Away"})(XS||={});var j1;((e)=>{e[e.Event=0]="Event",e[e.CustomCommand=1]="CustomCommand",e[e.Scheduled=2]="Scheduled"})(j1||={});var L1;((e)=>{e[e.RunCommand=0]="RunCommand",e[e.RunFunction=1]="RunFunction",e[e.ControlFlow=2]="ControlFlow"})(L1||={});var ZS;((e)=>{e[e.Ready=0]="Ready",e[e.Disconnected=1]="Disconnected",e[e.PartyInvite=2]="PartyInvite",e[e.PartyJoinRequest=3]="PartyJoinRequest",e[e.PartyMemberJoined=4]="PartyMemberJoined",e[e.PartyMemberLeft=5]="PartyMemberLeft",e[e.PartyMemberKicked=6]="PartyMemberKicked",e[e.PartyMemberMessage=7]="PartyMemberMessage",e[e.PartyMemberPromoted=8]="PartyMemberPromoted",e[e.PartyMemberReady=9]="PartyMemberReady",e[e.PartyMemberSitOut=10]="PartyMemberSitOut",e[e.PartyMemberUnready=11]="PartyMemberUnready",e[e.PartyMemberMatch=12]="PartyMemberMatch",e[e.PartyMemberCosmeticUpdated=13]="PartyMemberCosmeticUpdated",e[e.FriendAdded=14]="FriendAdded",e[e.FriendRemoved=15]="FriendRemoved",e[e.FriendRequest=16]="FriendRequest",e[e.FriendMessage=17]="FriendMessage",e[e.FriendOnline=18]="FriendOnline",e[e.FriendOffline=19]="FriendOffline",e[e.UserBlocked=20]="UserBlocked",e[e.UserUnblocked=21]="UserUnblocked",e[e.PartyMemberInParty=22]="PartyMemberInParty"})(ZS||={});var sg;((e)=>{e.Default="en",e.EnUS="en-US",e.Es="es",e.Es419="es-419",e.Ar="ar",e.De="de",e.Fr="fr",e.He="he",e.Id="id",e.It="it",e.Ja="ja",e.Ko="ko",e.Pl="pl",e.Pt="pt",e.PtBR="pt-BR",e.Ru="ru",e.Th="th",e.Tr="tr",e.Vi="vi",e.Zh="zh",e.ZhHant="zh-Hant"})(sg||={});var PSe;((e)=>{e.Default="en",e.Ar="ar",e.De="de",e.Es="es",e.Es419="es-419",e.Fr="fr",e.Id="id",e.It="it",e.Ja="ja",e.Ko="ko",e.Pl="pl",e.PtBR="pt-BR",e.Ru="ru",e.Th="th",e.Tr="tr",e.Vi="vi",e.ZhHans="zh-Hans",e.ZhHant="zh-Hant"})(PSe||={});var eO;((e)=>{e.Bot="bot",e.Preset="preset",e.Category="category",e.Event="event",e.CustomCommand="custom_command",e.Scheduled="scheduled"})(eO||={});var tO;((e)=>{e.Pending="pending",e.Published="published",e.Rejected="rejected",e.Unlisted="unlisted"})(tO||={});var hJ;((e)=>{e.GenericUnknown="net.fnlb.errors.generic.unknown",e.GenericInternalError="net.fnlb.errors.generic.internal_error",e.GenericValidationFailed="net.fnlb.errors.generic.validation_failed",e.GenericParseFailed="net.fnlb.errors.generic.parse_failed",e.GenericNotFound="net.fnlb.errors.generic.not_found",e.GenericAlreadyExists="net.fnlb.errors.generic.already_exists",e.CommonInvalidRequest="net.fnlb.errors.common.invalid_request",e.CommonUnableToProcessRequest="net.fnlb.errors.common.unable_to_process_request",e.CommonInvalidFieldsLength="net.fnlb.errors.common.invalid_body_fields_length",e.CommonRateLimitExceeded="net.fnlb.errors.common.rate_limit_exceeded",e.CommonLimitExceeded="net.fnlb.errors.common.limit_exceeded",e.CommonUnableToSaveToDatabase="net.fnlb.errors.common.unable_to_save_to_database",e.CommonUpdateRequired="net.fnlb.errors.common.update_required",e.CommonMaintenanceMode="net.fnlb.errors.common.maintenance_mode",e.AuthInvalidToken="net.fnlb.errors.auth.invalid_token",e.AuthInvalidAPIToken="net.fnlb.errors.auth.invalid_api_token",e.AuthManagedAuthRefused="net.fnlb.errors.auth.managed_auth_refused",e.AuthInvalidCaptchaToken="net.fnlb.errors.auth.invalid_captcha_token",e.AuthUnauthorized="net.fnlb.errors.auth.unauthorized",e.AuthForbidden="net.fnlb.errors.auth.forbidden",e.AuthUserBanned="net.fnlb.errors.auth.user_banned",e.Oauth2InvalidCode="net.fnlb.errors.oauth2.invalid_code",e.Oauth2InvalidScope="net.fnlb.errors.oauth2.invalid_scope",e.Oauth2TokenInvalid="net.fnlb.errors.oauth2.token_invalid",e.Oauth2UnableToFetchUser="net.fnlb.errors.oauth2.unable_to_fetch_user",e.Oauth2UnableToFetchConnections="net.fnlb.errors.oauth2.unable_to_fetch_connections",e.Oauth2UserWithoutConnection="net.fnlb.errors.oauth2.user_without_connection",e.Oauth2ConnectionNotVerified="net.fnlb.errors.oauth2.connection_not_verified",e.ReleaseNotFound="net.fnlb.errors.release.no_release_found",e.ReleaseVersionAlreadyExists="net.fnlb.errors.release.version_already_exists",e.ReleaseHashMismatch="net.fnlb.errors.release.hash_mismatch",e.MfaNotEnabled="net.fnlb.errors.mfa.not_enabled",e.MfaAlreadyEnabled="net.fnlb.errors.mfa.already_enabled",e.MfaChallengeExpired="net.fnlb.errors.mfa.challenge_expired",e.MfaSetupExpired="net.fnlb.errors.mfa.setup_expired"})(hJ||={});var fJ;((e)=>{e.LoginInvalidCredentials="net.fnlb.errors.login.invalid_credentials",e.LoginInvalidEmail="net.fnlb.errors.login.invalid_email",e.LoginInvalidOrUsedEmail="net.fnlb.errors.login.invalid_or_used_email",e.AuthPasswordConfirmationInvalid="net.fnlb.errors.auth.invalid_password_confirmation",e.MfaInvalidCode="net.fnlb.errors.mfa.invalid_code",e.MfaRequired="net.fnlb.errors.mfa.required"})(fJ||={});var Ha={...hJ,...fJ},ISe;((e)=>{e.Username="username",e.Email="email",e.Password="password",e.Shared="shared",e.MfaCode="mfaCode"})(ISe||={});var $Se;((e)=>{e.General="general",e.Input="input"})($Se||={});var NSe;((e)=>{e[e.Disabled=1]="Disabled",e[e.Verified=2]="Verified",e[e.VerificationPending=4]="VerificationPending",e[e.PublicClient=8]="PublicClient"})(NSe||={});var RSe;((e)=>{e[e.Disabled=1]="Disabled",e[e.Public=2]="Public",e[e.InvalidAuth=4]="InvalidAuth",e[e.Prepared=8]="Prepared"})(RSe||={});var vSe;((e)=>{e[e.Disabled=1]="Disabled",e[e.Managed=2]="Managed"})(vSe||={});var kSe;((e)=>e[e.NotWearable=1]="NotWearable")(kSe||={});var qSe;((e)=>{e[e.identify=1]="identify",e[e.email=2]="email",e[e.connections=4]="connections",e[e["bots.read"]=8]="bots.read",e[e["bots.write"]=16]="bots.write",e[e["bots.run"]=32]="bots.run",e[e["categories.read"]=64]="categories.read",e[e["categories.write"]=128]="categories.write",e[e["commands.run"]=256]="commands.run",e[e.openid=512]="openid",e[e.profile=1024]="profile"})(qSe||={});var jSe;((e)=>{e[e.Ready=1]="Ready",e[e.Leader=2]="Leader",e[e.SittingOut=4]="SittingOut",e[e.Playing=8]="Playing"})(jSe||={});var LSe;((e)=>{e[e.Disabled=1]="Disabled",e[e.IgnoreSelf=2]="IgnoreSelf",e[e.IgnoreBots=4]="IgnoreBots",e[e.IgnoreLeader=8]="IgnoreLeader",e[e.IgnoreOwners=16]="IgnoreOwners",e[e.IgnoreAdmins=32]="IgnoreAdmins",e[e.IgnoreWhitelistUsers=64]="IgnoreWhitelistUsers",e[e.IgnoreBlacklistUsers=128]="IgnoreBlacklistUsers",e[e.IgnoreExcludedAutoAddFriends=256]="IgnoreExcludedAutoAddFriends",e[e.IgnoreFriends=512]="IgnoreFriends",e[e.IgnoreOtherBots=1024]="IgnoreOtherBots",e[e.IgnorePartyMembers=2048]="IgnorePartyMembers"})(LSe||={});var USe;((e)=>{e[e.Staff=1]="Staff",e[e.Admin=2]="Admin",e[e.Vip=4]="Vip",e[e.Verified=8]="Verified",e[e.Banned=16]="Banned",e[e.Tester=32]="Tester",e[e.Developer=64]="Developer",e[e.Partner=128]="Partner",e[e.Management=256]="Management",e[e.Moderation=512]="Moderation",e[e.Support=1024]="Support",e[e.IncreasedLimits=2048]="IncreasedLimits",e[e.Disabled=4096]="Disabled"})(USe||={});var rO;((i)=>{i[i.InternalError=1]="InternalError";i[i.BadValue=2]="BadValue";i[i.NoSuchKey=4]="NoSuchKey";i[i.KeyNotFound=211]="KeyNotFound";i[i.DuplicateKey=11000]="DuplicateKey"})(rO||={});class dJ{static handleError(e,t){if(!e)return!1;switch(e.code){case 11000:return t.sendError(400,Ha.GenericAlreadyExists);case 2:return t.sendError(500,Ha.CommonUnableToSaveToDatabase);case 211:return t.sendError(500,Ha.CommonUnableToSaveToDatabase);case 4:return t.sendError(500,Ha.CommonUnableToSaveToDatabase);case 1:return console.error("Internal MongoDB error:",e),t.sendError(500,Ha.CommonUnableToSaveToDatabase);default:return console.error("Unhandled MongoError code:",e.code,e),t.sendError(500,Ha.CommonUnableToSaveToDatabase)}}}var Kf=zo(Wo(),1);var VSe=["password","token","apiToken","applications","mfa","deviceAuth","secret"];class Ts{static transformSchemaToJSON(e){let t=new Set(e);return(r,n)=>{if(n._id!==void 0)n.id=n._id;delete n._id,delete n.__v;for(let s of Object.keys(n))if(!t.has(s))delete n[s];for(let s of VSe)delete n[s]}}}var WSe=8,pJ=new Kf.Schema({owner:{type:Kf.Schema.Types.ObjectId,ref:"user",required:!0,index:!0},secret:{type:String,required:function(){return!((this.flags??0)&WSe)},trim:!0},name:{type:String,required:!0,trim:!0},icon:{type:String,required:!1,trim:!0,default:void 0},description:{type:String,required:!1,trim:!0,default:void 0},scopes:{type:Number,required:!1,default:void 0},redirectUris:{type:[String],required:!1,trim:!0,default:void 0},tosUri:{type:String,required:!1,trim:!0,default:void 0},policyUri:{type:String,required:!1,trim:!0,default:void 0},installUri:{type:String,required:!1,trim:!0,default:void 0},flags:{type:Number,required:!1,default:void 0}});pJ.set("toJSON",{transform:Ts.transformSchemaToJSON(["id","owner","name","icon","description","scopes","redirectUris","tosUri","policyUri","installUri","flags"])});var zSe=Kf.model("application",pJ);var U1=zo(Wo(),1);var mJ=new U1.Schema({owner:{type:U1.Schema.Types.ObjectId,ref:"user",required:!0,index:!0},parent:{type:U1.Schema.Types.ObjectId,ref:"category",required:!1,index:!0,sparse:!0},nickname:{type:String,required:!0,trim:!0},flags:{type:Number,required:!1},email:{type:String,lowercase:!0,required:!1,trim:!0},deviceAuth:{required:!0,type:{accountId:{type:String,required:!0,unique:!0,lowercase:!0,trim:!0},deviceId:{type:String,required:!0,lowercase:!0,trim:!0},secret:{type:String,required:!0,trim:!0}},_id:!1},mmsBannedUntil:{type:Number,required:!1}});mJ.set("toJSON",{transform:Ts.transformSchemaToJSON(["id","owner","parent","nickname","flags","email","mmsBannedUntil"])});var GSe=U1.model("bot",mJ);var Jf=zo(Wo(),1);function Yf(e){return Object.values(e).filter((t)=>typeof t==="number")}var yJ=new Jf.Schema({owner:{type:Jf.Schema.Types.ObjectId,ref:"user",required:!0,index:!0},name:{type:String,required:!0,trim:!0},flags:{type:Number,required:!1},managed:{type:Boolean,required:!1,index:!0,sparse:!0,default:void 0},config:{replyLangs:{type:[String],enum:Object.values(sg),default:void 0},searchLangs:{type:[String],enum:Object.values(sg),default:void 0},platform:{type:[String],enum:Object.values(JS),default:void 0},privacy:{type:Number,enum:Yf(QS),default:void 0},prefixes:{type:[String],default:void 0},statusType:{type:Number,enum:Yf(XS),default:void 0},statusText:{type:[String],default:void 0},statusInterval:{type:Number,default:void 0},level:{type:[Number],default:void 0},bpLevel:{type:[Number],default:void 0},extraOwners:{type:[{id:String,name:String,_id:!1}],default:void 0},admins:{type:[{id:String,name:String,_id:!1}],default:void 0},whitelistUsers:{type:[{id:String,name:String,_id:!1}],default:void 0},blacklistUsers:{type:[{id:String,name:String,_id:!1}],default:void 0},excludedAutoAddFriends:{type:[{id:String,name:String,_id:!1}],default:void 0},otherBots:{type:[{id:String,name:String,_id:!1}],default:void 0},inviteTimeout:{type:Number,default:void 0},maxBotsPerLobby:{type:Number,default:void 0},maxBotsPerLobbyWithOwner:{type:Number,default:void 0},maxBotsPerLobbyWithAdmin:{type:Number,default:void 0},maxBotsPerLobbyWithWhitelistUser:{type:Number,default:void 0},allowMatchmaking:{type:Boolean,default:void 0},leaveAfterMatchmaking:{type:Boolean,default:void 0},disableMatchmakingChecks:{type:Boolean,default:void 0},disablePlaylistChecks:{type:Boolean,default:void 0},disableJoinMessages:{type:Boolean,default:void 0},disableAutomaticMessages:{type:Boolean,default:void 0},acceptFriendRequests:{type:Boolean,default:void 0},sendFriendRequestOnJoinParty:{type:Boolean,default:void 0},sendFriendRequestOnMemberJoinParty:{type:Boolean,default:void 0},runCommandsWithoutPrefix:{type:Boolean,default:void 0},setCosmeticsWithoutCommands:{type:Boolean,default:void 0},setCosmeticsWithPrefix:{type:Boolean,default:void 0},acceptInvites:{type:Boolean,default:void 0},startBannedBots:{type:Boolean,default:void 0},triggers:{type:[{name:{type:String,required:!0},flags:{type:Number,required:!1,default:void 0},type:{type:Number,required:!0,enum:Yf(j1)},event:{type:Number,enum:Yf(ZS),required(){return this.type===j1.Event},default:void 0},command:{type:String,required(){return this.type===j1.CustomCommand},default:void 0},interval:{type:String,required(){return this.type===j1.Scheduled},default:void 0},actions:{type:[{id:{type:String,required:!1},parent:{type:String,required:!1},type:{type:Number,enum:Yf(L1),required:!0},command:{type:String,required(){return this.type===L1.RunCommand}},function:{type:String,required(){return this.type===L1.RunFunction}},statement:{type:String,required(){return this.type===L1.ControlFlow}},args:{type:[String],default:void 0,required:!0},condition:{type:String,default:void 0,required:!1},_id:!1}],required:!0,default:void 0,_id:!1},_id:!1}],default:void 0},onlyOwnerCommands:{type:[String],default:void 0},onlyAdminCommands:{type:[String],default:void 0},onlyWhitelistUsersCommands:{type:[String],default:void 0},onlyFriendsCommands:{type:[String],default:void 0},onlyPartyMembersCommands:{type:[String],default:void 0},onlyWhisperCommands:{type:[String],default:void 0},startOutfit:{type:[{id:String,variants:[Number],_id:!1}],default:void 0},startBackpack:{type:[{id:String,variants:[Number],_id:!1}],default:void 0},startPickaxe:{type:[{id:String,variants:[Number],_id:!1}],default:void 0},startShoes:{type:[{id:String,variants:[Number],_id:!1}],default:void 0},startSidekick:{type:[{id:String,variants:[Number],_id:!1}],default:void 0},startBanner:{type:[{id:String,_id:!1}],default:void 0},startBannerColor:{type:[{id:String,_id:!1}],default:void 0},joinOutfit:{type:[{id:String,variants:[Number],_id:!1}],default:void 0},joinBackpack:{type:[{id:String,variants:[Number],_id:!1}],default:void 0},joinPickaxe:{type:[{id:String,variants:[Number],_id:!1}],default:void 0},joinEmote:{type:[{id:String,_id:!1}],default:void 0},joinShoes:{type:[{id:String,variants:[Number],_id:!1}],default:void 0},joinSidekick:{type:[{id:String,variants:[Number],_id:!1}],default:void 0},joinBanner:{type:[{id:String,_id:!1}],default:void 0},joinBannerColor:{type:[{id:String,_id:!1}],default:void 0},memberJoinOutfit:{type:[{id:String,variants:[Number],_id:!1}],default:void 0},memberJoinBackpack:{type:[{id:String,variants:[Number],_id:!1}],default:void 0},memberJoinPickaxe:{type:[{id:String,variants:[Number],_id:!1}],default:void 0},memberJoinEmote:{type:[{id:String,_id:!1}],default:void 0},memberJoinShoes:{type:[{id:String,variants:[Number],_id:!1}],default:void 0},memberJoinSidekick:{type:[{id:String,variants:[Number],_id:!1}],default:void 0},memberJoinBanner:{type:[{id:String,_id:!1}],default:void 0},memberJoinBannerColor:{type:[{id:String,_id:!1}],default:void 0}}});yJ.set("toJSON",{transform:Ts.transformSchemaToJSON(["id","owner","name","flags","managed","config"])});var HSe=Jf.model("category",yJ);var V1=zo(Wo(),1);var nO=new V1.Schema({kind:{type:String,required:!0,enum:Object.values(eO),index:!0},slug:{type:String,required:!0,trim:!0,unique:!0},title:{type:String,required:!0,trim:!0,maxlength:80},description:{type:String,required:!1,trim:!0,maxlength:2000},tags:{type:[String],default:void 0},author:{type:V1.Schema.Types.ObjectId,ref:"user",required:!0,index:!0},status:{type:String,required:!0,enum:Object.values(tO),index:!0},stats:{type:{installs:{type:Number,required:!1}},_id:!1,required:!1,default:void 0},liveRef:{type:{categoryId:{type:String,required:!0,trim:!0}},_id:!1,required:!1,default:void 0},payload:{type:V1.Schema.Types.Mixed,required:!1,default:void 0}});nO.index({status:1,kind:1});nO.set("toJSON",{transform:Ts.transformSchemaToJSON(["id","kind","slug","title","description","tags","author","status","stats","liveRef","payload"])});var KSe=V1.model("communityListing",nO);var Xf=zo(Wo(),1);var Qf={id:{type:String,required:!0},variants:{type:[Number],default:void 0},_id:!1},YSe={id:{type:String,required:!0},_id:!1},gJ=new Xf.Schema({owner:{type:Xf.Schema.Types.ObjectId,ref:"user",required:!0,index:!0},name:{type:String,required:!0,trim:!0,maxlength:64},outfit:{type:Qf,default:void 0},pickaxe:{type:Qf,default:void 0},backpack:{type:Qf,default:void 0},emote:{type:YSe,default:void 0},shoes:{type:Qf,default:void 0},sidekick:{type:Qf,default:void 0}});gJ.set("toJSON",{transform:Ts.transformSchemaToJSON(["id","owner","name","outfit","pickaxe","backpack","emote","shoes","sidekick"])});var JSe=Xf.model("preset",gJ);var Zf=zo(Wo(),1);var QSe=/^[a-f\d]{24}$/i;function sO(e){return typeof e==="string"&&QSe.test(e)}var iO=new Zf.Schema({token:{type:String,required:!0,unique:!1},username:{type:String,required:!0,trim:!0},avatar:{type:String,required:!1,trim:!0,maxlength:128},email:{type:String,index:!0,required:!0,unique:!0,trim:!0},password:{type:String,required:!0},apiToken:{type:String,required:!0,index:!1,unique:!1,trim:!0},flags:{type:Number,required:!1},connections:{discord:{id:{type:String,index:!0,unique:!0,sparse:!0},username:{type:String},verified:{type:Boolean,required:!1}},google:{id:{type:String,index:!0,unique:!0,sparse:!0},username:{type:String},verified:{type:Boolean,required:!1}},epic:{id:{type:String,index:!0,unique:!0,sparse:!0},username:{type:String},verified:{type:Boolean,required:!1}}},applications:{type:[{_id:!1,id:{type:Zf.Schema.Types.ObjectId,ref:"application",required:!0,trim:!0},token:{type:String,required:!0,trim:!0},scopes:{type:Number,required:!0}}],default:void 0},mfa:{type:{totp:{enabled:{type:Boolean,required:!1},secret:{type:String,required:!1}},recoveryCodes:{type:[{_id:!1,hash:{type:String,required:!0},usedAt:{type:Date,required:!1}}],default:void 0}},default:void 0}},{statics:{async verifyPassword(e,t){return Bun.password.verify(e,t)},async findByToken(e,t){if(!sO(e))return null;let r=await this.findById(e);if(!r?.token||r.token!==t)return null;return r},async findByAPIToken(e,t){if(!sO(e))return null;let r=await this.findById(e);if(!r?.apiToken||r.apiToken!==t)return null;return r},async findByAccessToken(e,t){if(!sO(e))return null;let r=await this.findById(e),n=r?.applications?.find((s)=>s.token===t);if(!n)return null;return{user:r,app:n}}}});iO.pre("save",async function(e){if(!this.isModified("password"))return e();try{return this.password=await Bun.password.hash(this.password,{algorithm:process.env.SAVE_ACCOUNT_ALGORITHM||"argon2id",timeCost:parseInt(process.env.SAVE_ACCOUNT_TIME_COST||"3"),cost:parseInt(process.env.SAVE_ACCOUNT_ALGORITHM_COST||"12")}),e()}catch(t){return e(t)}});iO.set("toJSON",{transform:Ts.transformSchemaToJSON(["id","username","avatar","email","flags","connections"])});var XSe=Zf.model("user",iO);var Oxe=ZSe.connection;export{zSe as ApplicationModel,GSe as BotModel,HSe as CategoryModel,KSe as CommunityListingModel,lJ as DatabaseClient,dJ as DatabaseErrorHandler,rO as DatabaseErrors,JSe as PresetModel,XSe as UserModel,Oxe as connection};
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fnlb-project/database",
|
|
3
3
|
"description": "FNLB Database Client",
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.79",
|
|
5
5
|
"private": false,
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "dist/index.js",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"dist"
|
|
23
23
|
],
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@fnlb-project/shared": "^1.5.
|
|
25
|
+
"@fnlb-project/shared": "^1.5.179",
|
|
26
26
|
"mongoose": "^8.23.0"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|