@fnlb-project/database 1.0.54 → 1.0.55

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 CHANGED
@@ -206,6 +206,7 @@ export declare const CategoryModel: import("mongoose").Model<{
206
206
  setCosmeticsWithoutCommands?: boolean | null | undefined;
207
207
  setCosmeticsWithPrefix?: boolean | null | undefined;
208
208
  acceptInvites?: boolean | null | undefined;
209
+ startBannedBots?: boolean | null | undefined;
209
210
  triggers?: import("mongoose").Types.DocumentArray<{
210
211
  type: any;
211
212
  name: string;
@@ -628,6 +629,7 @@ export declare const CategoryModel: import("mongoose").Model<{
628
629
  setCosmeticsWithoutCommands?: boolean | null | undefined;
629
630
  setCosmeticsWithPrefix?: boolean | null | undefined;
630
631
  acceptInvites?: boolean | null | undefined;
632
+ startBannedBots?: boolean | null | undefined;
631
633
  triggers?: import("mongoose").Types.DocumentArray<{
632
634
  type: any;
633
635
  name: string;
@@ -1050,6 +1052,7 @@ export declare const CategoryModel: import("mongoose").Model<{
1050
1052
  setCosmeticsWithoutCommands?: boolean | null | undefined;
1051
1053
  setCosmeticsWithPrefix?: boolean | null | undefined;
1052
1054
  acceptInvites?: boolean | null | undefined;
1055
+ startBannedBots?: boolean | null | undefined;
1053
1056
  triggers?: import("mongoose").Types.DocumentArray<{
1054
1057
  type: any;
1055
1058
  name: string;
@@ -1476,6 +1479,7 @@ export declare const CategoryModel: import("mongoose").Model<{
1476
1479
  setCosmeticsWithoutCommands?: boolean | null | undefined;
1477
1480
  setCosmeticsWithPrefix?: boolean | null | undefined;
1478
1481
  acceptInvites?: boolean | null | undefined;
1482
+ startBannedBots?: boolean | null | undefined;
1479
1483
  triggers?: import("mongoose").Types.DocumentArray<{
1480
1484
  type: any;
1481
1485
  name: string;
@@ -1898,6 +1902,7 @@ export declare const CategoryModel: import("mongoose").Model<{
1898
1902
  setCosmeticsWithoutCommands?: boolean | null | undefined;
1899
1903
  setCosmeticsWithPrefix?: boolean | null | undefined;
1900
1904
  acceptInvites?: boolean | null | undefined;
1905
+ startBannedBots?: boolean | null | undefined;
1901
1906
  triggers?: import("mongoose").Types.DocumentArray<{
1902
1907
  type: any;
1903
1908
  name: string;
@@ -2320,6 +2325,7 @@ export declare const CategoryModel: import("mongoose").Model<{
2320
2325
  setCosmeticsWithoutCommands?: boolean | null | undefined;
2321
2326
  setCosmeticsWithPrefix?: boolean | null | undefined;
2322
2327
  acceptInvites?: boolean | null | undefined;
2328
+ startBannedBots?: boolean | null | undefined;
2323
2329
  triggers?: import("mongoose").Types.DocumentArray<{
2324
2330
  type: any;
2325
2331
  name: string;
package/dist/index.js CHANGED
@@ -923,4 +923,4 @@ updatePath: '${D.raw.path}'`);D.trace.add(F);let J=Object.keys(F||{}),Z=J.length
923
923
  * No-op if there is already a default connection.
924
924
  */function Mq(F){if(F.connection)return;let A=F.createConnection();A[Nd]=!0,A.models=F.models}var Q2=jd.exports=Td=new s({[Pd]:!0})});var Sd=K((Bj1,Od)=>{/*!
925
925
  * Module dependencies.
926
- */var kd=Uy();PJ().set(kd);var Tq=ud();Tq.setDriver(kd);Tq.Mongoose.prototype.mongo=E9();Od.exports=Tq});var N8=K((Dj1,B1)=>{var D1=Sd();B1.exports=D1;B1.exports.default=D1;B1.exports.mongoose=D1;B1.exports.cast=D1.cast;B1.exports.STATES=D1.STATES;B1.exports.setDriver=D1.setDriver;B1.exports.set=D1.set;B1.exports.get=D1.get;B1.exports.createConnection=D1.createConnection;B1.exports.connect=D1.connect;B1.exports.disconnect=D1.disconnect;B1.exports.startSession=D1.startSession;B1.exports.pluralize=D1.pluralize;B1.exports.model=D1.model;B1.exports.deleteModel=D1.deleteModel;B1.exports.modelNames=D1.modelNames;B1.exports.plugin=D1.plugin;B1.exports.connections=D1.connections;B1.exports.version=D1.version;B1.exports.Aggregate=D1.Aggregate;B1.exports.Mongoose=D1.Mongoose;B1.exports.Schema=D1.Schema;B1.exports.SchemaType=D1.SchemaType;B1.exports.SchemaTypes=D1.SchemaTypes;B1.exports.VirtualType=D1.VirtualType;B1.exports.Types=D1.Types;B1.exports.Query=D1.Query;B1.exports.Model=D1.Model;B1.exports.Document=D1.Document;B1.exports.ObjectId=D1.ObjectId;B1.exports.isValidObjectId=D1.isValidObjectId;B1.exports.isObjectIdOrHexString=D1.isObjectIdOrHexString;B1.exports.syncIndexes=D1.syncIndexes;B1.exports.Decimal128=D1.Decimal128;B1.exports.Mixed=D1.Mixed;B1.exports.Date=D1.Date;B1.exports.Number=D1.Number;B1.exports.Error=D1.Error;B1.exports.MongooseError=D1.MongooseError;B1.exports.now=D1.now;B1.exports.CastError=D1.CastError;B1.exports.SchemaTypeOptions=D1.SchemaTypeOptions;B1.exports.mongo=D1.mongo;B1.exports.mquery=D1.mquery;B1.exports.sanitizeFilter=D1.sanitizeFilter;B1.exports.trusted=D1.trusted;B1.exports.skipMiddlewareFunction=D1.skipMiddlewareFunction;B1.exports.overwriteMiddlewareResult=D1.overwriteMiddlewareResult});var wU1=T8(N8(),1);var U3=T8(N8(),1);class xd{dbURI;constructor(F){if(!F)throw Error("DB URI is not valid.");this.dbURI=F}async connect(F){console.log("Connecting to database..."),await this.connectWithRetry(F),U3.connection.on("connecting",()=>{console.log("Connecting to Database...")}),U3.connection.on("connected",()=>{console.log("Database is connected.")}),U3.connection.on("open",()=>{console.log("Database connection is ready.")}),U3.connection.on("disconnecting: ",()=>{console.log("Database is disconnecting...")}),U3.connection.on("error",(A)=>{console.error("Database connection error:",A)}),U3.connection.on("disconnected",(A)=>{console.warn("Database disconnected.",A)}),U3.connection.on("reconnected",(A)=>{console.warn("Database reconnected.",A)})}async connectWithRetry(F){try{await U3.connect(this.dbURI,{maxPoolSize:1000,autoIndex:!0,socketTimeoutMS:300000,...F})}catch(A){console.error("Unable to connect to the database. Retrying in 5s...",A),setTimeout(()=>this.connectWithRetry(),5000)}}}var CU1;((F)=>{F[F.Offline=0]="Offline",F[F.Booting=1]="Booting",F[F.Available=2]="Available",F[F.Busy=3]="Busy",F[F.Disconnected=4]="Disconnected"})(CU1||={});var YU1;((F)=>{F[F.Neutral=0]="Neutral",F[F.Success=1]="Success",F[F.Info=2]="Info",F[F.Warn=3]="Warn",F[F.Error=4]="Error"})(YU1||={});var jq;((F)=>{F.Win="WIN",F.Mac="MAC",F.Psn="PSN",F.Xbl="XBL",F.Swt="SWT",F.Swt2="SWT2",F.Ios="IOS",F.And="AND",F.Ps5="PS5",F.Xsx="XSX"})(jq||={});var uq;((F)=>{F[F.Public=0]="Public",F[F.Private=1]="Private"})(uq||={});var kq;((F)=>{F[F.Auto=0]="Auto",F[F.Online=1]="Online",F[F.Away=2]="Away"})(kq||={});var XZ;((F)=>{F[F.Event=0]="Event",F[F.Command=1]="Command"})(XZ||={});var XA;((F)=>F[F.RunCommand=0]="RunCommand")(XA||={});var Oq;((F)=>{F[F.Ready=0]="Ready",F[F.Disconnected=1]="Disconnected",F[F.PartyInvite=2]="PartyInvite",F[F.PartyJoinRequest=3]="PartyJoinRequest",F[F.PartyMemberJoined=4]="PartyMemberJoined",F[F.PartyMemberLeft=5]="PartyMemberLeft",F[F.PartyMemberKicked=6]="PartyMemberKicked",F[F.PartyMemberMessage=7]="PartyMemberMessage",F[F.PartyMemberPromoted=8]="PartyMemberPromoted",F[F.PartyMemberReady=9]="PartyMemberReady",F[F.PartyMemberSitOut=10]="PartyMemberSitOut",F[F.PartyMemberUnready=11]="PartyMemberUnready",F[F.PartyMemberMatch=12]="PartyMemberMatch",F[F.PartyMemberCosmeticUpdated=13]="PartyMemberCosmeticUpdated",F[F.FriendAdded=14]="FriendAdded",F[F.FriendRemoved=15]="FriendRemoved",F[F.FriendRequest=16]="FriendRequest",F[F.FriendMessage=17]="FriendMessage",F[F.FriendOnline=18]="FriendOnline",F[F.FriendOffline=19]="FriendOffline",F[F.UserBlocked=20]="UserBlocked",F[F.UserUnblocked=21]="UserUnblocked"})(Oq||={});var EZ;((F)=>{F.Default="en",F.EnUS="en-US",F.Es="es",F.Es419="es-419",F.Ar="ar",F.De="de",F.Fr="fr",F.He="he",F.Id="id",F.It="it",F.Ja="ja",F.Ko="ko",F.Pl="pl",F.Pt="pt",F.PtBR="pt-BR",F.Ru="ru",F.Th="th",F.Tr="tr",F.Vi="vi",F.Zh="zh",F.ZhHant="zh-Hant"})(EZ||={});var $U1;((F)=>{F.Default="en",F.Ar="ar",F.De="de",F.Es="es",F.Es419="es-419",F.Fr="fr",F.Id="id",F.It="it",F.Ja="ja",F.Ko="ko",F.Pl="pl",F.PtBR="pt-BR",F.Ru="ru",F.Th="th",F.Tr="tr",F.Vi="vi",F.ZhHans="zh-Hans",F.ZhHant="zh-Hant"})($U1||={});var GU1;((F)=>{F[F.RequiredParam=0]="RequiredParam",F[F.OptionalParam=1]="OptionalParam",F[F.RequiredSelect=2]="RequiredSelect",F[F.OptionalSelect=3]="OptionalSelect",F[F.RequiredNumericParam=4]="RequiredNumericParam",F[F.OptionalNumericParam=5]="OptionalNumericParam"})(GU1||={});var fd;((F)=>{F.GenericUnknown="net.fnlb.errors.generic.unknown",F.GenericInternalError="net.fnlb.errors.generic.internal_error",F.GenericValidationFailed="net.fnlb.errors.generic.validation_failed",F.GenericParseFailed="net.fnlb.errors.generic.parse_failed",F.GenericNotFound="net.fnlb.errors.generic.not_found",F.GenericAlreadyExists="net.fnlb.errors.generic.already_exists",F.CommonInvalidRequest="net.fnlb.errors.common.invalid_request",F.CommonUnableToProcessRequest="net.fnlb.errors.common.unable_to_process_request",F.CommonInvalidFieldsLength="net.fnlb.errors.common.invalid_body_fields_length",F.CommonRateLimitExceeded="net.fnlb.errors.common.rate_limit_exceeded",F.CommonLimitExceeded="net.fnlb.errors.common.limit_exceeded",F.CommonUnableToSaveToDatabase="net.fnlb.errors.common.unable_to_save_to_database",F.CommonUpdateRequired="net.fnlb.errors.common.update_required",F.CommonMaintenanceMode="net.fnlb.errors.common.maintenance_mode",F.AuthInvalidToken="net.fnlb.errors.auth.invalid_token",F.AuthInvalidAPIToken="net.fnlb.errors.auth.invalid_api_token",F.AuthInvalidCaptchaToken="net.fnlb.errors.auth.invalid_captcha_token",F.AuthUnauthorized="net.fnlb.errors.auth.unauthorized",F.AuthForbidden="net.fnlb.errors.auth.forbidden",F.AuthUserBanned="net.fnlb.errors.auth.user_banned",F.Oauth2InvalidCode="net.fnlb.errors.oauth2.invalid_code",F.Oauth2InvalidScope="net.fnlb.errors.oauth2.invalid_scope",F.Oauth2TokenInvalid="net.fnlb.errors.oauth2.token_invalid",F.Oauth2UnableToFetchUser="net.fnlb.errors.oauth2.unable_to_fetch_user",F.Oauth2UnableToFetchConnections="net.fnlb.errors.oauth2.unable_to_fetch_connections",F.Oauth2UserWithoutConnection="net.fnlb.errors.oauth2.user_without_connection",F.Oauth2ConnectionNotVerified="net.fnlb.errors.oauth2.connection_not_verified",F.ReleaseNotFound="net.fnlb.errors.release.no_release_found",F.ReleaseVersionAlreadyExists="net.fnlb.errors.release.version_already_exists"})(fd||={});var _d;((F)=>{F.LoginInvalidCredentials="net.fnlb.errors.login.invalid_credentials",F.LoginInvalidEmail="net.fnlb.errors.login.invalid_email",F.LoginInvalidOrUsedEmail="net.fnlb.errors.login.invalid_or_used_email",F.AuthPasswordConfirmationInvalid="net.fnlb.errors.auth.invalid_password_confirmation"})(_d||={});var y9={...fd,..._d},WU1;((F)=>{F.Username="username",F.Email="email",F.Password="password",F.Shared="shared"})(WU1||={});var HU1;((F)=>{F.General="general",F.Input="input"})(HU1||={});var qU1;((F)=>{F[F.Disabled=1]="Disabled",F[F.Public=2]="Public",F[F.InvalidAuth=4]="InvalidAuth"})(qU1||={});var zU1;((F)=>{F[F.Disabled=1]="Disabled",F[F.Managed=2]="Managed"})(zU1||={});var KU1;((F)=>F[F.NotWearable=1]="NotWearable")(KU1||={});var UU1;((F)=>{F[F.Disabled=1]="Disabled",F[F.IgnoreSelf=2]="IgnoreSelf",F[F.IgnoreBots=4]="IgnoreBots",F[F.IgnoreLeader=8]="IgnoreLeader",F[F.IgnoreOwners=16]="IgnoreOwners",F[F.IgnoreAdmins=32]="IgnoreAdmins",F[F.IgnoreWhitelistUsers=64]="IgnoreWhitelistUsers",F[F.IgnoreBlacklistUsers=128]="IgnoreBlacklistUsers",F[F.IgnoreExcludedAutoAddFriends=256]="IgnoreExcludedAutoAddFriends",F[F.IgnoreFriends=512]="IgnoreFriends",F[F.IgnoreOtherBots=1024]="IgnoreOtherBots",F[F.IgnorePartyMembers=2048]="IgnorePartyMembers"})(UU1||={});var QU1;((F)=>{F[F.Staff=1]="Staff",F[F.Admin=2]="Admin",F[F.Vip=4]="Vip",F[F.Verified=8]="Verified",F[F.Banned=16]="Banned",F[F.Tester=32]="Tester",F[F.Developer=64]="Developer",F[F.Partner=128]="Partner",F[F.Management=256]="Management",F[F.Moderation=512]="Moderation",F[F.Support=1024]="Support",F[F.IncreasedLimits=2048]="IncreasedLimits"})(QU1||={});var Sq;((Z)=>{Z[Z.InternalError=1]="InternalError";Z[Z.BadValue=2]="BadValue";Z[Z.NoSuchKey=4]="NoSuchKey";Z[Z.KeyNotFound=211]="KeyNotFound";Z[Z.DuplicateKey=11000]="DuplicateKey"})(Sq||={});class gd{static handleError(F,A){if(!F)return!1;switch(F.code){case 11000:return A.sendError(400,y9.GenericAlreadyExists);case 2:return A.sendError(500,y9.CommonUnableToSaveToDatabase);case 211:return A.sendError(500,y9.CommonUnableToSaveToDatabase);case 4:return A.sendError(500,y9.CommonUnableToSaveToDatabase);case 1:return console.error("Internal MongoDB error:",F),A.sendError(500,y9.CommonUnableToSaveToDatabase);default:return console.error("Unhandled MongoError code:",F.code,F),A.sendError(500,y9.CommonUnableToSaveToDatabase)}}}var M8=T8(N8(),1);class h9{static transformSchemaToJSON(F,A){A.id=A._id,delete A._id,delete A.__v,delete A.password}}var bd=new M8.Schema({owner:{type:M8.Schema.Types.ObjectId,ref:"user",required:!0,index:!0},parent:{type:M8.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}});bd.set("toJSON",{transform:h9.transformSchemaToJSON});var VU1=M8.model("bot",bd);var CA=T8(N8(),1);function EA(F){return Object.values(F).filter((A)=>typeof A==="number")}var yd=new CA.Schema({owner:{type:CA.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},config:{replyLangs:{type:[String],enum:Object.values(EZ),default:void 0},searchLangs:{type:[String],enum:Object.values(EZ),default:void 0},platform:{type:[String],enum:Object.values(jq),default:void 0},privacy:{type:Number,enum:EA(uq),default:void 0},prefixes:{type:[String],default:void 0},statusType:{type:Number,enum:EA(kq),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},triggers:{type:[{name:{type:String,required:!0},flags:{type:Number,required:!1,default:void 0},type:{type:Number,required:!0,enum:EA(XZ)},event:{type:Number,enum:EA(Oq),required(){return this.type===XZ.Event},default:void 0},actions:{type:[{type:{type:Number,enum:EA(XA),required:!0},command:{type:String,required(){return this.type===XA.RunCommand}},args:{type:[String],default:void 0,required(){return this.type===XA.RunCommand}},_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},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},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},memberJoinBanner:{type:[{id:String,_id:!1}],default:void 0},memberJoinBannerColor:{type:[{id:String,_id:!1}],default:void 0}}});yd.set("toJSON",{transform:h9.transformSchemaToJSON});var LU1=CA.model("category",yd);var CZ=T8(N8(),1);var xq=new CZ.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}},epic:{id:{type:String,index:!0,unique:!0,sparse:!0},username:{type:String},verified:{type:Boolean,required:!1}}}},{statics:{async verifyPassword(F,A){return Bun.password.verify(F,A)},async findByToken(F,A){let B=await this.findById(F);if(!B?.token||B.token!==A)return null;return B},async findByAPIToken(F,A){let B=await this.findById(F);if(!B?.apiToken||B.apiToken!==A)return null;return B}}});xq.pre("save",async function(F){if(!this.isModified("password"))return F();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")}),F()}catch(A){return F(A)}});xq.set("toJSON",{transform:h9.transformSchemaToJSON});var RU1=CZ.model("user",xq);var export_connection=wU1.connection;export{export_connection as connection,RU1 as UserModel,Sq as DatabaseErrors,gd as DatabaseErrorHandler,xd as DatabaseClient,LU1 as CategoryModel,VU1 as BotModel};
926
+ */var kd=Uy();PJ().set(kd);var Tq=ud();Tq.setDriver(kd);Tq.Mongoose.prototype.mongo=E9();Od.exports=Tq});var N8=K((Dj1,B1)=>{var D1=Sd();B1.exports=D1;B1.exports.default=D1;B1.exports.mongoose=D1;B1.exports.cast=D1.cast;B1.exports.STATES=D1.STATES;B1.exports.setDriver=D1.setDriver;B1.exports.set=D1.set;B1.exports.get=D1.get;B1.exports.createConnection=D1.createConnection;B1.exports.connect=D1.connect;B1.exports.disconnect=D1.disconnect;B1.exports.startSession=D1.startSession;B1.exports.pluralize=D1.pluralize;B1.exports.model=D1.model;B1.exports.deleteModel=D1.deleteModel;B1.exports.modelNames=D1.modelNames;B1.exports.plugin=D1.plugin;B1.exports.connections=D1.connections;B1.exports.version=D1.version;B1.exports.Aggregate=D1.Aggregate;B1.exports.Mongoose=D1.Mongoose;B1.exports.Schema=D1.Schema;B1.exports.SchemaType=D1.SchemaType;B1.exports.SchemaTypes=D1.SchemaTypes;B1.exports.VirtualType=D1.VirtualType;B1.exports.Types=D1.Types;B1.exports.Query=D1.Query;B1.exports.Model=D1.Model;B1.exports.Document=D1.Document;B1.exports.ObjectId=D1.ObjectId;B1.exports.isValidObjectId=D1.isValidObjectId;B1.exports.isObjectIdOrHexString=D1.isObjectIdOrHexString;B1.exports.syncIndexes=D1.syncIndexes;B1.exports.Decimal128=D1.Decimal128;B1.exports.Mixed=D1.Mixed;B1.exports.Date=D1.Date;B1.exports.Number=D1.Number;B1.exports.Error=D1.Error;B1.exports.MongooseError=D1.MongooseError;B1.exports.now=D1.now;B1.exports.CastError=D1.CastError;B1.exports.SchemaTypeOptions=D1.SchemaTypeOptions;B1.exports.mongo=D1.mongo;B1.exports.mquery=D1.mquery;B1.exports.sanitizeFilter=D1.sanitizeFilter;B1.exports.trusted=D1.trusted;B1.exports.skipMiddlewareFunction=D1.skipMiddlewareFunction;B1.exports.overwriteMiddlewareResult=D1.overwriteMiddlewareResult});var wU1=T8(N8(),1);var U3=T8(N8(),1);class xd{dbURI;constructor(F){if(!F)throw Error("DB URI is not valid.");this.dbURI=F}async connect(F){console.log("Connecting to database..."),await this.connectWithRetry(F),U3.connection.on("connecting",()=>{console.log("Connecting to Database...")}),U3.connection.on("connected",()=>{console.log("Database is connected.")}),U3.connection.on("open",()=>{console.log("Database connection is ready.")}),U3.connection.on("disconnecting: ",()=>{console.log("Database is disconnecting...")}),U3.connection.on("error",(A)=>{console.error("Database connection error:",A)}),U3.connection.on("disconnected",(A)=>{console.warn("Database disconnected.",A)}),U3.connection.on("reconnected",(A)=>{console.warn("Database reconnected.",A)})}async connectWithRetry(F){try{await U3.connect(this.dbURI,{maxPoolSize:1000,autoIndex:!0,socketTimeoutMS:300000,...F})}catch(A){console.error("Unable to connect to the database. Retrying in 5s...",A),setTimeout(()=>this.connectWithRetry(),5000)}}}var CU1;((F)=>{F[F.Offline=0]="Offline",F[F.Booting=1]="Booting",F[F.Available=2]="Available",F[F.Busy=3]="Busy",F[F.Disconnected=4]="Disconnected"})(CU1||={});var YU1;((F)=>{F[F.Neutral=0]="Neutral",F[F.Success=1]="Success",F[F.Info=2]="Info",F[F.Warn=3]="Warn",F[F.Error=4]="Error"})(YU1||={});var jq;((F)=>{F.Win="WIN",F.Mac="MAC",F.Psn="PSN",F.Xbl="XBL",F.Swt="SWT",F.Swt2="SWT2",F.Ios="IOS",F.And="AND",F.Ps5="PS5",F.Xsx="XSX"})(jq||={});var uq;((F)=>{F[F.Public=0]="Public",F[F.Private=1]="Private"})(uq||={});var kq;((F)=>{F[F.Auto=0]="Auto",F[F.Online=1]="Online",F[F.Away=2]="Away"})(kq||={});var XZ;((F)=>{F[F.Event=0]="Event",F[F.Command=1]="Command"})(XZ||={});var XA;((F)=>F[F.RunCommand=0]="RunCommand")(XA||={});var Oq;((F)=>{F[F.Ready=0]="Ready",F[F.Disconnected=1]="Disconnected",F[F.PartyInvite=2]="PartyInvite",F[F.PartyJoinRequest=3]="PartyJoinRequest",F[F.PartyMemberJoined=4]="PartyMemberJoined",F[F.PartyMemberLeft=5]="PartyMemberLeft",F[F.PartyMemberKicked=6]="PartyMemberKicked",F[F.PartyMemberMessage=7]="PartyMemberMessage",F[F.PartyMemberPromoted=8]="PartyMemberPromoted",F[F.PartyMemberReady=9]="PartyMemberReady",F[F.PartyMemberSitOut=10]="PartyMemberSitOut",F[F.PartyMemberUnready=11]="PartyMemberUnready",F[F.PartyMemberMatch=12]="PartyMemberMatch",F[F.PartyMemberCosmeticUpdated=13]="PartyMemberCosmeticUpdated",F[F.FriendAdded=14]="FriendAdded",F[F.FriendRemoved=15]="FriendRemoved",F[F.FriendRequest=16]="FriendRequest",F[F.FriendMessage=17]="FriendMessage",F[F.FriendOnline=18]="FriendOnline",F[F.FriendOffline=19]="FriendOffline",F[F.UserBlocked=20]="UserBlocked",F[F.UserUnblocked=21]="UserUnblocked"})(Oq||={});var EZ;((F)=>{F.Default="en",F.EnUS="en-US",F.Es="es",F.Es419="es-419",F.Ar="ar",F.De="de",F.Fr="fr",F.He="he",F.Id="id",F.It="it",F.Ja="ja",F.Ko="ko",F.Pl="pl",F.Pt="pt",F.PtBR="pt-BR",F.Ru="ru",F.Th="th",F.Tr="tr",F.Vi="vi",F.Zh="zh",F.ZhHant="zh-Hant"})(EZ||={});var $U1;((F)=>{F.Default="en",F.Ar="ar",F.De="de",F.Es="es",F.Es419="es-419",F.Fr="fr",F.Id="id",F.It="it",F.Ja="ja",F.Ko="ko",F.Pl="pl",F.PtBR="pt-BR",F.Ru="ru",F.Th="th",F.Tr="tr",F.Vi="vi",F.ZhHans="zh-Hans",F.ZhHant="zh-Hant"})($U1||={});var GU1;((F)=>{F[F.RequiredParam=0]="RequiredParam",F[F.OptionalParam=1]="OptionalParam",F[F.RequiredSelect=2]="RequiredSelect",F[F.OptionalSelect=3]="OptionalSelect",F[F.RequiredNumericParam=4]="RequiredNumericParam",F[F.OptionalNumericParam=5]="OptionalNumericParam"})(GU1||={});var fd;((F)=>{F.GenericUnknown="net.fnlb.errors.generic.unknown",F.GenericInternalError="net.fnlb.errors.generic.internal_error",F.GenericValidationFailed="net.fnlb.errors.generic.validation_failed",F.GenericParseFailed="net.fnlb.errors.generic.parse_failed",F.GenericNotFound="net.fnlb.errors.generic.not_found",F.GenericAlreadyExists="net.fnlb.errors.generic.already_exists",F.CommonInvalidRequest="net.fnlb.errors.common.invalid_request",F.CommonUnableToProcessRequest="net.fnlb.errors.common.unable_to_process_request",F.CommonInvalidFieldsLength="net.fnlb.errors.common.invalid_body_fields_length",F.CommonRateLimitExceeded="net.fnlb.errors.common.rate_limit_exceeded",F.CommonLimitExceeded="net.fnlb.errors.common.limit_exceeded",F.CommonUnableToSaveToDatabase="net.fnlb.errors.common.unable_to_save_to_database",F.CommonUpdateRequired="net.fnlb.errors.common.update_required",F.CommonMaintenanceMode="net.fnlb.errors.common.maintenance_mode",F.AuthInvalidToken="net.fnlb.errors.auth.invalid_token",F.AuthInvalidAPIToken="net.fnlb.errors.auth.invalid_api_token",F.AuthInvalidCaptchaToken="net.fnlb.errors.auth.invalid_captcha_token",F.AuthUnauthorized="net.fnlb.errors.auth.unauthorized",F.AuthForbidden="net.fnlb.errors.auth.forbidden",F.AuthUserBanned="net.fnlb.errors.auth.user_banned",F.Oauth2InvalidCode="net.fnlb.errors.oauth2.invalid_code",F.Oauth2InvalidScope="net.fnlb.errors.oauth2.invalid_scope",F.Oauth2TokenInvalid="net.fnlb.errors.oauth2.token_invalid",F.Oauth2UnableToFetchUser="net.fnlb.errors.oauth2.unable_to_fetch_user",F.Oauth2UnableToFetchConnections="net.fnlb.errors.oauth2.unable_to_fetch_connections",F.Oauth2UserWithoutConnection="net.fnlb.errors.oauth2.user_without_connection",F.Oauth2ConnectionNotVerified="net.fnlb.errors.oauth2.connection_not_verified",F.ReleaseNotFound="net.fnlb.errors.release.no_release_found",F.ReleaseVersionAlreadyExists="net.fnlb.errors.release.version_already_exists"})(fd||={});var _d;((F)=>{F.LoginInvalidCredentials="net.fnlb.errors.login.invalid_credentials",F.LoginInvalidEmail="net.fnlb.errors.login.invalid_email",F.LoginInvalidOrUsedEmail="net.fnlb.errors.login.invalid_or_used_email",F.AuthPasswordConfirmationInvalid="net.fnlb.errors.auth.invalid_password_confirmation"})(_d||={});var y9={...fd,..._d},WU1;((F)=>{F.Username="username",F.Email="email",F.Password="password",F.Shared="shared"})(WU1||={});var HU1;((F)=>{F.General="general",F.Input="input"})(HU1||={});var qU1;((F)=>{F[F.Disabled=1]="Disabled",F[F.Public=2]="Public",F[F.InvalidAuth=4]="InvalidAuth"})(qU1||={});var zU1;((F)=>{F[F.Disabled=1]="Disabled",F[F.Managed=2]="Managed"})(zU1||={});var KU1;((F)=>F[F.NotWearable=1]="NotWearable")(KU1||={});var UU1;((F)=>{F[F.Disabled=1]="Disabled",F[F.IgnoreSelf=2]="IgnoreSelf",F[F.IgnoreBots=4]="IgnoreBots",F[F.IgnoreLeader=8]="IgnoreLeader",F[F.IgnoreOwners=16]="IgnoreOwners",F[F.IgnoreAdmins=32]="IgnoreAdmins",F[F.IgnoreWhitelistUsers=64]="IgnoreWhitelistUsers",F[F.IgnoreBlacklistUsers=128]="IgnoreBlacklistUsers",F[F.IgnoreExcludedAutoAddFriends=256]="IgnoreExcludedAutoAddFriends",F[F.IgnoreFriends=512]="IgnoreFriends",F[F.IgnoreOtherBots=1024]="IgnoreOtherBots",F[F.IgnorePartyMembers=2048]="IgnorePartyMembers"})(UU1||={});var QU1;((F)=>{F[F.Staff=1]="Staff",F[F.Admin=2]="Admin",F[F.Vip=4]="Vip",F[F.Verified=8]="Verified",F[F.Banned=16]="Banned",F[F.Tester=32]="Tester",F[F.Developer=64]="Developer",F[F.Partner=128]="Partner",F[F.Management=256]="Management",F[F.Moderation=512]="Moderation",F[F.Support=1024]="Support",F[F.IncreasedLimits=2048]="IncreasedLimits"})(QU1||={});var Sq;((Z)=>{Z[Z.InternalError=1]="InternalError";Z[Z.BadValue=2]="BadValue";Z[Z.NoSuchKey=4]="NoSuchKey";Z[Z.KeyNotFound=211]="KeyNotFound";Z[Z.DuplicateKey=11000]="DuplicateKey"})(Sq||={});class gd{static handleError(F,A){if(!F)return!1;switch(F.code){case 11000:return A.sendError(400,y9.GenericAlreadyExists);case 2:return A.sendError(500,y9.CommonUnableToSaveToDatabase);case 211:return A.sendError(500,y9.CommonUnableToSaveToDatabase);case 4:return A.sendError(500,y9.CommonUnableToSaveToDatabase);case 1:return console.error("Internal MongoDB error:",F),A.sendError(500,y9.CommonUnableToSaveToDatabase);default:return console.error("Unhandled MongoError code:",F.code,F),A.sendError(500,y9.CommonUnableToSaveToDatabase)}}}var M8=T8(N8(),1);class h9{static transformSchemaToJSON(F,A){A.id=A._id,delete A._id,delete A.__v,delete A.password}}var bd=new M8.Schema({owner:{type:M8.Schema.Types.ObjectId,ref:"user",required:!0,index:!0},parent:{type:M8.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}});bd.set("toJSON",{transform:h9.transformSchemaToJSON});var VU1=M8.model("bot",bd);var CA=T8(N8(),1);function EA(F){return Object.values(F).filter((A)=>typeof A==="number")}var yd=new CA.Schema({owner:{type:CA.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},config:{replyLangs:{type:[String],enum:Object.values(EZ),default:void 0},searchLangs:{type:[String],enum:Object.values(EZ),default:void 0},platform:{type:[String],enum:Object.values(jq),default:void 0},privacy:{type:Number,enum:EA(uq),default:void 0},prefixes:{type:[String],default:void 0},statusType:{type:Number,enum:EA(kq),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:EA(XZ)},event:{type:Number,enum:EA(Oq),required(){return this.type===XZ.Event},default:void 0},actions:{type:[{type:{type:Number,enum:EA(XA),required:!0},command:{type:String,required(){return this.type===XA.RunCommand}},args:{type:[String],default:void 0,required(){return this.type===XA.RunCommand}},_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},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},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},memberJoinBanner:{type:[{id:String,_id:!1}],default:void 0},memberJoinBannerColor:{type:[{id:String,_id:!1}],default:void 0}}});yd.set("toJSON",{transform:h9.transformSchemaToJSON});var LU1=CA.model("category",yd);var CZ=T8(N8(),1);var xq=new CZ.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}},epic:{id:{type:String,index:!0,unique:!0,sparse:!0},username:{type:String},verified:{type:Boolean,required:!1}}}},{statics:{async verifyPassword(F,A){return Bun.password.verify(F,A)},async findByToken(F,A){let B=await this.findById(F);if(!B?.token||B.token!==A)return null;return B},async findByAPIToken(F,A){let B=await this.findById(F);if(!B?.apiToken||B.apiToken!==A)return null;return B}}});xq.pre("save",async function(F){if(!this.isModified("password"))return F();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")}),F()}catch(A){return F(A)}});xq.set("toJSON",{transform:h9.transformSchemaToJSON});var RU1=CZ.model("user",xq);var export_connection=wU1.connection;export{export_connection as connection,RU1 as UserModel,Sq as DatabaseErrors,gd as DatabaseErrorHandler,xd as DatabaseClient,LU1 as CategoryModel,VU1 as BotModel};
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.54",
4
+ "version": "1.0.55",
5
5
  "private": false,
6
6
  "type": "module",
7
7
  "main": "dist/index.js",