From 2b12bf506fe25badb993724d7d179c4e6197b108 Mon Sep 17 00:00:00 2001 From: "eirk@staff.libraryofcode.org" <52634785+erics118@users.noreply.github.com> Date: Sat, 25 Dec 2021 13:28:17 -0500 Subject: [PATCH 1/6] update Judgement.ts --- models/Judgement.ts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/models/Judgement.ts b/models/Judgement.ts index 933c04d..e0b7a06 100644 --- a/models/Judgement.ts +++ b/models/Judgement.ts @@ -1,6 +1,6 @@ import { prop } from '@typegoose/typegoose'; -enum Severity { +export enum Severity { Low, Medium, High, @@ -10,21 +10,21 @@ export default class Judgement { @prop({ required: true }) public jID: string; - @prop() + @prop({required: true}) public userID: string; @prop({ required: true }) public enteredBy: string; - - @prop() + + @prop({required: true}) public severity: Severity; - @prop() + @prop({required: true}) public date: Date; @prop() - public expires?: Date; + public expires: Date; @prop() - public description?: string; + public description: string; } -- 2.20.1 From 62fc289088426b6500af7d7be8a3f72441652263 Mon Sep 17 00:00:00 2001 From: eirk Date: Sat, 25 Dec 2021 13:37:42 -0500 Subject: [PATCH 2/6] add original models --- models/Customer.ts | 13 ++++++ models/CustomerPortal.ts | 21 +++++++++ models/ExecutiveOrder.ts | 21 +++++++++ models/File.ts | 21 +++++++++ models/Inquiry.ts | 33 ++++++++++++++ models/Member.ts | 43 ++++++++++++++++++ models/Merchant.ts | 24 ++++++++++ models/Moderation.ts | 37 +++++++++++++++ models/Motion.ts | 35 +++++++++++++++ models/Note.ts | 19 ++++++++ models/PagerNumber.ts | 32 +++++++++++++ models/Proclamation.ts | 37 +++++++++++++++ models/Promo.ts | 13 ++++++ models/Rank.ts | 17 +++++++ models/Redirect.ts | 21 +++++++++ models/Resolution.ts | 33 ++++++++++++++ models/SAA.ts | 17 +++++++ models/Score.ts | 95 +++++++++++++++++++++++++++++++++++++++ models/ScoreHistorical.ts | 42 +++++++++++++++++ models/Staff.ts | 27 +++++++++++ models/Stat.ts | 13 ++++++ 21 files changed, 614 insertions(+) create mode 100644 models/Customer.ts create mode 100644 models/CustomerPortal.ts create mode 100644 models/ExecutiveOrder.ts create mode 100644 models/File.ts create mode 100644 models/Inquiry.ts create mode 100644 models/Member.ts create mode 100644 models/Merchant.ts create mode 100644 models/Moderation.ts create mode 100644 models/Motion.ts create mode 100644 models/Note.ts create mode 100644 models/PagerNumber.ts create mode 100644 models/Proclamation.ts create mode 100644 models/Promo.ts create mode 100644 models/Rank.ts create mode 100644 models/Redirect.ts create mode 100644 models/Resolution.ts create mode 100644 models/SAA.ts create mode 100644 models/Score.ts create mode 100644 models/ScoreHistorical.ts create mode 100644 models/Staff.ts create mode 100644 models/Stat.ts diff --git a/models/Customer.ts b/models/Customer.ts new file mode 100644 index 0000000..b7525b2 --- /dev/null +++ b/models/Customer.ts @@ -0,0 +1,13 @@ +import { Document, Schema, model } from 'mongoose'; + +export interface CustomerInterface extends Document { + cusID: string, + userID: string, +} + +const Customer: Schema = new Schema({ + cusID: String, + userID: String, +}); + +export default model('Customer', Customer); diff --git a/models/CustomerPortal.ts b/models/CustomerPortal.ts new file mode 100644 index 0000000..ca96881 --- /dev/null +++ b/models/CustomerPortal.ts @@ -0,0 +1,21 @@ +import { Document, Schema, model } from 'mongoose'; + +export interface CustomerPortalInterface extends Document { + key: string, + username: string, + userID: string, + emailAddress: string, + expiresOn: Date, + used?: boolean, +} + +const CustomerPortal: Schema = new Schema({ + key: String, + username: String, + userID: String, + emailAddress: String, + expiresOn: Date, + used: Boolean, +}); + +export default model('CustomerPortal', CustomerPortal); diff --git a/models/ExecutiveOrder.ts b/models/ExecutiveOrder.ts new file mode 100644 index 0000000..39f7b39 --- /dev/null +++ b/models/ExecutiveOrder.ts @@ -0,0 +1,21 @@ +import { Document, model, Schema } from 'mongoose'; + +export interface ExecutiveOrderInterface extends Document { + issuer: string; + subject: string; + body: string; + at: number; + oID: string; + msg: string; +} + +const ExecutiveOrder = new Schema({ + issuer: { type: String, required: true }, + subject: { type: String, required: true }, + body: { type: String, required: true }, + at: { type: Number, required: true }, + oID: { type: String, required: true, unique: true }, + msg: { type: String, required: true, unique: true }, +}); + +export default model('ExecutiveOrders', ExecutiveOrder); diff --git a/models/File.ts b/models/File.ts new file mode 100644 index 0000000..f2fa685 --- /dev/null +++ b/models/File.ts @@ -0,0 +1,21 @@ +import { Document, Schema, model } from 'mongoose'; + +export interface FileInterface extends Document { + name: string, + identifier: string, + mimeType: string, + data: Buffer, + downloaded: number, + maxDownloads: number, +} + +const File: Schema = new Schema({ + name: String, + identifier: String, + mimeType: String, + data: Buffer, + downloaded: Number, + maxDownloads: Number, +}); + +export default model('File', File); diff --git a/models/Inquiry.ts b/models/Inquiry.ts new file mode 100644 index 0000000..318bcec --- /dev/null +++ b/models/Inquiry.ts @@ -0,0 +1,33 @@ +import { Document, Schema, model } from 'mongoose'; +import { ScoreInterfaceRaw } from '.'; + +export enum InqType { + HARD, + SOFT, +} + +export interface InquiryInterface extends Document { + iid?: string, + userID: string, + /** + * - 0: Hard + * - 1: Soft + */ + type: InqType, + name: string, + reason?: string, + date: Date, + report?: ScoreInterfaceRaw, +} + +const Inquiry: Schema = new Schema({ + iid: String, + userID: String, + type: Number, + name: String, + reason: String, + date: String, + report: Object, +}); + +export default model('Inquiry', Inquiry); diff --git a/models/Member.ts b/models/Member.ts new file mode 100644 index 0000000..2b33d8b --- /dev/null +++ b/models/Member.ts @@ -0,0 +1,43 @@ +import { Document, Schema, model } from 'mongoose'; + +export interface MemberInterface extends Document { + userID: string, + additional?: { + langs: ['js', 'py', 'rb', 'ts', 'rs', 'go', 'cfam', 'csharp', 'swift', 'java', 'kt', 'asm'], + operatingSystems: ['arch', 'deb', 'cent', 'fedora', 'manjaro', 'mdarwin', 'redhat', 'ubuntu', 'win'], + github: string, + gitlab: string, + bio: string, + }, + misc?: { + t3TemporaryExpiration?: { + date: Date, + processed: boolean + previousTier: 1 | 2 | 3 + } + } + x509?: string, + pgp?: string, +} + +const Member: Schema = new Schema({ + userID: String, + additional: { + langs: Array, + operatingSystems: Array, + github: String, + gitlab: String, + bio: String, + }, + misc: { + t3TemporaryExpiration: { + date: Date, + processed: Boolean, + previousTier: Number, + }, + }, + x509: String, + pgp: String, +}); + +export default model('Member', Member); diff --git a/models/Merchant.ts b/models/Merchant.ts new file mode 100644 index 0000000..c78274a --- /dev/null +++ b/models/Merchant.ts @@ -0,0 +1,24 @@ +import { Document, Schema, model } from 'mongoose'; + +export interface MerchantInterface extends Document { + name: string, + key: string, + privileged: boolean, + /** + * type + * - 0: soft + * - 1: hard + */ + type: 0 | 1; + pulls: [{ type: 0 | 1, reason: string, date: Date }], +} + +const Merchant: Schema = new Schema({ + name: String, + key: String, + privileged: Boolean, + type: Number, + pulls: Array, +}); + +export default model('Merchant', Merchant); diff --git a/models/Moderation.ts b/models/Moderation.ts new file mode 100644 index 0000000..e2adc56 --- /dev/null +++ b/models/Moderation.ts @@ -0,0 +1,37 @@ +import { Document, Schema, model } from 'mongoose'; + +export interface ModerationInterface extends Document { + userID: string, + logID: string, + moderatorID: string, + reason: string, + /** + * @field 0 - Warn + * @field 1 - Unmute + * @field 2 - Mute + * @field 3 - Kick + * @field 4 - Unban + * @field 5 - Ban + */ + type: 0 | 1 | 2 | 3 | 4 | 5 + date: Date, + expiration?: { + date: Date, + processed: boolean + } +} + +const Moderation: Schema = new Schema({ + userID: String, + logID: String, + moderatorID: String, + reason: String, + type: Number, + date: Date, + expiration: { + date: Date, + processed: Boolean, + }, +}); + +export default model('Moderation', Moderation); diff --git a/models/Motion.ts b/models/Motion.ts new file mode 100644 index 0000000..e60685a --- /dev/null +++ b/models/Motion.ts @@ -0,0 +1,35 @@ +import { Document, model, Schema } from 'mongoose'; + +export interface MotionInterface extends Document { + issuer: string; + subject: string; + body: string; + at: number; + oID: string; + results?: { + yea: number; + nay: number; + present: number; + absent: number; + }; + processed: boolean; + msg: string; +} + +const Motion = new Schema({ + issuer: { type: String, required: true }, + subject: { type: String, required: true }, + body: { type: String, required: true }, + at: { type: Number, required: true }, + oID: { type: String, required: true, unique: true }, + results: { + yea: Number, + nay: Number, + present: Number, + absent: Number, + }, + processed: Boolean, + msg: { required: true, unique: true, type: String }, +}); + +export default model('Motions', Motion); diff --git a/models/Note.ts b/models/Note.ts new file mode 100644 index 0000000..2793b32 --- /dev/null +++ b/models/Note.ts @@ -0,0 +1,19 @@ +import { Document, Schema, model } from 'mongoose'; + +export interface NoteInterface extends Document { + userID: string, + staffID: string, + date: Date, + category: 'comm' | 'cs' | 'edu' | '', + text: string, +} + +const Note: Schema = new Schema({ + userID: String, + staffID: String, + date: Date, + category: String, + text: String, +}); + +export default model('Note', Note); diff --git a/models/PagerNumber.ts b/models/PagerNumber.ts new file mode 100644 index 0000000..0d0cc16 --- /dev/null +++ b/models/PagerNumber.ts @@ -0,0 +1,32 @@ +import { Document, Schema, model } from 'mongoose'; + +export interface PagerNumberRaw { + num: string, + // This field will be "" if the pager number doesn't belong to an individual user + individualAssignID: string, + emailAddresses: string[], + discordIDs: string[], + receiveEmail: boolean, + receivePhone: boolean, +} + +export interface PagerNumberInterface extends Document { + num: string, + // This field will be "" if the pager number doesn't belong to an individual user + individualAssignID: string, + emailAddresses: string[], + discordIDs: string[], + receiveEmail: boolean, + receivePhone: boolean, +} + +const PagerNumber: Schema = new Schema({ + num: String, + individualAssignID: String, + emailAddresses: Array, + discordIDs: Array, + receiveEmail: Boolean, + receivePhone: Boolean, +}); + +export default model('PagerNumber', PagerNumber); diff --git a/models/Proclamation.ts b/models/Proclamation.ts new file mode 100644 index 0000000..ab1f87d --- /dev/null +++ b/models/Proclamation.ts @@ -0,0 +1,37 @@ +import { Document, model, Schema } from 'mongoose'; + +export interface ProclamationInterface extends Document { + issuer: string; + subject: string; + body: string; + at: number; + oID: string; + results?: { + yea: number; + nay: number; + present: number; + absent: number; + }; + msg: string; + processed?: boolean; + votedDirectors: string[]; +} + +const Proclamation = new Schema({ + issuer: { type: String, required: true }, + subject: { type: String, required: true }, + body: { type: String, required: true }, + at: { type: Number, required: true }, + oID: { type: String, required: true, unique: true }, + results: { + yea: Number, + nay: Number, + present: Number, + absent: Number, + }, + msg: { type: String, required: true, unique: true }, + processed: Boolean, + votedDirectors: { type: Array, required: true }, +}); + +export default model('Proclamations', Proclamation); diff --git a/models/Promo.ts b/models/Promo.ts new file mode 100644 index 0000000..adbe2b0 --- /dev/null +++ b/models/Promo.ts @@ -0,0 +1,13 @@ +import { Document, Schema, model } from 'mongoose'; + +export interface PromoInterface extends Document { + code: string, + pID: string, +} + +const Promo: Schema = new Schema({ + code: String, + pID: String, +}); + +export default model('Promo', Promo); diff --git a/models/Rank.ts b/models/Rank.ts new file mode 100644 index 0000000..ffdf443 --- /dev/null +++ b/models/Rank.ts @@ -0,0 +1,17 @@ +import { Document, Schema, model } from 'mongoose'; + +export interface RankInterface extends Document { + name: string, + roleID: string, + permissions: string[], + description: string, +} + +const Rank: Schema = new Schema({ + name: String, + roleID: String, + permissions: Array, + description: String, +}); + +export default model('Rank', Rank); diff --git a/models/Redirect.ts b/models/Redirect.ts new file mode 100644 index 0000000..f17b77f --- /dev/null +++ b/models/Redirect.ts @@ -0,0 +1,21 @@ +import { Document, Schema, model } from 'mongoose'; + +export interface RedirectInterface extends Document { + key: string, + to: string, + visitedCount: number, +} + +export interface RedirectRaw { + key: string, + to: string, + visitedCount: number, +} + +const Redirect: Schema = new Schema({ + key: String, + to: String, + visitedCount: Number, +}); + +export default model('Redirect', Redirect); diff --git a/models/Resolution.ts b/models/Resolution.ts new file mode 100644 index 0000000..b9f472c --- /dev/null +++ b/models/Resolution.ts @@ -0,0 +1,33 @@ +import { Document, model, Schema } from 'mongoose'; + +export interface ResolutionInterface extends Document { + issuer: string; + subject: string; + body: string; + at: number; + oID: string; + results: { + yea: number; + nay: number; + present: number; + absent: number; + }; + msg: string; +} + +const Resolution = new Schema({ + issuer: { type: String, required: true }, + subject: { type: String, required: true }, + body: { type: String, required: true }, + at: { type: Number, required: true }, + oID: { type: String, required: true, unique: true }, + results: { + yea: Number, + Nay: Number, + present: Number, + absent: Number, + }, + msg: { type: String, required: true, unique: true }, +}); + +export default model('Resolutions', Resolution); diff --git a/models/SAA.ts b/models/SAA.ts new file mode 100644 index 0000000..c489562 --- /dev/null +++ b/models/SAA.ts @@ -0,0 +1,17 @@ +import { Document, Schema, model } from 'mongoose'; + +export interface SAAInterface extends Document { + userID: string, + applicationID: string, + serviceCode: string, + edsToken: string, +} + +const SAA: Schema = new Schema({ + userID: String, + applicationID: String, + serviceCode: String, + edsToken: String, +}); + +export default model('SAA', SAA); diff --git a/models/Score.ts b/models/Score.ts new file mode 100644 index 0000000..96820d2 --- /dev/null +++ b/models/Score.ts @@ -0,0 +1,95 @@ +// Community Score + +import { Document, Schema, model } from 'mongoose'; + +export interface Inquiry { + id?: string, + name: string, + reason: string, + date: Date, + report: ScoreInterfaceRaw, +} + +export interface ScoreInterfaceRaw { + userID: string + /** + * total will be between 800-200 - 0 signfies "No Score", too little information is available or other variable are too low + * - CALCULATION: `(COMBINED SUBSCORES x 5) * 5.13; Math.floor()` + */ + total: number, + /** + * 10 - 55 + */ + activity: number, + /** + * 0 - 54 + */ + roles: number, + /** + * -50 - 2 + * all users start out with 2 moderation points, the number of points decreases for each moderation. + */ + moderation: number, + /** + * -20 - 50 + * processed by CSD + */ + cloudServices: number, + // 0 or 20, 20 points are added if the user is a staff member + staff: number, + other: number, + notify: boolean, + locked: boolean, + inquiries: [ Inquiry ], + softInquiries: [{ name: string, date: Date }], + lastUpdate: Date, + pin: number[], +} + + +export interface ScoreInterface extends Document { + userID: string + total: number, + activity: number, + roles: number, + moderation: number, + cloudServices: number, + staff: number, + other: number, + notify: boolean, + locked: boolean, + inquiries: [ Inquiry ], + softInquiries: [{ name: string, date: Date }], + lastUpdate: Date, + pin: number[], + + // general & media + /* generalMessagesRatio: number, + // programming-support channels and cloud-support + supportMessagesRatio: number, + totalModerations: number, + notes: number, */ +} + +const Score: Schema = new Schema({ + userID: String, + total: Number, + activity: Number, + roles: Number, + moderation: Number, + cloudServices: Number, + staff: Number, + other: Number, + notify: Boolean, + locked: Boolean, + inquiries: Array, + softInquiries: Array, + lastUpdate: Date, + pin: Array, + /* generalMessagesRatio: Number, + supportMessagesRatio: Number, + totalModerations: Number, + notes: Number, */ +}); + +export default model('Score', Score); diff --git a/models/ScoreHistorical.ts b/models/ScoreHistorical.ts new file mode 100644 index 0000000..e768b3e --- /dev/null +++ b/models/ScoreHistorical.ts @@ -0,0 +1,42 @@ +import { Document, Schema, model, Types } from 'mongoose'; + +export interface ScoreHistoricalRaw { + userID: string, + report: { + total: number, + activity: number, + roles: number, + moderation: number, + cloudServices: number, + staff: number, + other: number, + }, + // inquiries: [ Types.ObjectId ], + inquiries: Types.ObjectId[], + date: Date, +} + +export interface ScoreHistoricalInterface extends Document { + userID: string, + report: { + total: number, + activity: number, + roles: number, + moderation: number, + cloudServices: number, + staff: number, + other: number, + }, + // inquiries: [ Types.ObjectId ], + inquiries: Types.ObjectId[], + date: Date +} + +const ScoreHistorical: Schema = new Schema({ + userID: String, + report: Object, + inquiries: Array, + date: Date, +}); + +export default model('ScoreHistorical', ScoreHistorical); diff --git a/models/Staff.ts b/models/Staff.ts new file mode 100644 index 0000000..83c8c2e --- /dev/null +++ b/models/Staff.ts @@ -0,0 +1,27 @@ +import { Document, Schema, model } from 'mongoose'; + +export interface StaffInterface extends Document { + name: string, + userID: string, + title: string, + dept: string, + pn: string[], + emailAddress: string, + extension: string, + acknowledgements: string[], + additionalRoles: string[] +} + +const Staff: Schema = new Schema({ + name: String, + userID: String, + title: String, + dept: String, + pn: Array, + emailAddress: String, + extension: String, + acknowledgements: Array, + additionalRoles: Array, +}); + +export default model('Staff', Staff); diff --git a/models/Stat.ts b/models/Stat.ts new file mode 100644 index 0000000..7109699 --- /dev/null +++ b/models/Stat.ts @@ -0,0 +1,13 @@ +import { Document, Schema, model } from 'mongoose'; + +export interface StatInterface extends Document { + name: 'messages' | 'commands' | 'pages' | 'requests', + value: number, +} + +const Stat: Schema = new Schema({ + name: String, + value: Number, +}); + +export default model('Stat', Stat); -- 2.20.1 From 7f1640d9d4fb309a4bdbba05283478e8b166a301 Mon Sep 17 00:00:00 2001 From: eirk Date: Sat, 25 Dec 2021 13:58:49 -0500 Subject: [PATCH 3/6] add typegoose models --- models/Customer.ts | 18 +- models/CustomerPortal.ts | 38 +-- models/ExecutiveOrder.ts | 38 +-- models/File.ts | 38 +-- models/Inquiry.ts | 49 ++- models/Judgement.ts | 10 +- models/Member.ts | 53 ++-- models/Merchant.ts | 39 ++- models/Moderation.ts | 66 ++--- models/Motion.ts | 53 ++-- models/Note.ts | 35 +-- models/PagerNumber.ts | 48 ++- models/Proclamation.ts | 58 ++-- models/Promo.ts | 18 +- models/Rank.ts | 28 +- models/Redirect.ts | 29 +- models/Resolution.ts | 48 ++- models/SAA.ts | 28 +- models/Score.ts | 136 ++++----- models/ScoreHistorical.ts | 62 ++-- models/Staff.ts | 53 ++-- models/Stat.ts | 18 +- package-lock.json | 608 ++++++++++++++++++++++++++++++++++++++ yarn.lock | 450 ++++++++++++++-------------- 24 files changed, 1259 insertions(+), 762 deletions(-) create mode 100644 package-lock.json diff --git a/models/Customer.ts b/models/Customer.ts index b7525b2..924fe6b 100644 --- a/models/Customer.ts +++ b/models/Customer.ts @@ -1,13 +1,9 @@ -import { Document, Schema, model } from 'mongoose'; +import { prop } from '@typegoose/typegoose'; -export interface CustomerInterface extends Document { - cusID: string, - userID: string, +export default class Customer { + @prop({ required: true }) + public cusID: string; + + @prop({ required: true }) + public userID: string; } - -const Customer: Schema = new Schema({ - cusID: String, - userID: String, -}); - -export default model('Customer', Customer); diff --git a/models/CustomerPortal.ts b/models/CustomerPortal.ts index ca96881..484c1dd 100644 --- a/models/CustomerPortal.ts +++ b/models/CustomerPortal.ts @@ -1,21 +1,21 @@ -import { Document, Schema, model } from 'mongoose'; +import { prop } from '@typegoose/typegoose'; -export interface CustomerPortalInterface extends Document { - key: string, - username: string, - userID: string, - emailAddress: string, - expiresOn: Date, - used?: boolean, +export default class CustomerPortal { + @prop({ required: true }) + public key: string; + + @prop({ required: true }) + public username: string; + + @prop({ required: true }) + public userID: string; + + @prop({ required: true }) + public emailAddress: string; + + @prop({ required: true }) + public expiresOn: Date; + + @prop({ required: true }) + public used: boolean; } - -const CustomerPortal: Schema = new Schema({ - key: String, - username: String, - userID: String, - emailAddress: String, - expiresOn: Date, - used: Boolean, -}); - -export default model('CustomerPortal', CustomerPortal); diff --git a/models/ExecutiveOrder.ts b/models/ExecutiveOrder.ts index 39f7b39..7cefc42 100644 --- a/models/ExecutiveOrder.ts +++ b/models/ExecutiveOrder.ts @@ -1,21 +1,21 @@ -import { Document, model, Schema } from 'mongoose'; +import { prop } from '@typegoose/typegoose'; -export interface ExecutiveOrderInterface extends Document { - issuer: string; - subject: string; - body: string; - at: number; - oID: string; - msg: string; +export default class ExecutiveOrder { + @prop({ required: true }) + public issuer: string; + + @prop({ required: true }) + public subject: string; + + @prop({ required: true }) + public body: string; + + @prop({ required: true }) + public at: number; + + @prop({ required: true, unique: true }) + public oID: string; + + @prop({ required: true, unique: true }) + public msg: string; } - -const ExecutiveOrder = new Schema({ - issuer: { type: String, required: true }, - subject: { type: String, required: true }, - body: { type: String, required: true }, - at: { type: Number, required: true }, - oID: { type: String, required: true, unique: true }, - msg: { type: String, required: true, unique: true }, -}); - -export default model('ExecutiveOrders', ExecutiveOrder); diff --git a/models/File.ts b/models/File.ts index f2fa685..dc90a12 100644 --- a/models/File.ts +++ b/models/File.ts @@ -1,21 +1,21 @@ -import { Document, Schema, model } from 'mongoose'; +import { prop } from '@typegoose/typegoose'; -export interface FileInterface extends Document { - name: string, - identifier: string, - mimeType: string, - data: Buffer, - downloaded: number, - maxDownloads: number, +export default class File { + @prop({ required: true }) + public name: string; + + @prop({ required: true }) + public identifier: string; + + @prop({ required: true }) + public mimeType: string; + + @prop({ required: true }) + public data: Buffer; + + @prop({ required: true }) + public downloaded: number; + + @prop({ required: true }) + public maxDownloads: number; } - -const File: Schema = new Schema({ - name: String, - identifier: String, - mimeType: String, - data: Buffer, - downloaded: Number, - maxDownloads: Number, -}); - -export default model('File', File); diff --git a/models/Inquiry.ts b/models/Inquiry.ts index 318bcec..c159578 100644 --- a/models/Inquiry.ts +++ b/models/Inquiry.ts @@ -1,33 +1,30 @@ -import { Document, Schema, model } from 'mongoose'; -import { ScoreInterfaceRaw } from '.'; +import { prop } from '@typegoose/typegoose'; +import Score from './Score'; export enum InqType { HARD, SOFT, } -export interface InquiryInterface extends Document { - iid?: string, - userID: string, - /** - * - 0: Hard - * - 1: Soft - */ - type: InqType, - name: string, - reason?: string, - date: Date, - report?: ScoreInterfaceRaw, +export default class Inquiry { + @prop({ required: true }) + public iid: string; + + @prop({ required: true }) + public userID: string; + + @prop({ required: true }) + public type: InqType; + + @prop({ required: true }) + public name: string; + + @prop() + public reason: string; + + @prop({ required: true }) + public date: Date; + + @prop() + public report: Score; } - -const Inquiry: Schema = new Schema({ - iid: String, - userID: String, - type: Number, - name: String, - reason: String, - date: String, - report: Object, -}); - -export default model('Inquiry', Inquiry); diff --git a/models/Judgement.ts b/models/Judgement.ts index e0b7a06..350c911 100644 --- a/models/Judgement.ts +++ b/models/Judgement.ts @@ -10,21 +10,21 @@ export default class Judgement { @prop({ required: true }) public jID: string; - @prop({required: true}) + @prop({ required: true }) public userID: string; @prop({ required: true }) public enteredBy: string; - @prop({required: true}) + @prop({ required: true }) public severity: Severity; - @prop({required: true}) + @prop({ required: true }) public date: Date; @prop() public expires: Date; - @prop() - public description: string; + @prop({ required: true }) + public description?: string; } diff --git a/models/Member.ts b/models/Member.ts index 2b33d8b..4a69e63 100644 --- a/models/Member.ts +++ b/models/Member.ts @@ -1,43 +1,32 @@ -import { Document, Schema, model } from 'mongoose'; +import { prop } from '@typegoose/typegoose'; -export interface MemberInterface extends Document { - userID: string, - additional?: { +export type Tier = 1 | 2 | 3; + +export default class Member { + @prop({ required: true }) + public userID: string; + + @prop() + public additional: { langs: ['js', 'py', 'rb', 'ts', 'rs', 'go', 'cfam', 'csharp', 'swift', 'java', 'kt', 'asm'], operatingSystems: ['arch', 'deb', 'cent', 'fedora', 'manjaro', 'mdarwin', 'redhat', 'ubuntu', 'win'], github: string, gitlab: string, bio: string, - }, - misc?: { + }; + + @prop() + public misc: { t3TemporaryExpiration?: { date: Date, processed: boolean - previousTier: 1 | 2 | 3 + previousTier: Tier } - } - x509?: string, - pgp?: string, + }; + + @prop() + public x509: string; + + @prop() + public pgp: string; } - -const Member: Schema = new Schema({ - userID: String, - additional: { - langs: Array, - operatingSystems: Array, - github: String, - gitlab: String, - bio: String, - }, - misc: { - t3TemporaryExpiration: { - date: Date, - processed: Boolean, - previousTier: Number, - }, - }, - x509: String, - pgp: String, -}); - -export default model('Member', Member); diff --git a/models/Merchant.ts b/models/Merchant.ts index c78274a..e07c7f6 100644 --- a/models/Merchant.ts +++ b/models/Merchant.ts @@ -1,24 +1,19 @@ -import { Document, Schema, model } from 'mongoose'; +import { prop } from '@typegoose/typegoose'; +import { InqType } from './Inquiry'; -export interface MerchantInterface extends Document { - name: string, - key: string, - privileged: boolean, - /** - * type - * - 0: soft - * - 1: hard - */ - type: 0 | 1; - pulls: [{ type: 0 | 1, reason: string, date: Date }], +export default class Merchant { + @prop({ required: true }) + public name: string; + + @prop({ required: true }) + public key: string; + + @prop({ required: true }) + public privileged: boolean; + + @prop({ required: true }) + public type: InqType; + + @prop({ required: true }) + public pulls: [{ type: InqType, reason: string, date: Date }]; } - -const Merchant: Schema = new Schema({ - name: String, - key: String, - privileged: Boolean, - type: Number, - pulls: Array, -}); - -export default model('Merchant', Merchant); diff --git a/models/Moderation.ts b/models/Moderation.ts index e2adc56..d7a8b62 100644 --- a/models/Moderation.ts +++ b/models/Moderation.ts @@ -1,37 +1,37 @@ -import { Document, Schema, model } from 'mongoose'; +import { prop } from '@typegoose/typegoose'; -export interface ModerationInterface extends Document { - userID: string, - logID: string, - moderatorID: string, - reason: string, - /** - * @field 0 - Warn - * @field 1 - Unmute - * @field 2 - Mute - * @field 3 - Kick - * @field 4 - Unban - * @field 5 - Ban - */ - type: 0 | 1 | 2 | 3 | 4 | 5 - date: Date, - expiration?: { - date: Date, - processed: boolean +export enum ModType { + Warn, + Unmute, + Mute, + Kick, + Unban, + Ban, +} + +export default class Moderation { + @prop({ required: true }) + public userID: string; + + @prop({ required: true }) + public logID: string; + + @prop({ required: true }) + public moderatorID: string; + + @prop({ required: true }) + public reason: string; + + @prop({ required: true }) + public date: Date; + + @prop({ required: true }) + public type: ModType; + + @prop() + public expiration: { + date: Date; + processed: boolean; } } -const Moderation: Schema = new Schema({ - userID: String, - logID: String, - moderatorID: String, - reason: String, - type: Number, - date: Date, - expiration: { - date: Date, - processed: Boolean, - }, -}); - -export default model('Moderation', Moderation); diff --git a/models/Motion.ts b/models/Motion.ts index e60685a..3b42b5a 100644 --- a/models/Motion.ts +++ b/models/Motion.ts @@ -1,35 +1,32 @@ -import { Document, model, Schema } from 'mongoose'; +import { prop } from '@typegoose/typegoose'; -export interface MotionInterface extends Document { - issuer: string; - subject: string; - body: string; - at: number; - oID: string; - results?: { +export default class Motion { + @prop({ required: true }) + public issuer: string; + + @prop({ required: true }) + public subject: string; + + @prop({ required: true }) + public body: string; + + @prop({ required: true }) + public at: number; + + @prop({ required: true, unique: true }) + public oID: string; + + @prop() + public results: { yea: number; nay: number; present: number; absent: number; }; - processed: boolean; - msg: string; + + @prop({ required: true }) + public processed: boolean; + + @prop({ required: true, unique: true }) + public msg: string; } - -const Motion = new Schema({ - issuer: { type: String, required: true }, - subject: { type: String, required: true }, - body: { type: String, required: true }, - at: { type: Number, required: true }, - oID: { type: String, required: true, unique: true }, - results: { - yea: Number, - nay: Number, - present: Number, - absent: Number, - }, - processed: Boolean, - msg: { required: true, unique: true, type: String }, -}); - -export default model('Motions', Motion); diff --git a/models/Note.ts b/models/Note.ts index 2793b32..9735aa3 100644 --- a/models/Note.ts +++ b/models/Note.ts @@ -1,19 +1,20 @@ -import { Document, Schema, model } from 'mongoose'; +import { prop } from '@typegoose/typegoose'; -export interface NoteInterface extends Document { - userID: string, - staffID: string, - date: Date, - category: 'comm' | 'cs' | 'edu' | '', - text: string, +export type NoteType = 'comm' | 'cs' | 'edu' | ''; + +export default class Note { + @prop({ required: true }) + userID: string; + + @prop({ required: true }) + staffID: string; + + @prop({ required: true }) + date: Date; + + @prop({ required: true }) + category: NoteType; + + @prop({ required: true }) + text: string; } - -const Note: Schema = new Schema({ - userID: String, - staffID: String, - date: Date, - category: String, - text: String, -}); - -export default model('Note', Note); diff --git a/models/PagerNumber.ts b/models/PagerNumber.ts index 0d0cc16..63d860c 100644 --- a/models/PagerNumber.ts +++ b/models/PagerNumber.ts @@ -1,32 +1,22 @@ -import { Document, Schema, model } from 'mongoose'; +import { prop } from '@typegoose/typegoose'; -export interface PagerNumberRaw { - num: string, - // This field will be "" if the pager number doesn't belong to an individual user - individualAssignID: string, - emailAddresses: string[], - discordIDs: string[], - receiveEmail: boolean, - receivePhone: boolean, +export default class PagerNumberRaw { + @prop({ required: true }) + public num: string; + + @prop({ required: true }) + public individualAssignID: string; + + @prop({ required: true }) + public emailAddresses: string[]; + + @prop({ required: true }) + public discordIDs: string[]; + + @prop({ required: true }) + public receiveEmail: boolean; + + @prop({ required: true }) + public receivePhone: boolean; } -export interface PagerNumberInterface extends Document { - num: string, - // This field will be "" if the pager number doesn't belong to an individual user - individualAssignID: string, - emailAddresses: string[], - discordIDs: string[], - receiveEmail: boolean, - receivePhone: boolean, -} - -const PagerNumber: Schema = new Schema({ - num: String, - individualAssignID: String, - emailAddresses: Array, - discordIDs: Array, - receiveEmail: Boolean, - receivePhone: Boolean, -}); - -export default model('PagerNumber', PagerNumber); diff --git a/models/Proclamation.ts b/models/Proclamation.ts index ab1f87d..f5833ff 100644 --- a/models/Proclamation.ts +++ b/models/Proclamation.ts @@ -1,37 +1,35 @@ -import { Document, model, Schema } from 'mongoose'; +import { prop } from '@typegoose/typegoose'; -export interface ProclamationInterface extends Document { - issuer: string; - subject: string; - body: string; - at: number; - oID: string; - results?: { +export default class Proclamation { + @prop({ required: true }) + public issuer: string; + + @prop({ required: true }) + public subject: string; + + @prop({ required: true }) + public body: string; + + @prop({ required: true }) + public at: number; + + @prop({ required: true, unique: true }) + public oID: string; + + @prop() + public results: { yea: number; nay: number; present: number; absent: number; }; - msg: string; - processed?: boolean; - votedDirectors: string[]; + + @prop({ required: true, unique: true }) + public msg: string; + + @prop({ required: true }) + public processed: boolean; + + @prop({ required: true }) + public votedDirectors: string[]; } - -const Proclamation = new Schema({ - issuer: { type: String, required: true }, - subject: { type: String, required: true }, - body: { type: String, required: true }, - at: { type: Number, required: true }, - oID: { type: String, required: true, unique: true }, - results: { - yea: Number, - nay: Number, - present: Number, - absent: Number, - }, - msg: { type: String, required: true, unique: true }, - processed: Boolean, - votedDirectors: { type: Array, required: true }, -}); - -export default model('Proclamations', Proclamation); diff --git a/models/Promo.ts b/models/Promo.ts index adbe2b0..ce4bf80 100644 --- a/models/Promo.ts +++ b/models/Promo.ts @@ -1,13 +1,9 @@ -import { Document, Schema, model } from 'mongoose'; +import { prop } from '@typegoose/typegoose'; -export interface PromoInterface extends Document { - code: string, - pID: string, +export default class Promo { + @prop({ required: true }) + public code: string; + + @prop({ required: true }) + public pID: string; } - -const Promo: Schema = new Schema({ - code: String, - pID: String, -}); - -export default model('Promo', Promo); diff --git a/models/Rank.ts b/models/Rank.ts index ffdf443..783e8bb 100644 --- a/models/Rank.ts +++ b/models/Rank.ts @@ -1,17 +1,15 @@ -import { Document, Schema, model } from 'mongoose'; +import { prop } from '@typegoose/typegoose'; -export interface RankInterface extends Document { - name: string, - roleID: string, - permissions: string[], - description: string, +export default class Rank { + @prop({ required: true }) + public name: string; + + @prop({ required: true }) + public roleID: string; + + @prop({ required: true }) + public permissions: string[]; + + @prop({ required: true }) + public description: string; } - -const Rank: Schema = new Schema({ - name: String, - roleID: String, - permissions: Array, - description: String, -}); - -export default model('Rank', Rank); diff --git a/models/Redirect.ts b/models/Redirect.ts index f17b77f..45acf74 100644 --- a/models/Redirect.ts +++ b/models/Redirect.ts @@ -1,21 +1,12 @@ -import { Document, Schema, model } from 'mongoose'; +import { prop } from '@typegoose/typegoose'; -export interface RedirectInterface extends Document { - key: string, - to: string, - visitedCount: number, +export default class Redirect { + @prop({ required: true }) + public key: string; + + @prop({ required: true }) + public to: string; + + @prop({ required: true }) + public visitedCount: number; } - -export interface RedirectRaw { - key: string, - to: string, - visitedCount: number, -} - -const Redirect: Schema = new Schema({ - key: String, - to: String, - visitedCount: Number, -}); - -export default model('Redirect', Redirect); diff --git a/models/Resolution.ts b/models/Resolution.ts index b9f472c..52ac697 100644 --- a/models/Resolution.ts +++ b/models/Resolution.ts @@ -1,33 +1,29 @@ -import { Document, model, Schema } from 'mongoose'; +import { prop } from '@typegoose/typegoose'; -export interface ResolutionInterface extends Document { - issuer: string; - subject: string; - body: string; - at: number; - oID: string; - results: { +export default class Resolution { + @prop({ required: true }) + public issuer: string; + + @prop({ required: true }) + public subject: string; + + @prop({ required: true }) + public body: string; + + @prop({ required: true }) + public at: number; + + @prop({ required: true, unique: true }) + public oID: string; + + @prop() + public results: { yea: number; nay: number; present: number; absent: number; }; - msg: string; + + @prop({ required: true, unique: true }) + public msg: string; } - -const Resolution = new Schema({ - issuer: { type: String, required: true }, - subject: { type: String, required: true }, - body: { type: String, required: true }, - at: { type: Number, required: true }, - oID: { type: String, required: true, unique: true }, - results: { - yea: Number, - Nay: Number, - present: Number, - absent: Number, - }, - msg: { type: String, required: true, unique: true }, -}); - -export default model('Resolutions', Resolution); diff --git a/models/SAA.ts b/models/SAA.ts index c489562..1116db4 100644 --- a/models/SAA.ts +++ b/models/SAA.ts @@ -1,17 +1,15 @@ -import { Document, Schema, model } from 'mongoose'; +import { prop } from '@typegoose/typegoose'; -export interface SAAInterface extends Document { - userID: string, - applicationID: string, - serviceCode: string, - edsToken: string, +export default class SAA { + @prop({ required: true }) + public userID: string; + + @prop({ required: true }) + public applicationID: string; + + @prop({ required: true }) + public serviceCode: string; + + @prop({ required: true }) + public edsToken: string; } - -const SAA: Schema = new Schema({ - userID: String, - applicationID: String, - serviceCode: String, - edsToken: String, -}); - -export default model('SAA', SAA); diff --git a/models/Score.ts b/models/Score.ts index 96820d2..3b7d866 100644 --- a/models/Score.ts +++ b/models/Score.ts @@ -1,95 +1,61 @@ -// Community Score - -import { Document, Schema, model } from 'mongoose'; +import { prop } from '@typegoose/typegoose'; +// dupe, but the model format is different export interface Inquiry { id?: string, name: string, reason: string, date: Date, - report: ScoreInterfaceRaw, + report: Score, } -export interface ScoreInterfaceRaw { - userID: string - /** - * total will be between 800-200 - 0 signfies "No Score", too little information is available or other variable are too low - * - CALCULATION: `(COMBINED SUBSCORES x 5) * 5.13; Math.floor()` - */ - total: number, - /** - * 10 - 55 - */ - activity: number, - /** - * 0 - 54 - */ - roles: number, - /** - * -50 - 2 - * all users start out with 2 moderation points, the number of points decreases for each moderation. - */ - moderation: number, - /** - * -20 - 50 - * processed by CSD - */ - cloudServices: number, +export default class Score { + @prop({ required: true }) + public userID: string; + + // total will be between 800-200 - 0 signfies "No Score", too little information is available or other variable are too low + // calculation: Math.floor(COMBINED_SUBSCORES * 5 * 5.13)` + @prop({ required: true }) + public total: number; + + // 10 - 55 + @prop({ required: true }) + public activity: number; + + // 0 - 54 + @prop({ required: true }) + public publicroles: number; + + // -50 - 2 + @prop({ required: true }) + public moderation: number; + + // -20 - 50 + @prop({ required: true }) + public cloudServices: number; + // 0 or 20, 20 points are added if the user is a staff member - staff: number, - other: number, - notify: boolean, - locked: boolean, - inquiries: [ Inquiry ], - softInquiries: [{ name: string, date: Date }], - lastUpdate: Date, - pin: number[], + @prop({ required: true }) + public staff: number; + + @prop({ required: true }) + public other: number; + + @prop({ required: true }) + public notify: boolean; + + @prop({ required: true }) + public locked: boolean; + + @prop({ required: true }) + public inquiries: [Inquiry]; + + @prop({ required: true }) + public softInquiries: [{ name: string, date: Date }]; + + @prop({ required: true }) + public lastUpdate: Date; + + @prop({ required: true }) + public pin: number[]; } - - -export interface ScoreInterface extends Document { - userID: string - total: number, - activity: number, - roles: number, - moderation: number, - cloudServices: number, - staff: number, - other: number, - notify: boolean, - locked: boolean, - inquiries: [ Inquiry ], - softInquiries: [{ name: string, date: Date }], - lastUpdate: Date, - pin: number[], - - // general & media - /* generalMessagesRatio: number, - // programming-support channels and cloud-support - supportMessagesRatio: number, - totalModerations: number, - notes: number, */ -} - -const Score: Schema = new Schema({ - userID: String, - total: Number, - activity: Number, - roles: Number, - moderation: Number, - cloudServices: Number, - staff: Number, - other: Number, - notify: Boolean, - locked: Boolean, - inquiries: Array, - softInquiries: Array, - lastUpdate: Date, - pin: Array, - /* generalMessagesRatio: Number, - supportMessagesRatio: Number, - totalModerations: Number, - notes: Number, */ -}); - -export default model('Score', Score); diff --git a/models/ScoreHistorical.ts b/models/ScoreHistorical.ts index e768b3e..b33a1c5 100644 --- a/models/ScoreHistorical.ts +++ b/models/ScoreHistorical.ts @@ -1,42 +1,24 @@ -import { Document, Schema, model, Types } from 'mongoose'; +import { prop } from '@typegoose/typegoose' -export interface ScoreHistoricalRaw { - userID: string, - report: { - total: number, - activity: number, - roles: number, - moderation: number, - cloudServices: number, - staff: number, - other: number, - }, - // inquiries: [ Types.ObjectId ], - inquiries: Types.ObjectId[], - date: Date, +export default class ScoreHistorical { + @prop({ required: true }) + public userID: string; + + @prop({ required: true }) + public report: { + total: number; + activity: number; + roles: number; + moderation: number; + cloudServices: number; + staff: number; + other: number; + }; + + // error with Types.ObjectId[] + @prop({ required: true }) + public inquiries: Types.ObjectId[]; + + @prop({ required: true }) + public date: Date; } - -export interface ScoreHistoricalInterface extends Document { - userID: string, - report: { - total: number, - activity: number, - roles: number, - moderation: number, - cloudServices: number, - staff: number, - other: number, - }, - // inquiries: [ Types.ObjectId ], - inquiries: Types.ObjectId[], - date: Date -} - -const ScoreHistorical: Schema = new Schema({ - userID: String, - report: Object, - inquiries: Array, - date: Date, -}); - -export default model('ScoreHistorical', ScoreHistorical); diff --git a/models/Staff.ts b/models/Staff.ts index 83c8c2e..57e2a01 100644 --- a/models/Staff.ts +++ b/models/Staff.ts @@ -1,27 +1,30 @@ -import { Document, Schema, model } from 'mongoose'; +import { prop } from '@typegoose/typegoose'; -export interface StaffInterface extends Document { - name: string, - userID: string, - title: string, - dept: string, - pn: string[], - emailAddress: string, - extension: string, - acknowledgements: string[], - additionalRoles: string[] +export default class Staff { + @prop({ required: true }) + public name: string; + + @prop({ required: true }) + public userID: string; + + @prop({ required: true }) + public title: string; + + @prop({ required: true }) + public dept: string; + + @prop({ required: true }) + public pn: string[]; + + @prop({ required: true }) + public emailAddress: string; + + @prop({ required: true }) + public extension: string; + + @prop({ required: true }) + public acknowledgements: string[]; + + @prop({ required: true }) + public additionalRoles: string[]; } - -const Staff: Schema = new Schema({ - name: String, - userID: String, - title: String, - dept: String, - pn: Array, - emailAddress: String, - extension: String, - acknowledgements: Array, - additionalRoles: Array, -}); - -export default model('Staff', Staff); diff --git a/models/Stat.ts b/models/Stat.ts index 7109699..be21ec8 100644 --- a/models/Stat.ts +++ b/models/Stat.ts @@ -1,13 +1,9 @@ -import { Document, Schema, model } from 'mongoose'; +import { prop } from '@typegoose/typegoose'; -export interface StatInterface extends Document { - name: 'messages' | 'commands' | 'pages' | 'requests', - value: number, +export default class Stat { + @prop({ required: true }) + public name: 'messages' | 'commands' | 'pages' | 'requests'; + + @prop({ required: true }) + public value: number; } - -const Stat: Schema = new Schema({ - name: String, - value: Number, -}); - -export default model('Stat', Stat); diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..03d7bc1 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,608 @@ +{ + "name": "cr-db", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "cr-db", + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "@typegoose/typegoose": "^9.4.0", + "mongoose": "^6.1.3" + } + }, + "node_modules/@typegoose/typegoose": { + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/@typegoose/typegoose/-/typegoose-9.4.0.tgz", + "integrity": "sha512-Jazwurq+RI2M4igLioQezQGb2ZGwZuhE4wPpwllez+rnVc9kSWmrc0Iuc9qWfdN8cCKed6Hy4UxJRwPYqOrgHg==", + "dependencies": { + "lodash": "^4.17.20", + "loglevel": "^1.8.0", + "reflect-metadata": "^0.1.13", + "semver": "^7.3.2", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=12.22.0" + }, + "peerDependencies": { + "mongoose": "~6.1.3" + } + }, + "node_modules/@types/node": { + "version": "17.0.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.4.tgz", + "integrity": "sha512-6xwbrW4JJiJLgF+zNypN5wr2ykM9/jHcL7rQ8fZe2vuftggjzZeRSM4OwRc6Xk8qWjwJ99qVHo/JgOGmomWRog==" + }, + "node_modules/@types/webidl-conversions": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-6.1.1.tgz", + "integrity": "sha512-XAahCdThVuCFDQLT7R7Pk/vqeObFNL3YqRyFZg+AqAP/W1/w3xHaIxuW7WszQqTbIBOPRcItYJIou3i/mppu3Q==" + }, + "node_modules/@types/whatwg-url": { + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-8.2.1.tgz", + "integrity": "sha512-2YubE1sjj5ifxievI5Ge1sckb9k/Er66HyR2c+3+I6VDUUg1TLPdYYTEbQ+DjRkS4nTxMJhgWfSfMRD2sl2EYQ==", + "dependencies": { + "@types/node": "*", + "@types/webidl-conversions": "*" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/bson": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/bson/-/bson-4.6.0.tgz", + "integrity": "sha512-8jw1NU1hglS+Da1jDOUYuNcBJ4cNHCFIqzlwoFNnsTOg2R/ox0aTYcTiBN4dzRa9q7Cvy6XErh3L8ReTEb9AQQ==", + "dependencies": { + "buffer": "^5.6.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/debug": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/denque": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/denque/-/denque-2.0.1.tgz", + "integrity": "sha512-tfiWc6BQLXNLpNiR5iGd0Ocu3P3VpxfzFiqubLgMfhfOw9WyvgJBd46CClNn9k3qfbjvT//0cf7AlYRX/OslMQ==", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/kareem": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.2.tgz", + "integrity": "sha512-STHz9P7X2L4Kwn72fA4rGyqyXdmrMSdxqHx9IXon/FXluXieaFA6KJ2upcHAHxQPQ0LeM/OjLrhFxifHewOALQ==" + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/loglevel": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.8.0.tgz", + "integrity": "sha512-G6A/nJLRgWOuuwdNuA6koovfEV1YpqqAG4pRUlFaz3jj2QNZ8M4vBqnVA+HBTmU/AMNUtlOsMmSpF6NyOjztbA==", + "engines": { + "node": ">= 0.6.0" + }, + "funding": { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/loglevel" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/memory-pager": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", + "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", + "optional": true + }, + "node_modules/mongodb": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.2.2.tgz", + "integrity": "sha512-zt8rCTnTKyMQppyt63qMnrLM5dbADgUk18ORPF1XbtHLIYCyc9hattaYHi0pqMvNxDpgGgUofSVzS+UQErgTug==", + "dependencies": { + "bson": "^4.6.0", + "denque": "^2.0.1", + "mongodb-connection-string-url": "^2.3.2" + }, + "engines": { + "node": ">=12.9.0" + }, + "optionalDependencies": { + "saslprep": "^1.0.3" + } + }, + "node_modules/mongodb-connection-string-url": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.4.1.tgz", + "integrity": "sha512-d5Kd2bVsKcSA7YI/yo57fSTtMwRQdFkvc5IZwod1RRxJtECeWPPSo7zqcUGJELifRA//Igs4spVtYAmvFCatug==", + "dependencies": { + "@types/whatwg-url": "^8.2.1", + "whatwg-url": "^11.0.0" + } + }, + "node_modules/mongoose": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.1.3.tgz", + "integrity": "sha512-EK3IBmQcIZEhnX3HQYge82hF0ukAnrxnJovBUFwAEkoe3SZ3VJb2k1eMF4MOKEo5mF/h3auxzKJhItaXc3dfmg==", + "dependencies": { + "bson": "^4.2.2", + "kareem": "2.3.2", + "mongodb": "4.2.2", + "mpath": "0.8.4", + "mquery": "4.0.0", + "ms": "2.1.2", + "regexp-clone": "1.0.0", + "sift": "13.5.2", + "sliced": "1.0.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mongoose" + } + }, + "node_modules/mpath": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.8.4.tgz", + "integrity": "sha512-DTxNZomBcTWlrMW76jy1wvV37X/cNNxPW1y2Jzd4DZkAaC5ZGsm8bfGfNOthcDuRJujXLqiuS6o3Tpy0JEoh7g==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mquery": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mquery/-/mquery-4.0.0.tgz", + "integrity": "sha512-nGjm89lHja+T/b8cybAby6H0YgA4qYC/lx6UlwvHGqvTq8bDaNeCwl1sY8uRELrNbVWJzIihxVd+vphGGn1vBw==", + "dependencies": { + "debug": "4.x", + "regexp-clone": "^1.0.0", + "sliced": "1.0.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/reflect-metadata": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", + "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" + }, + "node_modules/regexp-clone": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-1.0.0.tgz", + "integrity": "sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw==" + }, + "node_modules/saslprep": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz", + "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==", + "optional": true, + "dependencies": { + "sparse-bitfield": "^3.0.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sift": { + "version": "13.5.2", + "resolved": "https://registry.npmjs.org/sift/-/sift-13.5.2.tgz", + "integrity": "sha512-+gxdEOMA2J+AI+fVsCqeNn7Tgx3M9ZN9jdi95939l1IJ8cZsqS8sqpJyOkic2SJk+1+98Uwryt/gL6XDaV+UZA==" + }, + "node_modules/sliced": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz", + "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=" + }, + "node_modules/sparse-bitfield": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", + "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=", + "optional": true, + "dependencies": { + "memory-pager": "^1.0.2" + } + }, + "node_modules/tr46": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + }, + "node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-url": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", + "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", + "dependencies": { + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + }, + "dependencies": { + "@typegoose/typegoose": { + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/@typegoose/typegoose/-/typegoose-9.4.0.tgz", + "integrity": "sha512-Jazwurq+RI2M4igLioQezQGb2ZGwZuhE4wPpwllez+rnVc9kSWmrc0Iuc9qWfdN8cCKed6Hy4UxJRwPYqOrgHg==", + "requires": { + "lodash": "^4.17.20", + "loglevel": "^1.8.0", + "reflect-metadata": "^0.1.13", + "semver": "^7.3.2", + "tslib": "^2.3.1" + } + }, + "@types/node": { + "version": "17.0.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.4.tgz", + "integrity": "sha512-6xwbrW4JJiJLgF+zNypN5wr2ykM9/jHcL7rQ8fZe2vuftggjzZeRSM4OwRc6Xk8qWjwJ99qVHo/JgOGmomWRog==" + }, + "@types/webidl-conversions": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-6.1.1.tgz", + "integrity": "sha512-XAahCdThVuCFDQLT7R7Pk/vqeObFNL3YqRyFZg+AqAP/W1/w3xHaIxuW7WszQqTbIBOPRcItYJIou3i/mppu3Q==" + }, + "@types/whatwg-url": { + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-8.2.1.tgz", + "integrity": "sha512-2YubE1sjj5ifxievI5Ge1sckb9k/Er66HyR2c+3+I6VDUUg1TLPdYYTEbQ+DjRkS4nTxMJhgWfSfMRD2sl2EYQ==", + "requires": { + "@types/node": "*", + "@types/webidl-conversions": "*" + } + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, + "bson": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/bson/-/bson-4.6.0.tgz", + "integrity": "sha512-8jw1NU1hglS+Da1jDOUYuNcBJ4cNHCFIqzlwoFNnsTOg2R/ox0aTYcTiBN4dzRa9q7Cvy6XErh3L8ReTEb9AQQ==", + "requires": { + "buffer": "^5.6.0" + } + }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "debug": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "requires": { + "ms": "2.1.2" + } + }, + "denque": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/denque/-/denque-2.0.1.tgz", + "integrity": "sha512-tfiWc6BQLXNLpNiR5iGd0Ocu3P3VpxfzFiqubLgMfhfOw9WyvgJBd46CClNn9k3qfbjvT//0cf7AlYRX/OslMQ==" + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, + "kareem": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.2.tgz", + "integrity": "sha512-STHz9P7X2L4Kwn72fA4rGyqyXdmrMSdxqHx9IXon/FXluXieaFA6KJ2upcHAHxQPQ0LeM/OjLrhFxifHewOALQ==" + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "loglevel": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.8.0.tgz", + "integrity": "sha512-G6A/nJLRgWOuuwdNuA6koovfEV1YpqqAG4pRUlFaz3jj2QNZ8M4vBqnVA+HBTmU/AMNUtlOsMmSpF6NyOjztbA==" + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } + }, + "memory-pager": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", + "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", + "optional": true + }, + "mongodb": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.2.2.tgz", + "integrity": "sha512-zt8rCTnTKyMQppyt63qMnrLM5dbADgUk18ORPF1XbtHLIYCyc9hattaYHi0pqMvNxDpgGgUofSVzS+UQErgTug==", + "requires": { + "bson": "^4.6.0", + "denque": "^2.0.1", + "mongodb-connection-string-url": "^2.3.2", + "saslprep": "^1.0.3" + } + }, + "mongodb-connection-string-url": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.4.1.tgz", + "integrity": "sha512-d5Kd2bVsKcSA7YI/yo57fSTtMwRQdFkvc5IZwod1RRxJtECeWPPSo7zqcUGJELifRA//Igs4spVtYAmvFCatug==", + "requires": { + "@types/whatwg-url": "^8.2.1", + "whatwg-url": "^11.0.0" + } + }, + "mongoose": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.1.3.tgz", + "integrity": "sha512-EK3IBmQcIZEhnX3HQYge82hF0ukAnrxnJovBUFwAEkoe3SZ3VJb2k1eMF4MOKEo5mF/h3auxzKJhItaXc3dfmg==", + "requires": { + "bson": "^4.2.2", + "kareem": "2.3.2", + "mongodb": "4.2.2", + "mpath": "0.8.4", + "mquery": "4.0.0", + "ms": "2.1.2", + "regexp-clone": "1.0.0", + "sift": "13.5.2", + "sliced": "1.0.1" + } + }, + "mpath": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.8.4.tgz", + "integrity": "sha512-DTxNZomBcTWlrMW76jy1wvV37X/cNNxPW1y2Jzd4DZkAaC5ZGsm8bfGfNOthcDuRJujXLqiuS6o3Tpy0JEoh7g==" + }, + "mquery": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mquery/-/mquery-4.0.0.tgz", + "integrity": "sha512-nGjm89lHja+T/b8cybAby6H0YgA4qYC/lx6UlwvHGqvTq8bDaNeCwl1sY8uRELrNbVWJzIihxVd+vphGGn1vBw==", + "requires": { + "debug": "4.x", + "regexp-clone": "^1.0.0", + "sliced": "1.0.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + }, + "reflect-metadata": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", + "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" + }, + "regexp-clone": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-1.0.0.tgz", + "integrity": "sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw==" + }, + "saslprep": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz", + "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==", + "optional": true, + "requires": { + "sparse-bitfield": "^3.0.3" + } + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "requires": { + "lru-cache": "^6.0.0" + } + }, + "sift": { + "version": "13.5.2", + "resolved": "https://registry.npmjs.org/sift/-/sift-13.5.2.tgz", + "integrity": "sha512-+gxdEOMA2J+AI+fVsCqeNn7Tgx3M9ZN9jdi95939l1IJ8cZsqS8sqpJyOkic2SJk+1+98Uwryt/gL6XDaV+UZA==" + }, + "sliced": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz", + "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=" + }, + "sparse-bitfield": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", + "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=", + "optional": true, + "requires": { + "memory-pager": "^1.0.2" + } + }, + "tr46": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "requires": { + "punycode": "^2.1.1" + } + }, + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + }, + "webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==" + }, + "whatwg-url": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", + "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", + "requires": { + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } +} diff --git a/yarn.lock b/yarn.lock index 86b0b65..85c171c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1,225 +1,225 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@typegoose/typegoose@^9.4.0": - version "9.4.0" - resolved "https://registry.yarnpkg.com/@typegoose/typegoose/-/typegoose-9.4.0.tgz#7c44a2ed54c83c59a07bf86ca7d1088caf1189ac" - integrity sha512-Jazwurq+RI2M4igLioQezQGb2ZGwZuhE4wPpwllez+rnVc9kSWmrc0Iuc9qWfdN8cCKed6Hy4UxJRwPYqOrgHg== - dependencies: - lodash "^4.17.20" - loglevel "^1.8.0" - reflect-metadata "^0.1.13" - semver "^7.3.2" - tslib "^2.3.1" - -"@types/node@*": - version "17.0.4" - resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.4.tgz#fec0ce0526abb6062fd206d72a642811b887a111" - integrity sha512-6xwbrW4JJiJLgF+zNypN5wr2ykM9/jHcL7rQ8fZe2vuftggjzZeRSM4OwRc6Xk8qWjwJ99qVHo/JgOGmomWRog== - -"@types/webidl-conversions@*": - version "6.1.1" - resolved "https://registry.yarnpkg.com/@types/webidl-conversions/-/webidl-conversions-6.1.1.tgz#e33bc8ea812a01f63f90481c666334844b12a09e" - integrity sha512-XAahCdThVuCFDQLT7R7Pk/vqeObFNL3YqRyFZg+AqAP/W1/w3xHaIxuW7WszQqTbIBOPRcItYJIou3i/mppu3Q== - -"@types/whatwg-url@^8.2.1": - version "8.2.1" - resolved "https://registry.yarnpkg.com/@types/whatwg-url/-/whatwg-url-8.2.1.tgz#f1aac222dab7c59e011663a0cb0a3117b2ef05d4" - integrity sha512-2YubE1sjj5ifxievI5Ge1sckb9k/Er66HyR2c+3+I6VDUUg1TLPdYYTEbQ+DjRkS4nTxMJhgWfSfMRD2sl2EYQ== - dependencies: - "@types/node" "*" - "@types/webidl-conversions" "*" - -base64-js@^1.3.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -bson@^4.2.2, bson@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/bson/-/bson-4.6.0.tgz#15c3b39ba3940c3d915a0c44d51459f4b4fbf1b2" - integrity sha512-8jw1NU1hglS+Da1jDOUYuNcBJ4cNHCFIqzlwoFNnsTOg2R/ox0aTYcTiBN4dzRa9q7Cvy6XErh3L8ReTEb9AQQ== - dependencies: - buffer "^5.6.0" - -buffer@^5.6.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" - integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.1.13" - -debug@4.x: - version "4.3.3" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" - integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== - dependencies: - ms "2.1.2" - -denque@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/denque/-/denque-2.0.1.tgz#bcef4c1b80dc32efe97515744f21a4229ab8934a" - integrity sha512-tfiWc6BQLXNLpNiR5iGd0Ocu3P3VpxfzFiqubLgMfhfOw9WyvgJBd46CClNn9k3qfbjvT//0cf7AlYRX/OslMQ== - -ieee754@^1.1.13: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -kareem@2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/kareem/-/kareem-2.3.2.tgz#78c4508894985b8d38a0dc15e1a8e11078f2ca93" - integrity sha512-STHz9P7X2L4Kwn72fA4rGyqyXdmrMSdxqHx9IXon/FXluXieaFA6KJ2upcHAHxQPQ0LeM/OjLrhFxifHewOALQ== - -lodash@^4.17.20: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -loglevel@^1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.8.0.tgz#e7ec73a57e1e7b419cb6c6ac06bf050b67356114" - integrity sha512-G6A/nJLRgWOuuwdNuA6koovfEV1YpqqAG4pRUlFaz3jj2QNZ8M4vBqnVA+HBTmU/AMNUtlOsMmSpF6NyOjztbA== - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - -memory-pager@^1.0.2: - version "1.5.0" - resolved "https://registry.yarnpkg.com/memory-pager/-/memory-pager-1.5.0.tgz#d8751655d22d384682741c972f2c3d6dfa3e66b5" - integrity sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg== - -mongodb-connection-string-url@^2.3.2: - version "2.4.1" - resolved "https://registry.yarnpkg.com/mongodb-connection-string-url/-/mongodb-connection-string-url-2.4.1.tgz#6b3c6c40133a0ad059fe9a0abda64b2a1cb4e8b4" - integrity sha512-d5Kd2bVsKcSA7YI/yo57fSTtMwRQdFkvc5IZwod1RRxJtECeWPPSo7zqcUGJELifRA//Igs4spVtYAmvFCatug== - dependencies: - "@types/whatwg-url" "^8.2.1" - whatwg-url "^11.0.0" - -mongodb@4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/mongodb/-/mongodb-4.2.2.tgz#cd70568bd96003877e35358ad17a0c5de35c6dfd" - integrity sha512-zt8rCTnTKyMQppyt63qMnrLM5dbADgUk18ORPF1XbtHLIYCyc9hattaYHi0pqMvNxDpgGgUofSVzS+UQErgTug== - dependencies: - bson "^4.6.0" - denque "^2.0.1" - mongodb-connection-string-url "^2.3.2" - optionalDependencies: - saslprep "^1.0.3" - -mongoose@^6.1.3: - version "6.1.3" - resolved "https://registry.yarnpkg.com/mongoose/-/mongoose-6.1.3.tgz#9534b39ecbb7a6a9e1b9108defb1345064080416" - integrity sha512-EK3IBmQcIZEhnX3HQYge82hF0ukAnrxnJovBUFwAEkoe3SZ3VJb2k1eMF4MOKEo5mF/h3auxzKJhItaXc3dfmg== - dependencies: - bson "^4.2.2" - kareem "2.3.2" - mongodb "4.2.2" - mpath "0.8.4" - mquery "4.0.0" - ms "2.1.2" - regexp-clone "1.0.0" - sift "13.5.2" - sliced "1.0.1" - -mpath@0.8.4: - version "0.8.4" - resolved "https://registry.yarnpkg.com/mpath/-/mpath-0.8.4.tgz#6b566d9581621d9e931dd3b142ed3618e7599313" - integrity sha512-DTxNZomBcTWlrMW76jy1wvV37X/cNNxPW1y2Jzd4DZkAaC5ZGsm8bfGfNOthcDuRJujXLqiuS6o3Tpy0JEoh7g== - -mquery@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/mquery/-/mquery-4.0.0.tgz#6c62160ad25289e99e0840907757cdfd62bde775" - integrity sha512-nGjm89lHja+T/b8cybAby6H0YgA4qYC/lx6UlwvHGqvTq8bDaNeCwl1sY8uRELrNbVWJzIihxVd+vphGGn1vBw== - dependencies: - debug "4.x" - regexp-clone "^1.0.0" - sliced "1.0.1" - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -punycode@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -reflect-metadata@^0.1.13: - version "0.1.13" - resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.13.tgz#67ae3ca57c972a2aa1642b10fe363fe32d49dc08" - integrity sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg== - -regexp-clone@1.0.0, regexp-clone@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/regexp-clone/-/regexp-clone-1.0.0.tgz#222db967623277056260b992626354a04ce9bf63" - integrity sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw== - -saslprep@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/saslprep/-/saslprep-1.0.3.tgz#4c02f946b56cf54297e347ba1093e7acac4cf226" - integrity sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag== - dependencies: - sparse-bitfield "^3.0.3" - -semver@^7.3.2: - version "7.3.5" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" - integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== - dependencies: - lru-cache "^6.0.0" - -sift@13.5.2: - version "13.5.2" - resolved "https://registry.yarnpkg.com/sift/-/sift-13.5.2.tgz#24a715e13c617b086166cd04917d204a591c9da6" - integrity sha512-+gxdEOMA2J+AI+fVsCqeNn7Tgx3M9ZN9jdi95939l1IJ8cZsqS8sqpJyOkic2SJk+1+98Uwryt/gL6XDaV+UZA== - -sliced@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/sliced/-/sliced-1.0.1.tgz#0b3a662b5d04c3177b1926bea82b03f837a2ef41" - integrity sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E= - -sparse-bitfield@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz#ff4ae6e68656056ba4b3e792ab3334d38273ca11" - integrity sha1-/0rm5oZWBWuks+eSqzM004JzyhE= - dependencies: - memory-pager "^1.0.2" - -tr46@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-3.0.0.tgz#555c4e297a950617e8eeddef633c87d4d9d6cbf9" - integrity sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA== - dependencies: - punycode "^2.1.1" - -tslib@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" - integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== - -webidl-conversions@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a" - integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== - -whatwg-url@^11.0.0: - version "11.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-11.0.0.tgz#0a849eebb5faf2119b901bb76fd795c2848d4018" - integrity sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ== - dependencies: - tr46 "^3.0.0" - webidl-conversions "^7.0.0" - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@typegoose/typegoose@^9.4.0": + "integrity" "sha512-Jazwurq+RI2M4igLioQezQGb2ZGwZuhE4wPpwllez+rnVc9kSWmrc0Iuc9qWfdN8cCKed6Hy4UxJRwPYqOrgHg==" + "resolved" "https://registry.npmjs.org/@typegoose/typegoose/-/typegoose-9.4.0.tgz" + "version" "9.4.0" + dependencies: + "lodash" "^4.17.20" + "loglevel" "^1.8.0" + "reflect-metadata" "^0.1.13" + "semver" "^7.3.2" + "tslib" "^2.3.1" + +"@types/node@*": + "integrity" "sha512-6xwbrW4JJiJLgF+zNypN5wr2ykM9/jHcL7rQ8fZe2vuftggjzZeRSM4OwRc6Xk8qWjwJ99qVHo/JgOGmomWRog==" + "resolved" "https://registry.npmjs.org/@types/node/-/node-17.0.4.tgz" + "version" "17.0.4" + +"@types/webidl-conversions@*": + "integrity" "sha512-XAahCdThVuCFDQLT7R7Pk/vqeObFNL3YqRyFZg+AqAP/W1/w3xHaIxuW7WszQqTbIBOPRcItYJIou3i/mppu3Q==" + "resolved" "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-6.1.1.tgz" + "version" "6.1.1" + +"@types/whatwg-url@^8.2.1": + "integrity" "sha512-2YubE1sjj5ifxievI5Ge1sckb9k/Er66HyR2c+3+I6VDUUg1TLPdYYTEbQ+DjRkS4nTxMJhgWfSfMRD2sl2EYQ==" + "resolved" "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-8.2.1.tgz" + "version" "8.2.1" + dependencies: + "@types/node" "*" + "@types/webidl-conversions" "*" + +"base64-js@^1.3.1": + "integrity" "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + "resolved" "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" + "version" "1.5.1" + +"bson@^4.2.2", "bson@^4.6.0": + "integrity" "sha512-8jw1NU1hglS+Da1jDOUYuNcBJ4cNHCFIqzlwoFNnsTOg2R/ox0aTYcTiBN4dzRa9q7Cvy6XErh3L8ReTEb9AQQ==" + "resolved" "https://registry.npmjs.org/bson/-/bson-4.6.0.tgz" + "version" "4.6.0" + dependencies: + "buffer" "^5.6.0" + +"buffer@^5.6.0": + "integrity" "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==" + "resolved" "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz" + "version" "5.7.1" + dependencies: + "base64-js" "^1.3.1" + "ieee754" "^1.1.13" + +"debug@4.x": + "integrity" "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==" + "resolved" "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz" + "version" "4.3.3" + dependencies: + "ms" "2.1.2" + +"denque@^2.0.1": + "integrity" "sha512-tfiWc6BQLXNLpNiR5iGd0Ocu3P3VpxfzFiqubLgMfhfOw9WyvgJBd46CClNn9k3qfbjvT//0cf7AlYRX/OslMQ==" + "resolved" "https://registry.npmjs.org/denque/-/denque-2.0.1.tgz" + "version" "2.0.1" + +"ieee754@^1.1.13": + "integrity" "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + "resolved" "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" + "version" "1.2.1" + +"kareem@2.3.2": + "integrity" "sha512-STHz9P7X2L4Kwn72fA4rGyqyXdmrMSdxqHx9IXon/FXluXieaFA6KJ2upcHAHxQPQ0LeM/OjLrhFxifHewOALQ==" + "resolved" "https://registry.npmjs.org/kareem/-/kareem-2.3.2.tgz" + "version" "2.3.2" + +"lodash@^4.17.20": + "integrity" "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "resolved" "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" + "version" "4.17.21" + +"loglevel@^1.8.0": + "integrity" "sha512-G6A/nJLRgWOuuwdNuA6koovfEV1YpqqAG4pRUlFaz3jj2QNZ8M4vBqnVA+HBTmU/AMNUtlOsMmSpF6NyOjztbA==" + "resolved" "https://registry.npmjs.org/loglevel/-/loglevel-1.8.0.tgz" + "version" "1.8.0" + +"lru-cache@^6.0.0": + "integrity" "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==" + "resolved" "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" + "version" "6.0.0" + dependencies: + "yallist" "^4.0.0" + +"memory-pager@^1.0.2": + "integrity" "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==" + "resolved" "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz" + "version" "1.5.0" + +"mongodb-connection-string-url@^2.3.2": + "integrity" "sha512-d5Kd2bVsKcSA7YI/yo57fSTtMwRQdFkvc5IZwod1RRxJtECeWPPSo7zqcUGJELifRA//Igs4spVtYAmvFCatug==" + "resolved" "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.4.1.tgz" + "version" "2.4.1" + dependencies: + "@types/whatwg-url" "^8.2.1" + "whatwg-url" "^11.0.0" + +"mongodb@4.2.2": + "integrity" "sha512-zt8rCTnTKyMQppyt63qMnrLM5dbADgUk18ORPF1XbtHLIYCyc9hattaYHi0pqMvNxDpgGgUofSVzS+UQErgTug==" + "resolved" "https://registry.npmjs.org/mongodb/-/mongodb-4.2.2.tgz" + "version" "4.2.2" + dependencies: + "bson" "^4.6.0" + "denque" "^2.0.1" + "mongodb-connection-string-url" "^2.3.2" + optionalDependencies: + "saslprep" "^1.0.3" + +"mongoose@^6.1.3", "mongoose@~6.1.3": + "integrity" "sha512-EK3IBmQcIZEhnX3HQYge82hF0ukAnrxnJovBUFwAEkoe3SZ3VJb2k1eMF4MOKEo5mF/h3auxzKJhItaXc3dfmg==" + "resolved" "https://registry.npmjs.org/mongoose/-/mongoose-6.1.3.tgz" + "version" "6.1.3" + dependencies: + "bson" "^4.2.2" + "kareem" "2.3.2" + "mongodb" "4.2.2" + "mpath" "0.8.4" + "mquery" "4.0.0" + "ms" "2.1.2" + "regexp-clone" "1.0.0" + "sift" "13.5.2" + "sliced" "1.0.1" + +"mpath@0.8.4": + "integrity" "sha512-DTxNZomBcTWlrMW76jy1wvV37X/cNNxPW1y2Jzd4DZkAaC5ZGsm8bfGfNOthcDuRJujXLqiuS6o3Tpy0JEoh7g==" + "resolved" "https://registry.npmjs.org/mpath/-/mpath-0.8.4.tgz" + "version" "0.8.4" + +"mquery@4.0.0": + "integrity" "sha512-nGjm89lHja+T/b8cybAby6H0YgA4qYC/lx6UlwvHGqvTq8bDaNeCwl1sY8uRELrNbVWJzIihxVd+vphGGn1vBw==" + "resolved" "https://registry.npmjs.org/mquery/-/mquery-4.0.0.tgz" + "version" "4.0.0" + dependencies: + "debug" "4.x" + "regexp-clone" "^1.0.0" + "sliced" "1.0.1" + +"ms@2.1.2": + "integrity" "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "resolved" "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" + "version" "2.1.2" + +"punycode@^2.1.1": + "integrity" "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + "resolved" "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" + "version" "2.1.1" + +"reflect-metadata@^0.1.13": + "integrity" "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" + "resolved" "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz" + "version" "0.1.13" + +"regexp-clone@^1.0.0", "regexp-clone@1.0.0": + "integrity" "sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw==" + "resolved" "https://registry.npmjs.org/regexp-clone/-/regexp-clone-1.0.0.tgz" + "version" "1.0.0" + +"saslprep@^1.0.3": + "integrity" "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==" + "resolved" "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz" + "version" "1.0.3" + dependencies: + "sparse-bitfield" "^3.0.3" + +"semver@^7.3.2": + "integrity" "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==" + "resolved" "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz" + "version" "7.3.5" + dependencies: + "lru-cache" "^6.0.0" + +"sift@13.5.2": + "integrity" "sha512-+gxdEOMA2J+AI+fVsCqeNn7Tgx3M9ZN9jdi95939l1IJ8cZsqS8sqpJyOkic2SJk+1+98Uwryt/gL6XDaV+UZA==" + "resolved" "https://registry.npmjs.org/sift/-/sift-13.5.2.tgz" + "version" "13.5.2" + +"sliced@1.0.1": + "integrity" "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=" + "resolved" "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz" + "version" "1.0.1" + +"sparse-bitfield@^3.0.3": + "integrity" "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=" + "resolved" "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz" + "version" "3.0.3" + dependencies: + "memory-pager" "^1.0.2" + +"tr46@^3.0.0": + "integrity" "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==" + "resolved" "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "punycode" "^2.1.1" + +"tslib@^2.3.1": + "integrity" "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + "resolved" "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz" + "version" "2.3.1" + +"webidl-conversions@^7.0.0": + "integrity" "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==" + "resolved" "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz" + "version" "7.0.0" + +"whatwg-url@^11.0.0": + "integrity" "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==" + "resolved" "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz" + "version" "11.0.0" + dependencies: + "tr46" "^3.0.0" + "webidl-conversions" "^7.0.0" + +"yallist@^4.0.0": + "integrity" "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "resolved" "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" + "version" "4.0.0" -- 2.20.1 From b138bcb312d0b7f99ee6e7b6bdedd1f195451344 Mon Sep 17 00:00:00 2001 From: eirk Date: Sat, 25 Dec 2021 14:05:28 -0500 Subject: [PATCH 4/6] fix typo --- models/Score.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/models/Score.ts b/models/Score.ts index 3b7d866..80cdc8e 100644 --- a/models/Score.ts +++ b/models/Score.ts @@ -13,7 +13,7 @@ export default class Score { @prop({ required: true }) public userID: string; - // total will be between 800-200 - 0 signfies "No Score", too little information is available or other variable are too low + // total will be between 800-200 - 0 signifies "No Score", too little information is available or other variable are too low // calculation: Math.floor(COMBINED_SUBSCORES * 5 * 5.13)` @prop({ required: true }) public total: number; -- 2.20.1 From ca098cb9de56e299d7151715e3ebc28ad4c9c261 Mon Sep 17 00:00:00 2001 From: eirk Date: Sat, 25 Dec 2021 14:06:01 -0500 Subject: [PATCH 5/6] fix space --- models/Score.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/models/Score.ts b/models/Score.ts index 80cdc8e..1097a2b 100644 --- a/models/Score.ts +++ b/models/Score.ts @@ -24,7 +24,7 @@ export default class Score { // 0 - 54 @prop({ required: true }) - public publicroles: number; + public publicroles: number; // -50 - 2 @prop({ required: true }) -- 2.20.1 From cad13f63bc110d96893ac121344dba4162841a50 Mon Sep 17 00:00:00 2001 From: eirk Date: Sat, 25 Dec 2021 14:09:19 -0500 Subject: [PATCH 6/6] better enum values --- models/Inquiry.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/models/Inquiry.ts b/models/Inquiry.ts index c159578..75bbd4f 100644 --- a/models/Inquiry.ts +++ b/models/Inquiry.ts @@ -2,8 +2,8 @@ import { prop } from '@typegoose/typegoose'; import Score from './Score'; export enum InqType { - HARD, - SOFT, + Hard, + Soft, } export default class Inquiry { -- 2.20.1