@fnlb-project/database 1.0.63 → 1.0.64
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.js +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -931,4 +931,4 @@ updatePath: '${D.raw.path}'`);D.trace.add(F);let J=Object.keys(F||{}),Z=J.length
|
|
|
931
931
|
* No-op if there is already a default connection.
|
|
932
932
|
*/function kq(F){if(F.connection)return;let A=F.createConnection();A[kd]=!0,A.models=F.models}var Q2=xd.exports=Sd=new s({[ud]:!0})});var bd=U((Uj1,gd)=>{/*!
|
|
933
933
|
* Module dependencies.
|
|
934
|
-
*/var _d=wy();uJ().set(_d);var Oq=fd();Oq.setDriver(_d);Oq.Mongoose.prototype.mongo=$9();gd.exports=Oq});var h4=U((Kj1,B1)=>{var D1=bd();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 gK1=m4(h4(),1);var Q3=m4(h4(),1);class yd{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),Q3.connection.on("connecting",()=>{console.log("Connecting to Database...")}),Q3.connection.on("connected",()=>{console.log("Database is connected.")}),Q3.connection.on("open",()=>{console.log("Database connection is ready.")}),Q3.connection.on("disconnecting: ",()=>{console.log("Database is disconnecting...")}),Q3.connection.on("error",(A)=>{console.error("Database connection error:",A)}),Q3.connection.on("disconnected",(A)=>{console.warn("Database disconnected.",A)}),Q3.connection.on("reconnected",(A)=>{console.warn("Database reconnected.",A)})}async connectWithRetry(F){try{await Q3.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 QK1;((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"})(QK1||={});var VK1;((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"})(VK1||={});var Sq;((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"})(Sq||={});var xq;((F)=>{F[F.Public=0]="Public",F[F.Private=1]="Private"})(xq||={});var fq;((F)=>{F[F.Auto=0]="Auto",F[F.Online=1]="Online",F[F.Away=2]="Away"})(fq||={});var GZ;((F)=>{F[F.Event=0]="Event",F[F.Command=1]="Command"})(GZ||={});var XA;((F)=>F[F.RunCommand=0]="RunCommand")(XA||={});var _q;((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"})(_q||={});var WZ;((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"})(WZ||={});var LK1;((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"})(LK1||={});var RK1;((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"})(RK1||={});var hd;((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"})(hd||={});var vd;((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"})(vd||={});var m9={...hd,...vd},wK1;((F)=>{F.Username="username",F.Email="email",F.Password="password",F.Shared="shared"})(wK1||={});var IK1;((F)=>{F.General="general",F.Input="input"})(IK1||={});var PK1;((F)=>{F[F.Disabled=1]="Disabled",F[F.Verified=2]="Verified",F[F.VerificationPending=4]="VerificationPending"})(PK1||={});var NK1;((F)=>{F[F.Disabled=1]="Disabled",F[F.Public=2]="Public",F[F.InvalidAuth=4]="InvalidAuth"})(NK1||={});var MK1;((F)=>{F[F.Disabled=1]="Disabled",F[F.Managed=2]="Managed"})(MK1||={});var TK1;((F)=>F[F.NotWearable=1]="NotWearable")(TK1||={});var jK1;((F)=>{F[F.identify=1]="identify",F[F.email=2]="email",F[F.connections=4]="connections",F[F["bots.read"]=8]="bots.read",F[F["bots.write"]=16]="bots.write",F[F["bots.run"]=32]="bots.run",F[F["categories.read"]=64]="categories.read",F[F["categories.write"]=128]="categories.write",F[F["commands.run"]=256]="commands.run"})(jK1||={});var uK1;((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"})(uK1||={});var kK1;((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",F[F.Disabled=4096]="Disabled"})(kK1||={});var gq;((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"})(gq||={});class md{static handleError(F,A){if(!F)return!1;switch(F.code){case 11000:return A.sendError(400,m9.GenericAlreadyExists);case 2:return A.sendError(500,m9.CommonUnableToSaveToDatabase);case 211:return A.sendError(500,m9.CommonUnableToSaveToDatabase);case 4:return A.sendError(500,m9.CommonUnableToSaveToDatabase);case 1:return console.error("Internal MongoDB error:",F),A.sendError(500,m9.CommonUnableToSaveToDatabase);default:return console.error("Unhandled MongoError code:",F.code,F),A.sendError(500,m9.CommonUnableToSaveToDatabase)}}}var EA=m4(h4(),1);class F3{static transformSchemaToJSON(F,A){A.id=A._id,delete A._id,delete A.__v,delete A.password}}var dd=new EA.Schema({owner:{type:EA.Schema.Types.ObjectId,ref:"user",required:!0,index:!0},secret:{type:String,required:!0,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}});dd.set("toJSON",{transform:F3.transformSchemaToJSON});var OK1=EA.model("application",dd);var j8=m4(h4(),1);var ld=new j8.Schema({owner:{type:j8.Schema.Types.ObjectId,ref:"user",required:!0,index:!0},parent:{type:j8.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}});ld.set("toJSON",{transform:F3.transformSchemaToJSON});var SK1=j8.model("bot",ld);var YA=m4(h4(),1);function CA(F){return Object.values(F).filter((A)=>typeof A==="number")}var cd=new YA.Schema({owner:{type:YA.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(WZ),default:void 0},searchLangs:{type:[String],enum:Object.values(WZ),default:void 0},platform:{type:[String],enum:Object.values(Sq),default:void 0},privacy:{type:Number,enum:CA(xq),default:void 0},prefixes:{type:[String],default:void 0},statusType:{type:Number,enum:CA(fq),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:CA(GZ)},event:{type:Number,enum:CA(_q),required(){return this.type===GZ.Event},default:void 0},actions:{type:[{type:{type:Number,enum:CA(XA),required:!0},command:{type:String,required(){return this.type===XA.RunCommand}},args:{type:[String],default:void 0,required(){return this.type===XA.RunCommand}},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},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}}});cd.set("toJSON",{transform:F3.transformSchemaToJSON});var xK1=YA.model("category",cd);var $A=m4(h4(),1);var pd=new $A.Schema({owner:{type:$A.Schema.Types.ObjectId,ref:"user",required:!0,index:!0},name:{type:String,required:!0,trim:!0}});pd.set("toJSON",{transform:F3.transformSchemaToJSON});var fK1=$A.model("preset",pd);var GA=m4(h4(),1);var bq=new GA.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}}},applications:{type:[{_id:!1,id:{type:GA.Schema.Types.ObjectId,ref:"application",required:!0,trim:!0},token:{type:String,required:!0,trim:!0},scopes:{type:Number,required:!0}}],default:void 0}},{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},async findByAccessToken(F,A){let B=await this.findById(F),D=B?.applications?.find((J)=>J.token===A);if(!D)return null;return{user:B,app:D}}}});bq.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)}});bq.set("toJSON",{transform:F3.transformSchemaToJSON});var _K1=GA.model("user",bq);var export_connection=gK1.connection;export{export_connection as connection,_K1 as UserModel,fK1 as PresetModel,gq as DatabaseErrors,md as DatabaseErrorHandler,yd as DatabaseClient,xK1 as CategoryModel,SK1 as BotModel,OK1 as ApplicationModel};
|
|
934
|
+
*/var _d=wy();uJ().set(_d);var Oq=fd();Oq.setDriver(_d);Oq.Mongoose.prototype.mongo=$9();gd.exports=Oq});var h4=U((Kj1,B1)=>{var D1=bd();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 gK1=m4(h4(),1);var Q3=m4(h4(),1);class yd{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),Q3.connection.on("connecting",()=>{console.log("Connecting to Database...")}),Q3.connection.on("connected",()=>{console.log("Database is connected.")}),Q3.connection.on("open",()=>{console.log("Database connection is ready.")}),Q3.connection.on("disconnecting: ",()=>{console.log("Database is disconnecting...")}),Q3.connection.on("error",(A)=>{console.error("Database connection error:",A)}),Q3.connection.on("disconnected",(A)=>{console.warn("Database disconnected.",A)}),Q3.connection.on("reconnected",(A)=>{console.warn("Database reconnected.",A)})}async connectWithRetry(F){try{await Q3.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 QK1;((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"})(QK1||={});var VK1;((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"})(VK1||={});var Sq;((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"})(Sq||={});var xq;((F)=>{F[F.Public=0]="Public",F[F.Private=1]="Private"})(xq||={});var fq;((F)=>{F[F.Auto=0]="Auto",F[F.Online=1]="Online",F[F.Away=2]="Away"})(fq||={});var GZ;((F)=>{F[F.Event=0]="Event",F[F.Command=1]="Command"})(GZ||={});var XA;((F)=>F[F.RunCommand=0]="RunCommand")(XA||={});var _q;((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",F[F.PartyMemberInParty=22]="PartyMemberInParty"})(_q||={});var WZ;((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"})(WZ||={});var LK1;((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"})(LK1||={});var RK1;((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"})(RK1||={});var hd;((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"})(hd||={});var vd;((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"})(vd||={});var m9={...hd,...vd},wK1;((F)=>{F.Username="username",F.Email="email",F.Password="password",F.Shared="shared"})(wK1||={});var IK1;((F)=>{F.General="general",F.Input="input"})(IK1||={});var PK1;((F)=>{F[F.Disabled=1]="Disabled",F[F.Verified=2]="Verified",F[F.VerificationPending=4]="VerificationPending"})(PK1||={});var NK1;((F)=>{F[F.Disabled=1]="Disabled",F[F.Public=2]="Public",F[F.InvalidAuth=4]="InvalidAuth"})(NK1||={});var MK1;((F)=>{F[F.Disabled=1]="Disabled",F[F.Managed=2]="Managed"})(MK1||={});var TK1;((F)=>F[F.NotWearable=1]="NotWearable")(TK1||={});var jK1;((F)=>{F[F.identify=1]="identify",F[F.email=2]="email",F[F.connections=4]="connections",F[F["bots.read"]=8]="bots.read",F[F["bots.write"]=16]="bots.write",F[F["bots.run"]=32]="bots.run",F[F["categories.read"]=64]="categories.read",F[F["categories.write"]=128]="categories.write",F[F["commands.run"]=256]="commands.run"})(jK1||={});var uK1;((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"})(uK1||={});var kK1;((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",F[F.Disabled=4096]="Disabled"})(kK1||={});var gq;((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"})(gq||={});class md{static handleError(F,A){if(!F)return!1;switch(F.code){case 11000:return A.sendError(400,m9.GenericAlreadyExists);case 2:return A.sendError(500,m9.CommonUnableToSaveToDatabase);case 211:return A.sendError(500,m9.CommonUnableToSaveToDatabase);case 4:return A.sendError(500,m9.CommonUnableToSaveToDatabase);case 1:return console.error("Internal MongoDB error:",F),A.sendError(500,m9.CommonUnableToSaveToDatabase);default:return console.error("Unhandled MongoError code:",F.code,F),A.sendError(500,m9.CommonUnableToSaveToDatabase)}}}var EA=m4(h4(),1);class F3{static transformSchemaToJSON(F,A){A.id=A._id,delete A._id,delete A.__v,delete A.password}}var dd=new EA.Schema({owner:{type:EA.Schema.Types.ObjectId,ref:"user",required:!0,index:!0},secret:{type:String,required:!0,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}});dd.set("toJSON",{transform:F3.transformSchemaToJSON});var OK1=EA.model("application",dd);var j8=m4(h4(),1);var ld=new j8.Schema({owner:{type:j8.Schema.Types.ObjectId,ref:"user",required:!0,index:!0},parent:{type:j8.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}});ld.set("toJSON",{transform:F3.transformSchemaToJSON});var SK1=j8.model("bot",ld);var YA=m4(h4(),1);function CA(F){return Object.values(F).filter((A)=>typeof A==="number")}var cd=new YA.Schema({owner:{type:YA.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(WZ),default:void 0},searchLangs:{type:[String],enum:Object.values(WZ),default:void 0},platform:{type:[String],enum:Object.values(Sq),default:void 0},privacy:{type:Number,enum:CA(xq),default:void 0},prefixes:{type:[String],default:void 0},statusType:{type:Number,enum:CA(fq),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:CA(GZ)},event:{type:Number,enum:CA(_q),required(){return this.type===GZ.Event},default:void 0},actions:{type:[{type:{type:Number,enum:CA(XA),required:!0},command:{type:String,required(){return this.type===XA.RunCommand}},args:{type:[String],default:void 0,required(){return this.type===XA.RunCommand}},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},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}}});cd.set("toJSON",{transform:F3.transformSchemaToJSON});var xK1=YA.model("category",cd);var $A=m4(h4(),1);var pd=new $A.Schema({owner:{type:$A.Schema.Types.ObjectId,ref:"user",required:!0,index:!0},name:{type:String,required:!0,trim:!0}});pd.set("toJSON",{transform:F3.transformSchemaToJSON});var fK1=$A.model("preset",pd);var GA=m4(h4(),1);var bq=new GA.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}}},applications:{type:[{_id:!1,id:{type:GA.Schema.Types.ObjectId,ref:"application",required:!0,trim:!0},token:{type:String,required:!0,trim:!0},scopes:{type:Number,required:!0}}],default:void 0}},{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},async findByAccessToken(F,A){let B=await this.findById(F),D=B?.applications?.find((J)=>J.token===A);if(!D)return null;return{user:B,app:D}}}});bq.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)}});bq.set("toJSON",{transform:F3.transformSchemaToJSON});var _K1=GA.model("user",bq);var export_connection=gK1.connection;export{export_connection as connection,_K1 as UserModel,fK1 as PresetModel,gq as DatabaseErrors,md as DatabaseErrorHandler,yd as DatabaseClient,xK1 as CategoryModel,SK1 as BotModel,OK1 as ApplicationModel};
|
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.64",
|
|
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.107",
|
|
26
26
|
"mongoose": "^8.23.0"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|