@fnlb-project/database 1.0.79 → 1.0.80

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
@@ -3368,7 +3368,6 @@ export declare const CategoryModel: import("mongoose").Model<{
3368
3368
  }>>;
3369
3369
  export declare const CommunityListingModel: import("mongoose").Model<{
3370
3370
  kind: CommunityListingKind;
3371
- slug: string;
3372
3371
  title: string;
3373
3372
  author: import("mongoose").Types.ObjectId;
3374
3373
  status: CommunityListingStatus;
@@ -3383,7 +3382,6 @@ export declare const CommunityListingModel: import("mongoose").Model<{
3383
3382
  payload?: any;
3384
3383
  }, {}, {}, {}, import("mongoose").Document<unknown, {}, {
3385
3384
  kind: CommunityListingKind;
3386
- slug: string;
3387
3385
  title: string;
3388
3386
  author: import("mongoose").Types.ObjectId;
3389
3387
  status: CommunityListingStatus;
@@ -3398,7 +3396,6 @@ export declare const CommunityListingModel: import("mongoose").Model<{
3398
3396
  payload?: any;
3399
3397
  }, {}, import("mongoose").DefaultSchemaOptions> & {
3400
3398
  kind: CommunityListingKind;
3401
- slug: string;
3402
3399
  title: string;
3403
3400
  author: import("mongoose").Types.ObjectId;
3404
3401
  status: CommunityListingStatus;
@@ -3417,7 +3414,6 @@ export declare const CommunityListingModel: import("mongoose").Model<{
3417
3414
  __v: number;
3418
3415
  }, Schema<any, import("mongoose").Model<any, any, any, any, any, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, {
3419
3416
  kind: CommunityListingKind;
3420
- slug: string;
3421
3417
  title: string;
3422
3418
  author: import("mongoose").Types.ObjectId;
3423
3419
  status: CommunityListingStatus;
@@ -3432,7 +3428,6 @@ export declare const CommunityListingModel: import("mongoose").Model<{
3432
3428
  payload?: any;
3433
3429
  }, import("mongoose").Document<unknown, {}, import("mongoose").FlatRecord<{
3434
3430
  kind: CommunityListingKind;
3435
- slug: string;
3436
3431
  title: string;
3437
3432
  author: import("mongoose").Types.ObjectId;
3438
3433
  status: CommunityListingStatus;
@@ -3447,7 +3442,6 @@ export declare const CommunityListingModel: import("mongoose").Model<{
3447
3442
  payload?: any;
3448
3443
  }>, {}, import("mongoose").DefaultSchemaOptions> & import("mongoose").FlatRecord<{
3449
3444
  kind: CommunityListingKind;
3450
- slug: string;
3451
3445
  title: string;
3452
3446
  author: import("mongoose").Types.ObjectId;
3453
3447
  status: CommunityListingStatus;
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.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};
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},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","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.79",
4
+ "version": "1.0.80",
5
5
  "private": false,
6
6
  "type": "module",
7
7
  "main": "dist/index.js",