Socket
Socket
Sign inDemoInstall

@typegoose/typegoose

Package Overview
Dependencies
Maintainers
1
Versions
221
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@typegoose/typegoose - npm Package Compare versions

Comparing version 9.13.2 to 10.0.0-beta.1

lib/indexes.d.ts

5

lib/globalOptions.js

@@ -25,3 +25,2 @@ "use strict";

function parseENV() {
var _a;
logSettings_1.logger.info('"parseENV" got called');

@@ -33,3 +32,3 @@ const options = {

? mapValueToSeverity(process.env.TG_ALLOW_MIXED)
: (_a = data_1.globalOptions.options) === null || _a === void 0 ? void 0 : _a.allowMixed,
: data_1.globalOptions.options?.allowMixed,
},

@@ -62,2 +61,2 @@ };

exports.mapValueToSeverity = mapValueToSeverity;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsT3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9nbG9iYWxPcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG9EQUFnRDtBQUNoRCwwQ0FBZ0Q7QUFDaEQsOENBQXNEO0FBQ3RELDRDQUFnRTtBQUNoRSwrQ0FBdUM7QUFHdkM7O0dBRUc7QUFDSCxTQUFnQixnQkFBZ0IsQ0FBQyxPQUF1QjtJQUN0RCxJQUFBLGlCQUFTLEVBQUMsQ0FBQyxJQUFBLHlCQUFpQixFQUFDLE9BQU8sQ0FBQyxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLDBCQUFpQixDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUVqSSxvQkFBTSxDQUFDLElBQUksQ0FBQyxvQ0FBb0MsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUUzRCxLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDdEMsb0JBQWEsQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxvQkFBYSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0tBQzFFO0lBRUQsb0JBQU0sQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDOUMsQ0FBQztBQVZELDRDQVVDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixRQUFROztJQUN0QixvQkFBTSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBRXJDLE1BQU0sT0FBTyxHQUFtQjtRQUM5QixhQUFhLEVBQUUsRUFBRTtRQUNqQixPQUFPLEVBQUU7WUFDUCxVQUFVLEVBQ1IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLElBQUksb0JBQVE7Z0JBQ2xFLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQztnQkFDaEQsQ0FBQyxDQUFDLE1BQUEsb0JBQWEsQ0FBQyxPQUFPLDBDQUFFLFVBQVU7U0FDeEM7S0FDRixDQUFDO0lBRUYsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDNUIsQ0FBQztBQWRELDRCQWNDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILFNBQWdCLGtCQUFrQixDQUFDLEtBQXNCO0lBQ3ZELElBQUEsaUJBQVMsRUFBQyxLQUFLLElBQUksb0JBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxnREFBZ0QsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBRXhHLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1FBQzdCLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFFRCxPQUFPLGtCQUFrQixDQUFDLG9CQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUM3QyxDQUFDO0FBUkQsZ0RBUUMifQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsT3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9nbG9iYWxPcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG9EQUFnRDtBQUNoRCwwQ0FBZ0Q7QUFDaEQsOENBQXNEO0FBQ3RELDRDQUFnRTtBQUNoRSwrQ0FBdUM7QUFHdkM7O0dBRUc7QUFDSCxTQUFnQixnQkFBZ0IsQ0FBQyxPQUF1QjtJQUN0RCxJQUFBLGlCQUFTLEVBQUMsQ0FBQyxJQUFBLHlCQUFpQixFQUFDLE9BQU8sQ0FBQyxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLDBCQUFpQixDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUVqSSxvQkFBTSxDQUFDLElBQUksQ0FBQyxvQ0FBb0MsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUUzRCxLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDdEMsb0JBQWEsQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxvQkFBYSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0tBQzFFO0lBRUQsb0JBQU0sQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDOUMsQ0FBQztBQVZELDRDQVVDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixRQUFRO0lBQ3RCLG9CQUFNLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFFckMsTUFBTSxPQUFPLEdBQW1CO1FBQzlCLGFBQWEsRUFBRSxFQUFFO1FBQ2pCLE9BQU8sRUFBRTtZQUNQLFVBQVUsRUFDUixPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsSUFBSSxvQkFBUTtnQkFDbEUsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDO2dCQUNoRCxDQUFDLENBQUMsb0JBQWEsQ0FBQyxPQUFPLEVBQUUsVUFBVTtTQUN4QztLQUNGLENBQUM7SUFFRixnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUM1QixDQUFDO0FBZEQsNEJBY0M7QUFFRDs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsU0FBZ0Isa0JBQWtCLENBQUMsS0FBc0I7SUFDdkQsSUFBQSxpQkFBUyxFQUFDLEtBQUssSUFBSSxvQkFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksS0FBSyxDQUFDLGdEQUFnRCxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFFeEcsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7UUFDN0IsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUVELE9BQU8sa0JBQWtCLENBQUMsb0JBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQzdDLENBQUM7QUFSRCxnREFRQyJ9

93

lib/hooks.d.ts

@@ -1,72 +0,39 @@

import type { Aggregate, Query } from 'mongoose';
import { mongoose } from './typegoose';
import type { DocumentType, EmptyVoidFn } from './types';
declare type NumberOrDocumentOrDocumentArray<T> = number | DocumentType<T> | DocumentType<T>[];
declare type ReturnVoid = void | Promise<void>;
declare type HookNextErrorFn = (err?: Error) => ReturnVoid;
declare type PreFnWithAggregate<T> = (this: Aggregate<T>, next: (error?: Error) => ReturnVoid) => ReturnVoid;
declare type PreFnWithDocumentType<T> = (this: DocumentType<T>, next: HookNextErrorFn) => ReturnVoid;
declare type PreFnWithQuery<T> = (this: Query<any, DocumentType<T>>, next: (error?: Error) => ReturnVoid) => ReturnVoid;
declare type ModelPostFn<T> = (result: any, next: EmptyVoidFn) => ReturnVoid;
declare type PostNumberResponse<T> = (result: number, next: EmptyVoidFn) => ReturnVoid;
declare type PostSingleResponse<T> = (result: DocumentType<T>, next: EmptyVoidFn) => ReturnVoid;
declare type PostMultipleResponse<T> = (result: DocumentType<T>[], next: EmptyVoidFn) => ReturnVoid;
declare type PostRegExpResponse<T> = (result: NumberOrDocumentOrDocumentArray<T>, next: EmptyVoidFn) => ReturnVoid;
declare type PostArrayResponse<T> = (result: NumberOrDocumentOrDocumentArray<T>, next: EmptyVoidFn) => ReturnVoid;
declare type PostQueryArrayResponse<T> = (this: Query<any, DocumentType<T>>, result: NumberOrDocumentOrDocumentArray<T>, next: EmptyVoidFn) => ReturnVoid;
declare type PostNumberWithError<T> = (error: Error, result: number, next: HookNextErrorFn) => ReturnVoid;
declare type PostSingleWithError<T> = (error: Error, result: DocumentType<T>, next: HookNextErrorFn) => ReturnVoid;
declare type PostMultipleWithError<T> = (error: Error, result: DocumentType<T>[], next: HookNextErrorFn) => ReturnVoid;
declare type PostRegExpWithError<T> = (error: Error, result: NumberOrDocumentOrDocumentArray<T>, next: HookNextErrorFn) => ReturnVoid;
declare type PostArrayWithError<T> = (error: Error, result: NumberOrDocumentOrDocumentArray<T>, next: EmptyVoidFn) => ReturnVoid;
declare type PostQueryArrayWithError<T> = (this: Query<any, DocumentType<T>>, error: Error, result: NumberOrDocumentOrDocumentArray<T>, next: EmptyVoidFn) => ReturnVoid;
declare type AggregateMethod = 'aggregate';
declare type DocumentMethod = 'init' | 'validate' | 'save' | 'remove';
declare type NumberMethod = 'count';
declare type SingleMethod = 'findOne' | 'findOneAndRemove' | 'findOneAndUpdate' | 'findOneAndDelete' | 'deleteOne' | DocumentMethod;
declare type MultipleMethod = 'find' | 'update' | 'deleteMany' | 'aggregate';
declare type QueryMethod = 'count' | 'countDocuments' | 'estimatedDocumentCount' | 'find' | 'findOne' | 'findOneAndRemove' | 'findOneAndUpdate' | 'update' | 'updateOne' | 'updateMany' | 'findOneAndDelete' | 'deleteOne' | 'deleteMany';
declare type ModelMethod = 'insertMany';
declare type QMR = QueryMethod | ModelMethod | RegExp;
declare type DR = DocumentMethod | RegExp;
import type { Aggregate, AggregateExtract, CallbackError, Document, ErrorHandlingMiddlewareFunction, HydratedDocument, Model, MongooseDocumentMiddleware, MongooseQueryMiddleware, PostMiddlewareFunction, PreMiddlewareFunction, PreSaveMiddlewareFunction, Query, SchemaPostOptions, SchemaPreOptions } from 'mongoose';
import type { AnyParamConstructor, DocumentType, ReturnModelType } from './types';
/** Type copied from mongoose, because it is not exported but used in hooks */
type QueryResultType<T> = T extends Query<infer ResultType, any> ? ResultType : never;
export declare const pre: {
<T>(method: AggregateMethod, fn: PreFnWithAggregate<T>, options?: mongoose.SchemaPreOptions): ClassDecorator;
<T_1>(method: DR | DR[], fn: PreFnWithDocumentType<T_1>, options?: mongoose.SchemaPreOptions): ClassDecorator;
<T_2>(method: QMR | QMR[], fn: PreFnWithQuery<T_2>, options?: mongoose.SchemaPreOptions): ClassDecorator;
<S extends unknown, T = S extends Document<any, any, any> ? S : HydratedDocument<DocumentType<S, import("./types").BeAnObject>, any, {}>>(method: 'save', fn: PreSaveMiddlewareFunction<T>, options?: SchemaPreOptions): ClassDecorator;
<S_1 extends object | Query<any, any, {}, any>, T_1 = S_1 extends Query<any, any, {}, any> ? S_1 : Query<DocumentType<S_1, import("./types").BeAnObject>, DocumentType<S_1, import("./types").BeAnObject>, {}, DocumentType<S_1, import("./types").BeAnObject>>>(method: MongooseQueryMiddleware | MongooseQueryMiddleware[] | RegExp, fn: PreMiddlewareFunction<T_1>, options?: SchemaPreOptions): ClassDecorator;
<S_2 extends unknown, T_2 = S_2 extends Document<any, any, any> ? S_2 : HydratedDocument<DocumentType<S_2, import("./types").BeAnObject>, any, {}>>(method: MongooseDocumentMiddleware | MongooseDocumentMiddleware[] | RegExp, fn: PreMiddlewareFunction<T_2>, options?: SchemaPreOptions): ClassDecorator;
<T_3 extends Aggregate<any>>(method: 'aggregate' | RegExp, fn: PreMiddlewareFunction<T_3>, options?: SchemaPreOptions): ClassDecorator;
<S_3 extends Model<any, {}, {}, {}, any> | AnyParamConstructor<any>, T_4 = S_3 extends Model<any, {}, {}, {}, any> ? S_3 : ReturnModelType<S_3, import("./types").BeAnObject>>(method: 'insertMany' | RegExp, fn: (this: T_4, next: (err?: CallbackError) => void, docs: any | Array<any>) => void | Promise<void>, options?: SchemaPreOptions): ClassDecorator;
};
export declare const post: {
<T>(method: RegExp, fn: PostRegExpResponse<T>, options?: mongoose.SchemaPostOptions): ClassDecorator;
<T_1>(method: RegExp, fn: PostRegExpWithError<T_1>, options?: mongoose.SchemaPostOptions): ClassDecorator;
<T_2>(method: NumberMethod, fn: PostNumberResponse<T_2>, options?: mongoose.SchemaPostOptions): ClassDecorator;
<T_3>(method: NumberMethod, fn: PostNumberWithError<T_3>, options?: mongoose.SchemaPostOptions): ClassDecorator;
<T_4>(method: SingleMethod, fn: PostSingleResponse<T_4>, options?: mongoose.SchemaPostOptions): ClassDecorator;
<T_5>(method: SingleMethod, fn: PostSingleWithError<T_5>, options?: mongoose.SchemaPostOptions): ClassDecorator;
<T_6>(method: MultipleMethod, fn: PostMultipleResponse<T_6>, options?: mongoose.SchemaPostOptions): ClassDecorator;
<T_7>(method: MultipleMethod, fn: PostMultipleWithError<T_7>, options?: mongoose.SchemaPostOptions): ClassDecorator;
<T_8>(method: ModelMethod, fn: ModelPostFn<T_8> | PostMultipleResponse<T_8>, options?: mongoose.SchemaPostOptions): ClassDecorator;
<T_9>(method: DocumentMethod | DocumentMethod[], fn: PostArrayResponse<T_9>, options?: mongoose.SchemaPostOptions): ClassDecorator;
<T_10>(method: DocumentMethod | DocumentMethod[], fn: PostArrayWithError<T_10>, options?: mongoose.SchemaPostOptions): ClassDecorator;
<T_11>(method: QMR | QMR[], fn: PostQueryArrayResponse<T_11>, options?: mongoose.SchemaPostOptions): ClassDecorator;
<T_12>(method: QMR | QMR[], fn: PostQueryArrayWithError<T_12>, options?: mongoose.SchemaPostOptions): ClassDecorator;
<S extends object | Query<any, any, {}, any>, T = S extends Query<any, any, {}, any> ? S : Query<DocumentType<S, import("./types").BeAnObject>, DocumentType<S, import("./types").BeAnObject>, {}, DocumentType<S, import("./types").BeAnObject>>>(method: MongooseQueryMiddleware | MongooseQueryMiddleware[] | RegExp, fn: PostMiddlewareFunction<T, QueryResultType<T>>, options?: SchemaPostOptions): ClassDecorator;
<S_1 extends unknown, T_1 = S_1 extends Document<any, any, any> ? S_1 : HydratedDocument<DocumentType<S_1, import("./types").BeAnObject>, any, {}>>(method: MongooseDocumentMiddleware | MongooseDocumentMiddleware[] | RegExp, fn: PostMiddlewareFunction<T_1, T_1>, options?: SchemaPostOptions): ClassDecorator;
<T_2 extends Aggregate<any>>(method: 'aggregate' | RegExp, fn: PostMiddlewareFunction<T_2, AggregateExtract<T_2>[]>, options?: SchemaPostOptions): ClassDecorator;
<S_2 extends Model<any, {}, {}, {}, any> | AnyParamConstructor<any>, T_3 = S_2 extends Model<any, {}, {}, {}, any> ? S_2 : ReturnModelType<S_2, import("./types").BeAnObject>>(method: 'insertMany' | RegExp, fn: PostMiddlewareFunction<T_3, T_3>, options?: SchemaPostOptions): ClassDecorator;
<S_3 extends object | Query<any, any, {}, any>, T_4 = S_3 extends Query<any, any, {}, any> ? S_3 : Query<DocumentType<S_3, import("./types").BeAnObject>, DocumentType<S_3, import("./types").BeAnObject>, {}, DocumentType<S_3, import("./types").BeAnObject>>>(method: MongooseQueryMiddleware | MongooseQueryMiddleware[] | RegExp, fn: ErrorHandlingMiddlewareFunction<T_4, any>, options?: SchemaPostOptions): ClassDecorator;
<S_4 extends unknown, T_5 = S_4 extends Document<any, any, any> ? S_4 : HydratedDocument<DocumentType<S_4, import("./types").BeAnObject>, any, {}>>(method: MongooseDocumentMiddleware | MongooseDocumentMiddleware[] | RegExp, fn: ErrorHandlingMiddlewareFunction<T_5, any>, options?: SchemaPostOptions): ClassDecorator;
<T_6 extends Aggregate<any>>(method: 'aggregate' | RegExp, fn: ErrorHandlingMiddlewareFunction<T_6, any[]>, options?: SchemaPostOptions): ClassDecorator;
<S_5 extends Model<any, {}, {}, {}, any> | AnyParamConstructor<any>, T_7 = S_5 extends Model<any, {}, {}, {}, any> ? S_5 : ReturnModelType<S_5, import("./types").BeAnObject>>(method: 'insertMany' | RegExp, fn: ErrorHandlingMiddlewareFunction<T_7, any>, options?: SchemaPostOptions): ClassDecorator;
};
export declare const Pre: {
<T>(method: AggregateMethod, fn: PreFnWithAggregate<T>, options?: mongoose.SchemaPreOptions): ClassDecorator;
<T_1>(method: DR | DR[], fn: PreFnWithDocumentType<T_1>, options?: mongoose.SchemaPreOptions): ClassDecorator;
<T_2>(method: QMR | QMR[], fn: PreFnWithQuery<T_2>, options?: mongoose.SchemaPreOptions): ClassDecorator;
<S extends unknown, T = S extends Document<any, any, any> ? S : HydratedDocument<DocumentType<S, import("./types").BeAnObject>, any, {}>>(method: 'save', fn: PreSaveMiddlewareFunction<T>, options?: SchemaPreOptions): ClassDecorator;
<S_1 extends object | Query<any, any, {}, any>, T_1 = S_1 extends Query<any, any, {}, any> ? S_1 : Query<DocumentType<S_1, import("./types").BeAnObject>, DocumentType<S_1, import("./types").BeAnObject>, {}, DocumentType<S_1, import("./types").BeAnObject>>>(method: MongooseQueryMiddleware | MongooseQueryMiddleware[] | RegExp, fn: PreMiddlewareFunction<T_1>, options?: SchemaPreOptions): ClassDecorator;
<S_2 extends unknown, T_2 = S_2 extends Document<any, any, any> ? S_2 : HydratedDocument<DocumentType<S_2, import("./types").BeAnObject>, any, {}>>(method: MongooseDocumentMiddleware | MongooseDocumentMiddleware[] | RegExp, fn: PreMiddlewareFunction<T_2>, options?: SchemaPreOptions): ClassDecorator;
<T_3 extends Aggregate<any>>(method: 'aggregate' | RegExp, fn: PreMiddlewareFunction<T_3>, options?: SchemaPreOptions): ClassDecorator;
<S_3 extends Model<any, {}, {}, {}, any> | AnyParamConstructor<any>, T_4 = S_3 extends Model<any, {}, {}, {}, any> ? S_3 : ReturnModelType<S_3, import("./types").BeAnObject>>(method: 'insertMany' | RegExp, fn: (this: T_4, next: (err?: CallbackError) => void, docs: any | Array<any>) => void | Promise<void>, options?: SchemaPreOptions): ClassDecorator;
};
export declare const Post: {
<T>(method: RegExp, fn: PostRegExpResponse<T>, options?: mongoose.SchemaPostOptions): ClassDecorator;
<T_1>(method: RegExp, fn: PostRegExpWithError<T_1>, options?: mongoose.SchemaPostOptions): ClassDecorator;
<T_2>(method: NumberMethod, fn: PostNumberResponse<T_2>, options?: mongoose.SchemaPostOptions): ClassDecorator;
<T_3>(method: NumberMethod, fn: PostNumberWithError<T_3>, options?: mongoose.SchemaPostOptions): ClassDecorator;
<T_4>(method: SingleMethod, fn: PostSingleResponse<T_4>, options?: mongoose.SchemaPostOptions): ClassDecorator;
<T_5>(method: SingleMethod, fn: PostSingleWithError<T_5>, options?: mongoose.SchemaPostOptions): ClassDecorator;
<T_6>(method: MultipleMethod, fn: PostMultipleResponse<T_6>, options?: mongoose.SchemaPostOptions): ClassDecorator;
<T_7>(method: MultipleMethod, fn: PostMultipleWithError<T_7>, options?: mongoose.SchemaPostOptions): ClassDecorator;
<T_8>(method: ModelMethod, fn: ModelPostFn<T_8> | PostMultipleResponse<T_8>, options?: mongoose.SchemaPostOptions): ClassDecorator;
<T_9>(method: DocumentMethod | DocumentMethod[], fn: PostArrayResponse<T_9>, options?: mongoose.SchemaPostOptions): ClassDecorator;
<T_10>(method: DocumentMethod | DocumentMethod[], fn: PostArrayWithError<T_10>, options?: mongoose.SchemaPostOptions): ClassDecorator;
<T_11>(method: QMR | QMR[], fn: PostQueryArrayResponse<T_11>, options?: mongoose.SchemaPostOptions): ClassDecorator;
<T_12>(method: QMR | QMR[], fn: PostQueryArrayWithError<T_12>, options?: mongoose.SchemaPostOptions): ClassDecorator;
<S extends object | Query<any, any, {}, any>, T = S extends Query<any, any, {}, any> ? S : Query<DocumentType<S, import("./types").BeAnObject>, DocumentType<S, import("./types").BeAnObject>, {}, DocumentType<S, import("./types").BeAnObject>>>(method: MongooseQueryMiddleware | MongooseQueryMiddleware[] | RegExp, fn: PostMiddlewareFunction<T, QueryResultType<T>>, options?: SchemaPostOptions): ClassDecorator;
<S_1 extends unknown, T_1 = S_1 extends Document<any, any, any> ? S_1 : HydratedDocument<DocumentType<S_1, import("./types").BeAnObject>, any, {}>>(method: MongooseDocumentMiddleware | MongooseDocumentMiddleware[] | RegExp, fn: PostMiddlewareFunction<T_1, T_1>, options?: SchemaPostOptions): ClassDecorator;
<T_2 extends Aggregate<any>>(method: 'aggregate' | RegExp, fn: PostMiddlewareFunction<T_2, AggregateExtract<T_2>[]>, options?: SchemaPostOptions): ClassDecorator;
<S_2 extends Model<any, {}, {}, {}, any> | AnyParamConstructor<any>, T_3 = S_2 extends Model<any, {}, {}, {}, any> ? S_2 : ReturnModelType<S_2, import("./types").BeAnObject>>(method: 'insertMany' | RegExp, fn: PostMiddlewareFunction<T_3, T_3>, options?: SchemaPostOptions): ClassDecorator;
<S_3 extends object | Query<any, any, {}, any>, T_4 = S_3 extends Query<any, any, {}, any> ? S_3 : Query<DocumentType<S_3, import("./types").BeAnObject>, DocumentType<S_3, import("./types").BeAnObject>, {}, DocumentType<S_3, import("./types").BeAnObject>>>(method: MongooseQueryMiddleware | MongooseQueryMiddleware[] | RegExp, fn: ErrorHandlingMiddlewareFunction<T_4, any>, options?: SchemaPostOptions): ClassDecorator;
<S_4 extends unknown, T_5 = S_4 extends Document<any, any, any> ? S_4 : HydratedDocument<DocumentType<S_4, import("./types").BeAnObject>, any, {}>>(method: MongooseDocumentMiddleware | MongooseDocumentMiddleware[] | RegExp, fn: ErrorHandlingMiddlewareFunction<T_5, any>, options?: SchemaPostOptions): ClassDecorator;
<T_6 extends Aggregate<any>>(method: 'aggregate' | RegExp, fn: ErrorHandlingMiddlewareFunction<T_6, any[]>, options?: SchemaPostOptions): ClassDecorator;
<S_5 extends Model<any, {}, {}, {}, any> | AnyParamConstructor<any>, T_7 = S_5 extends Model<any, {}, {}, {}, any> ? S_5 : ReturnModelType<S_5, import("./types").BeAnObject>>(method: 'insertMany' | RegExp, fn: ErrorHandlingMiddlewareFunction<T_7, any>, options?: SchemaPostOptions): ClassDecorator;
};
export {};

@@ -24,9 +24,7 @@ "use strict";

function addToHooks(target, hookType, args) {
var _a, _b, _c;
// Convert Method to array if only a string is provided
const methods = Array.isArray(args[0]) ? args[0] : [args[0]];
const func = args[1];
const hookOptions = (_a = args[2]) !== null && _a !== void 0 ? _a : {};
const hookOptions = args[2];
(0, utils_1.assertion)(typeof func === 'function', () => new errors_1.ExpectedTypeError('fn', 'function', func));
(0, utils_1.assertion)(typeof hookOptions === 'object' && !(0, utils_1.isNullOrUndefined)(hookOptions), () => new errors_1.ExpectedTypeError('options', 'object / undefined', hookOptions));
if (args.length > 3) {

@@ -36,15 +34,13 @@ logSettings_1.logger.warn(`"addToHooks" parameter "args" has a length of over 3 (length: ${args.length})`);

logSettings_1.logger.info('Adding hooks for "[%s]" to "%s" as type "%s"', methods.join(','), (0, utils_1.getName)(target), hookType);
for (const method of methods) {
switch (hookType) {
case 'post':
const postHooks = Array.from((_b = Reflect.getMetadata(constants_1.DecoratorKeys.HooksPost, target)) !== null && _b !== void 0 ? _b : []);
postHooks.push({ func, method, options: hookOptions });
Reflect.defineMetadata(constants_1.DecoratorKeys.HooksPost, postHooks, target);
break;
case 'pre':
const preHooks = Array.from((_c = Reflect.getMetadata(constants_1.DecoratorKeys.HooksPre, target)) !== null && _c !== void 0 ? _c : []);
preHooks.push({ func, method, options: hookOptions });
Reflect.defineMetadata(constants_1.DecoratorKeys.HooksPre, preHooks, target);
break;
}
switch (hookType) {
case 'post':
const postHooks = Array.from(Reflect.getMetadata(constants_1.DecoratorKeys.HooksPost, target) ?? []);
postHooks.push({ func, methods, options: hookOptions });
Reflect.defineMetadata(constants_1.DecoratorKeys.HooksPost, postHooks, target);
break;
case 'pre':
const preHooks = Array.from(Reflect.getMetadata(constants_1.DecoratorKeys.HooksPre, target) ?? []);
preHooks.push({ func, methods, options: hookOptions });
Reflect.defineMetadata(constants_1.DecoratorKeys.HooksPre, preHooks, target);
break;
}

@@ -57,2 +53,2 @@ }

exports.Post = hooks.post;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9va3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaG9va3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0Esb0RBQXFEO0FBQ3JELDhDQUFzRDtBQUN0RCw0Q0FBeUU7QUFDekUsK0NBQXVDO0FBNEZ2QywyRUFBMkU7QUFDM0UsTUFBTSxLQUFLLEdBQVU7SUFDbkIsR0FBRyxDQUFDLEdBQUcsSUFBSTtRQUNULE9BQU8sQ0FBQyxNQUFXLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFDRCxJQUFJLENBQUMsR0FBRyxJQUFJO1FBQ1YsT0FBTyxDQUFDLE1BQVcsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDM0QsQ0FBQztDQUNGLENBQUM7QUFFRjs7Ozs7R0FLRztBQUNILFNBQVMsVUFBVSxDQUFDLE1BQVcsRUFBRSxRQUF3QixFQUFFLElBQVc7O0lBQ3BFLHVEQUF1RDtJQUN2RCxNQUFNLE9BQU8sR0FBVSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEUsTUFBTSxJQUFJLEdBQWdCLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsQyxNQUFNLFdBQVcsR0FBc0IsTUFBQSxJQUFJLENBQUMsQ0FBQyxDQUFDLG1DQUFJLEVBQUUsQ0FBQztJQUVyRCxJQUFBLGlCQUFTLEVBQUMsT0FBTyxJQUFJLEtBQUssVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksMEJBQWlCLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzNGLElBQUEsaUJBQVMsRUFDUCxPQUFPLFdBQVcsS0FBSyxRQUFRLElBQUksQ0FBQyxJQUFBLHlCQUFpQixFQUFDLFdBQVcsQ0FBQyxFQUNsRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLDBCQUFpQixDQUFDLFNBQVMsRUFBRSxvQkFBb0IsRUFBRSxXQUFXLENBQUMsQ0FDMUUsQ0FBQztJQUVGLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7UUFDbkIsb0JBQU0sQ0FBQyxJQUFJLENBQUMsaUVBQWlFLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0tBQzlGO0lBRUQsb0JBQU0sQ0FBQyxJQUFJLENBQUMsOENBQThDLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFBLGVBQU8sRUFBQyxNQUFNLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUUxRyxLQUFLLE1BQU0sTUFBTSxJQUFJLE9BQU8sRUFBRTtRQUM1QixRQUFRLFFBQVEsRUFBRTtZQUNoQixLQUFLLE1BQU07Z0JBQ1QsTUFBTSxTQUFTLEdBQWtCLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBQSxPQUFPLENBQUMsV0FBVyxDQUFDLHlCQUFhLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxtQ0FBSSxFQUFFLENBQUMsQ0FBQztnQkFDeEcsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7Z0JBQ3ZELE9BQU8sQ0FBQyxjQUFjLENBQUMseUJBQWEsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUNuRSxNQUFNO1lBQ1IsS0FBSyxLQUFLO2dCQUNSLE1BQU0sUUFBUSxHQUFrQixLQUFLLENBQUMsSUFBSSxDQUFDLE1BQUEsT0FBTyxDQUFDLFdBQVcsQ0FBQyx5QkFBYSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsbUNBQUksRUFBRSxDQUFDLENBQUM7Z0JBQ3RHLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO2dCQUN0RCxPQUFPLENBQUMsY0FBYyxDQUFDLHlCQUFhLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztnQkFDakUsTUFBTTtTQUNUO0tBQ0Y7QUFDSCxDQUFDO0FBRVksUUFBQSxHQUFHLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQztBQUNoQixRQUFBLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO0FBRS9CLHdCQUF3QjtBQUNYLFFBQUEsR0FBRyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUM7QUFDaEIsUUFBQSxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyJ9
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9va3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaG9va3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBaUJBLG9EQUFxRDtBQUNyRCw4Q0FBc0Q7QUFDdEQsNENBQXNEO0FBQ3RELCtDQUF1QztBQXlGdkMsMkVBQTJFO0FBQzNFLE1BQU0sS0FBSyxHQUFVO0lBQ25CLEdBQUcsQ0FBQyxHQUFHLElBQUk7UUFDVCxPQUFPLENBQUMsTUFBVyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBQ0QsSUFBSSxDQUFDLEdBQUcsSUFBSTtRQUNWLE9BQU8sQ0FBQyxNQUFXLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzNELENBQUM7Q0FDRixDQUFDO0FBRUY7Ozs7O0dBS0c7QUFDSCxTQUFTLFVBQVUsQ0FBQyxNQUFXLEVBQUUsUUFBd0IsRUFBRSxJQUFXO0lBQ3BFLHVEQUF1RDtJQUN2RCxNQUFNLE9BQU8sR0FBMkIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JGLE1BQU0sSUFBSSxHQUE2QixJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0MsTUFBTSxXQUFXLEdBQWtDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUUzRCxJQUFBLGlCQUFTLEVBQUMsT0FBTyxJQUFJLEtBQUssVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksMEJBQWlCLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBRTNGLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7UUFDbkIsb0JBQU0sQ0FBQyxJQUFJLENBQUMsaUVBQWlFLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0tBQzlGO0lBRUQsb0JBQU0sQ0FBQyxJQUFJLENBQUMsOENBQThDLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFBLGVBQU8sRUFBQyxNQUFNLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUUxRyxRQUFRLFFBQVEsRUFBRTtRQUNoQixLQUFLLE1BQU07WUFDVCxNQUFNLFNBQVMsR0FBa0IsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLHlCQUFhLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQ3hHLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO1lBQ3hELE9BQU8sQ0FBQyxjQUFjLENBQUMseUJBQWEsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ25FLE1BQU07UUFDUixLQUFLLEtBQUs7WUFDUixNQUFNLFFBQVEsR0FBa0IsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLHlCQUFhLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQ3RHLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZELE9BQU8sQ0FBQyxjQUFjLENBQUMseUJBQWEsQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ2pFLE1BQU07S0FDVDtBQUNILENBQUM7QUFFWSxRQUFBLEdBQUcsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDO0FBQ2hCLFFBQUEsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7QUFFL0Isd0JBQXdCO0FBQ1gsUUFBQSxHQUFHLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQztBQUNoQixRQUFBLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDIn0=

@@ -51,3 +51,8 @@ /**

*/
NestedDiscriminators = "typegoose:nestedDiscriminators"
NestedDiscriminators = "typegoose:nestedDiscriminators",
/**
* Storage location for Cached Schemas
* -> Use only for a class
*/
CachedSchema = "typegoose:cachedSchema"
}

@@ -60,4 +65,2 @@ /** This Enum is meant for baseProp to decide for different props (like if it is an arrayProp or prop or mapProp) */

}
/** @deprecated This was renamed to "PropType" and will be removed in 10.0 */
export declare const WhatIsIt: typeof PropType;
/** Severity levels for soft-warnings */

@@ -64,0 +67,0 @@ export declare enum Severity {

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Severity = exports.WhatIsIt = exports.PropType = exports.DecoratorKeys = void 0;
exports.Severity = exports.PropType = exports.DecoratorKeys = void 0;
/**

@@ -56,2 +56,7 @@ * Collection of Reflect Types for easy maintenance

DecoratorKeys["NestedDiscriminators"] = "typegoose:nestedDiscriminators";
/**
* Storage location for Cached Schemas
* -> Use only for a class
*/
DecoratorKeys["CachedSchema"] = "typegoose:cachedSchema";
})(DecoratorKeys = exports.DecoratorKeys || (exports.DecoratorKeys = {}));

@@ -65,5 +70,2 @@ /** This Enum is meant for baseProp to decide for different props (like if it is an arrayProp or prop or mapProp) */

})(PropType = exports.PropType || (exports.PropType = {}));
// For Backwards-compatability
/** @deprecated This was renamed to "PropType" and will be removed in 10.0 */
exports.WhatIsIt = PropType;
/** Severity levels for soft-warnings */

@@ -76,2 +78,2 @@ var Severity;

})(Severity = exports.Severity || (exports.Severity = {}));
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ludGVybmFsL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7R0FFRztBQUNILElBQVksYUFnRFg7QUFoREQsV0FBWSxhQUFhO0lBQ3ZCLGtEQUFrRDtJQUNsRCxxQ0FBb0IsQ0FBQTtJQUNwQjs7O09BR0c7SUFDSCxtREFBa0MsQ0FBQTtJQUNsQzs7O09BR0c7SUFDSCxtREFBa0MsQ0FBQTtJQUNsQzs7O09BR0c7SUFDSCw0Q0FBMkIsQ0FBQTtJQUMzQjs7O09BR0c7SUFDSCw4Q0FBNkIsQ0FBQTtJQUM3Qjs7O09BR0c7SUFDSCxnREFBK0IsQ0FBQTtJQUMvQjs7O09BR0c7SUFDSCxrREFBaUMsQ0FBQTtJQUNqQzs7O09BR0c7SUFDSCw4REFBNkMsQ0FBQTtJQUM3Qzs7O09BR0c7SUFDSCxzREFBcUMsQ0FBQTtJQUNyQzs7O09BR0c7SUFDSCx3RUFBdUQsQ0FBQTtBQUN6RCxDQUFDLEVBaERXLGFBQWEsR0FBYixxQkFBYSxLQUFiLHFCQUFhLFFBZ0R4QjtBQUVELG9IQUFvSDtBQUNwSCxJQUFZLFFBSVg7QUFKRCxXQUFZLFFBQVE7SUFDbEIseUNBQUssQ0FBQTtJQUNMLHFDQUFHLENBQUE7SUFDSCx1Q0FBSSxDQUFBO0FBQ04sQ0FBQyxFQUpXLFFBQVEsR0FBUixnQkFBUSxLQUFSLGdCQUFRLFFBSW5CO0FBRUQsOEJBQThCO0FBQzlCLDZFQUE2RTtBQUNoRSxRQUFBLFFBQVEsR0FBRyxRQUFRLENBQUM7QUFFakMsd0NBQXdDO0FBQ3hDLElBQVksUUFJWDtBQUpELFdBQVksUUFBUTtJQUNsQix5Q0FBSyxDQUFBO0lBQ0wsdUNBQUksQ0FBQTtJQUNKLHlDQUFLLENBQUE7QUFDUCxDQUFDLEVBSlcsUUFBUSxHQUFSLGdCQUFRLEtBQVIsZ0JBQVEsUUFJbkIifQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ludGVybmFsL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7R0FFRztBQUNILElBQVksYUFxRFg7QUFyREQsV0FBWSxhQUFhO0lBQ3ZCLGtEQUFrRDtJQUNsRCxxQ0FBb0IsQ0FBQTtJQUNwQjs7O09BR0c7SUFDSCxtREFBa0MsQ0FBQTtJQUNsQzs7O09BR0c7SUFDSCxtREFBa0MsQ0FBQTtJQUNsQzs7O09BR0c7SUFDSCw0Q0FBMkIsQ0FBQTtJQUMzQjs7O09BR0c7SUFDSCw4Q0FBNkIsQ0FBQTtJQUM3Qjs7O09BR0c7SUFDSCxnREFBK0IsQ0FBQTtJQUMvQjs7O09BR0c7SUFDSCxrREFBaUMsQ0FBQTtJQUNqQzs7O09BR0c7SUFDSCw4REFBNkMsQ0FBQTtJQUM3Qzs7O09BR0c7SUFDSCxzREFBcUMsQ0FBQTtJQUNyQzs7O09BR0c7SUFDSCx3RUFBdUQsQ0FBQTtJQUN2RDs7O09BR0c7SUFDSCx3REFBdUMsQ0FBQTtBQUN6QyxDQUFDLEVBckRXLGFBQWEsR0FBYixxQkFBYSxLQUFiLHFCQUFhLFFBcUR4QjtBQUVELG9IQUFvSDtBQUNwSCxJQUFZLFFBSVg7QUFKRCxXQUFZLFFBQVE7SUFDbEIseUNBQUssQ0FBQTtJQUNMLHFDQUFHLENBQUE7SUFDSCx1Q0FBSSxDQUFBO0FBQ04sQ0FBQyxFQUpXLFFBQVEsR0FBUixnQkFBUSxLQUFSLGdCQUFRLFFBSW5CO0FBRUQsd0NBQXdDO0FBQ3hDLElBQVksUUFJWDtBQUpELFdBQVksUUFBUTtJQUNsQix5Q0FBSyxDQUFBO0lBQ0wsdUNBQUksQ0FBQTtJQUNKLHlDQUFLLENBQUE7QUFDUCxDQUFDLEVBSlcsUUFBUSxHQUFSLGdCQUFRLEtBQVIsZ0JBQVEsUUFJbkIifQ==

@@ -1,5 +0,3 @@

import type { Model, SchemaDefinition } from 'mongoose';
import type { Model } from 'mongoose';
import type { IGlobalOptions } from '../types';
/** Schema Map */
export declare const schemas: Map<string, SchemaDefinition>;
/** Models Map */

@@ -6,0 +4,0 @@ export declare const models: Map<string, Model<any>>;

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.globalOptions = exports.constructors = exports.models = exports.schemas = void 0;
exports.globalOptions = exports.constructors = exports.models = void 0;
const constants_1 = require("./constants");
/** Schema Map */
exports.schemas = new Map();
/** Models Map */

@@ -17,2 +15,2 @@ exports.models = new Map();

};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbnRlcm5hbC9kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLDJDQUF1QztBQUV2QyxpQkFBaUI7QUFDSixRQUFBLE9BQU8sR0FBa0MsSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUNoRSxpQkFBaUI7QUFDSixRQUFBLE1BQU0sR0FBNEIsSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUN6RCx1QkFBdUI7QUFDVixRQUFBLFlBQVksR0FBaUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUNwRSxxQkFBcUI7QUFDUixRQUFBLGFBQWEsR0FBbUI7SUFDM0MsT0FBTyxFQUFFO1FBQ1AsVUFBVSxFQUFFLG9CQUFRLENBQUMsSUFBSTtLQUMxQjtDQUNGLENBQUMifQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbnRlcm5hbC9kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLDJDQUF1QztBQUV2QyxpQkFBaUI7QUFDSixRQUFBLE1BQU0sR0FBNEIsSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUN6RCx1QkFBdUI7QUFDVixRQUFBLFlBQVksR0FBaUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUNwRSxxQkFBcUI7QUFDUixRQUFBLGFBQWEsR0FBbUI7SUFDM0MsT0FBTyxFQUFFO1FBQ1AsVUFBVSxFQUFFLG9CQUFRLENBQUMsSUFBSTtLQUMxQjtDQUNGLENBQUMifQ==

@@ -24,4 +24,2 @@ export declare class InvalidTypeError extends Error {

}
/** @deprecated This was renamed to "InvalidPropTypeError" and will be removed in 10.0 */
export declare const InvalidWhatIsItError: typeof InvalidPropTypeError;
export declare class CannotBeSymbolError extends Error {

@@ -66,1 +64,4 @@ constructor(name: string, key: string | symbol);

}
export declare class DuplicateOptionsError extends TypeError {
constructor(duplicateAt: string[]);
}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.NoDiscriminatorFunctionError = exports.PathNotInSchemaError = exports.InvalidOptionsConstructorError = exports.InvalidEnumTypeError = exports.ExpectedTypeError = exports.ResolveTypegooseNameError = exports.OptionDoesNotSupportOptionError = exports.StringLengthExpectedError = exports.FunctionCalledMoreThanSupportedError = exports.NotValidModelError = exports.RefOptionIsUndefinedError = exports.SelfContainingClassError = exports.CannotBeSymbolError = exports.InvalidWhatIsItError = exports.InvalidPropTypeError = exports.AssertionFallbackError = exports.NoValidClassError = exports.NotAllVPOPElementsError = exports.NotStringTypeError = exports.NotNumberTypeError = exports.InvalidTypeError = void 0;
exports.DuplicateOptionsError = exports.NoDiscriminatorFunctionError = exports.PathNotInSchemaError = exports.InvalidOptionsConstructorError = exports.InvalidEnumTypeError = exports.ExpectedTypeError = exports.ResolveTypegooseNameError = exports.OptionDoesNotSupportOptionError = exports.StringLengthExpectedError = exports.FunctionCalledMoreThanSupportedError = exports.NotValidModelError = exports.RefOptionIsUndefinedError = exports.SelfContainingClassError = exports.CannotBeSymbolError = exports.InvalidPropTypeError = exports.AssertionFallbackError = exports.NoValidClassError = exports.NotAllVPOPElementsError = exports.NotStringTypeError = exports.NotNumberTypeError = exports.InvalidTypeError = void 0;
const utils_1 = require("./utils");

@@ -52,5 +52,2 @@ // Note: don't forget to use "toStringNoFail" on values that are "unknown" or "any"

exports.InvalidPropTypeError = InvalidPropTypeError;
// For Backwards-compatability
/** @deprecated This was renamed to "InvalidPropTypeError" and will be removed in 10.0 */
exports.InvalidWhatIsItError = InvalidPropTypeError;
class CannotBeSymbolError extends Error {

@@ -141,2 +138,8 @@ constructor(name, key) {

exports.NoDiscriminatorFunctionError = NoDiscriminatorFunctionError;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ludGVybmFsL2Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBNEQ7QUFFNUQsbUZBQW1GO0FBRW5GLE1BQWEsZ0JBQWlCLFNBQVEsS0FBSztJQUN6QyxZQUFZLFVBQWtCLEVBQUUsR0FBVyxFQUFFLElBQWE7UUFDeEQsS0FBSyxDQUFDLElBQUksVUFBVSxJQUFJLEdBQUcsa0NBQWtDLElBQUEsc0JBQWMsRUFBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDL0YsQ0FBQztDQUNGO0FBSkQsNENBSUM7QUFFRCxNQUFhLGtCQUFtQixTQUFRLEtBQUs7SUFDM0MsWUFBWSxVQUFrQixFQUFFLEdBQVcsRUFBRSxPQUFlLEVBQUUsU0FBaUI7UUFDN0UsS0FBSyxDQUNILFdBQVcsVUFBVSxJQUFJLEdBQUcscUZBQXFGO1lBQy9HLGlDQUFpQyxPQUFPLElBQUksT0FBTyxTQUFTLEdBQUcsQ0FDbEUsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQVBELGdEQU9DO0FBRUQsTUFBYSxrQkFBbUIsU0FBUSxLQUFLO0lBQzNDLFlBQVksVUFBa0IsRUFBRSxHQUFXLEVBQUUsT0FBZSxFQUFFLFNBQWlCO1FBQzdFLEtBQUssQ0FDSCxXQUFXLFVBQVUsSUFBSSxHQUFHLHdEQUF3RDtZQUNsRix5Q0FBeUMsT0FBTyxJQUFJLE9BQU8sU0FBUyxHQUFHLENBQzFFLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFQRCxnREFPQztBQUVELDhDQUE4QztBQUM5QyxNQUFhLHVCQUF3QixTQUFRLEtBQUs7SUFDaEQsWUFBWSxJQUFZLEVBQUUsR0FBVztRQUNuQyxLQUFLLENBQUMsSUFBSSxJQUFJLElBQUksR0FBRyw4REFBOEQseUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM1SCxDQUFDO0NBQ0Y7QUFKRCwwREFJQztBQUVELE1BQWEsaUJB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
class DuplicateOptionsError extends TypeError {
constructor(duplicateAt) {
super(`Duplicate Option definition at [${duplicateAt.join(',')}] [E032]`);
}
}
exports.DuplicateOptionsError = DuplicateOptionsError;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ludGVybmFsL2Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBNEQ7QUFFNUQsbUZBQW1GO0FBRW5GLE1BQWEsZ0JBQWlCLFNBQVEsS0FBSztJQUN6QyxZQUFZLFVBQWtCLEVBQUUsR0FBVyxFQUFFLElBQWE7UUFDeEQsS0FBSyxDQUFDLElBQUksVUFBVSxJQUFJLEdBQUcsa0NBQWtDLElBQUEsc0JBQWMsRUFBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDL0YsQ0FBQztDQUNGO0FBSkQsNENBSUM7QUFFRCxNQUFhLGtCQUFtQixTQUFRLEtBQUs7SUFDM0MsWUFBWSxVQUFrQixFQUFFLEdBQVcsRUFBRSxPQUFlLEVBQUUsU0FBaUI7UUFDN0UsS0FBSyxDQUNILFdBQVcsVUFBVSxJQUFJLEdBQUcscUZBQXFGO1lBQy9HLGlDQUFpQyxPQUFPLElBQUksT0FBTyxTQUFTLEdBQUcsQ0FDbEUsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQVBELGdEQU9DO0FBRUQsTUFBYSxrQkFBbUIsU0FBUSxLQUFLO0lBQzNDLFlBQVksVUFBa0IsRUFBRSxHQUFXLEVBQUUsT0FBZSxFQUFFLFNBQWlCO1FBQzdFLEtBQUssQ0FDSCxXQUFXLFVBQVUsSUFBSSxHQUFHLHdEQUF3RDtZQUNsRix5Q0FBeUMsT0FBTyxJQUFJLE9BQU8sU0FBUyxHQUFHLENBQzFFLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFQRCxnREFPQztBQUVELDhDQUE4QztBQUM5QyxNQUFhLHVCQUF3QixTQUFRLEtBQUs7SUFDaEQsWUFBWSxJQUFZLEVBQUUsR0FBVztRQUNuQyxLQUFLLENBQUMsSUFBSSxJQUFJLElBQUksR0FBRyw4REFBOEQseUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM1SCxDQUFDO0NBQ0Y7QUFKRCwwREFJQztBQUVELE1BQWEsaUJB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

@@ -1,2 +0,2 @@

import type { DecoratedPropertyMetadata } from '../types';
import type { ProcessPropOptions } from '../types';
/**

@@ -6,2 +6,2 @@ * Function that is the actual processing of the prop's (used for caching)

*/
export declare function processProp(input: DecoratedPropertyMetadata): void;
export declare function processProp(input: ProcessPropOptions): void;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.processProp = void 0;
const tslib_1 = require("tslib");
const logSettings_1 = require("../logSettings");
const typegoose_1 = require("../typegoose");
const constants_1 = require("./constants");
const data_1 = require("./data");
const errors_1 = require("./errors");

@@ -16,3 +14,2 @@ const utils = require("./utils");

function processProp(input) {
var _a, _b, _c;
const { key, target } = input;

@@ -22,3 +19,3 @@ const name = utils.getName(target);

let Type = Reflect.getMetadata(constants_1.DecoratorKeys.Type, target, key);
const propKind = (_a = input.whatis) !== null && _a !== void 0 ? _a : detectPropType(Type);
const propKind = input.propType ?? detectPropType(Type);
logSettings_1.logger.debug('Starting to process "%s.%s"', name, key);

@@ -72,5 +69,11 @@ utils.assertion(typeof key === 'string', () => new errors_1.CannotBeSymbolError(name, key));

}
if ('discriminators' in rawOptions) {
const modelOptionsOfType = Reflect.getMetadata(constants_1.DecoratorKeys.ModelOptions, Type ?? {}) ?? {};
// throw a error when both "discriminators" as a prop-option and as a model-option are defined
if ('discriminators' in rawOptions && !utils.isNullOrUndefined(modelOptionsOfType?.options?.discriminators)) {
throw new errors_1.DuplicateOptionsError(['discriminators(prop-option)', 'discriminators(model-option)']);
}
if ('discriminators' in rawOptions || !utils.isNullOrUndefined(modelOptionsOfType?.options?.discriminators)) {
const discriminatorsToUse = rawOptions?.discriminators ?? modelOptionsOfType?.options?.discriminators;
logSettings_1.logger.debug('Found option "discriminators" in "%s.%s"', name, key);
const gotType = utils.getType(rawOptions.discriminators, true);
const gotType = utils.getType(discriminatorsToUse, true);
utils.assertion(gotType.dim === 1, () => new errors_1.OptionDoesNotSupportOptionError('discriminators', 'dim', '1', `dim: ${gotType.dim}`));

@@ -89,3 +92,3 @@ const discriminators = gotType.type.map((val, index) => {

});
const disMap = new Map((_b = Reflect.getMetadata(constants_1.DecoratorKeys.NestedDiscriminators, target.constructor)) !== null && _b !== void 0 ? _b : []);
const disMap = new Map(Reflect.getMetadata(constants_1.DecoratorKeys.NestedDiscriminators, target.constructor) ?? []);
disMap.set(key, discriminators);

@@ -112,3 +115,3 @@ Reflect.defineMetadata(constants_1.DecoratorKeys.NestedDiscriminators, disMap, target.constructor);

}
const virtuals = new Map((_c = Reflect.getMetadata(constants_1.DecoratorKeys.VirtualPopulate, target.constructor)) !== null && _c !== void 0 ? _c : []);
const virtuals = new Map(Reflect.getMetadata(constants_1.DecoratorKeys.VirtualPopulate, target.constructor) ?? []);
virtuals.set(key, rawOptions);

@@ -122,3 +125,3 @@ Reflect.defineMetadata(constants_1.DecoratorKeys.VirtualPopulate, virtuals, target.constructor);

}
const schemaProp = utils.initProperty(name, key, propKind);
const schemaProp = utils.getCachedSchema(input.cl);
// do this early, because the other options (enum, ref, refPath, discriminators) should not matter for this one

@@ -139,6 +142,13 @@ if (Type instanceof typegoose_1.Passthrough) {

const mapped = utils.mapOptions(rawOptions, newType, target, key);
schemaProp[key] = Object.assign(Object.assign({}, mapped.outer), { type: Map, of: Object.assign({ type: newType }, mapped.inner) });
schemaProp[key] = {
...mapped.outer,
type: Map,
of: { type: newType, ...mapped.inner },
};
return;
case constants_1.PropType.NONE:
schemaProp[key] = Object.assign(Object.assign({}, rawOptions), { type: newType });
schemaProp[key] = {
...rawOptions,
type: newType,
};
return;

@@ -159,7 +169,19 @@ default:

case constants_1.PropType.NONE:
schemaProp[key] = Object.assign({ type: refType, ref }, rawOptions);
schemaProp[key] = {
type: refType,
ref,
...rawOptions,
};
break;
case constants_1.PropType.MAP:
const mapped = utils.mapOptions(rawOptions, refType, target, key);
schemaProp[key] = Object.assign(Object.assign({}, mapped.outer), { type: Map, of: Object.assign({ type: refType, ref }, mapped.inner) });
schemaProp[key] = {
...mapped.outer,
type: Map,
of: {
type: refType,
ref,
...mapped.inner,
},
};
break;

@@ -180,3 +202,7 @@ default:

case constants_1.PropType.NONE:
schemaProp[key] = Object.assign({ type: refType, refPath }, rawOptions);
schemaProp[key] = {
type: refType,
refPath,
...rawOptions,
};
break;

@@ -265,3 +291,3 @@ default:

/** Is this Type (/Class) in the schemas Map? */
const isInSchemas = data_1.schemas.has(utils.getName(Type));
const hasCachedSchema = !utils.isNullOrUndefined(Reflect.getMetadata(constants_1.DecoratorKeys.CachedSchema, Type));
if (utils.isPrimitive(Type)) {

@@ -282,12 +308,19 @@ if (utils.isObject(Type, true)) {

// "rawOptions" is not used here, because that would duplicate some options to where the should not be
finalType = utils.mapArrayOptions(Object.assign(Object.assign({}, mapped.inner), { dim: rawOptions.dim }), Type, target, key);
finalType = utils.mapArrayOptions({ ...mapped.inner, dim: rawOptions.dim }, Type, target, key);
}
else {
mapped = utils.mapOptions(rawOptions, Type, target, key);
finalType = Object.assign(Object.assign({}, mapped.inner), { type: Type });
finalType = { ...mapped.inner, type: Type };
}
schemaProp[key] = Object.assign(Object.assign({}, mapped.outer), { type: Map, of: Object.assign({}, finalType) });
schemaProp[key] = {
...mapped.outer,
type: Map,
of: { ...finalType },
};
return;
case constants_1.PropType.NONE:
schemaProp[key] = Object.assign(Object.assign({}, rawOptions), { type: Type });
schemaProp[key] = {
...rawOptions,
type: Type,
};
return;

@@ -300,6 +333,9 @@ default:

// so that mongoose can store it as nested document
if (utils.isObject(Type) && !isInSchemas) {
if (utils.isObject(Type) && !hasCachedSchema) {
utils.warnMixed(target, key);
logSettings_1.logger.warn('if someone can see this message, please open an new issue at https://github.com/typegoose/typegoose/issues with reproduction code for tests');
schemaProp[key] = Object.assign(Object.assign({}, rawOptions), { type: typegoose_1.mongoose.Schema.Types.Mixed });
schemaProp[key] = {
...rawOptions,
type: typegoose_1.mongoose.Schema.Types.Mixed,
};
return;

@@ -316,11 +352,22 @@ }

logSettings_1.logger.debug('Map SubDocument Array for "%s.%s"', name, key);
const _d = utils.mapArrayOptions(rawOptions, virtualSchema, target, key, Type), { type } = _d, outer = tslib_1.__rest(_d, ["type"]);
schemaProp[key] = Object.assign(Object.assign({}, outer), { type: Map, of: type });
const { type, ...outer } = utils.mapArrayOptions(rawOptions, virtualSchema, target, key, Type);
schemaProp[key] = {
...outer,
type: Map,
of: type,
};
return;
}
const mapped = utils.mapOptions(rawOptions, virtualSchema, target, key, Type);
schemaProp[key] = Object.assign(Object.assign({}, mapped.outer), { type: Map, of: Object.assign({ type: virtualSchema }, mapped.inner) });
schemaProp[key] = {
...mapped.outer,
type: Map,
of: { type: virtualSchema, ...mapped.inner },
};
return;
case constants_1.PropType.NONE:
schemaProp[key] = Object.assign(Object.assign({}, rawOptions), { type: virtualSchema });
schemaProp[key] = {
...rawOptions,
type: virtualSchema,
};
return;

@@ -356,2 +403,2 @@ default:

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzc1Byb3AuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW50ZXJuYWwvcHJvY2Vzc1Byb3AudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLGdEQUF3QztBQUN4Qyw0Q0FBa0U7QUFVbEUsMkNBQXNEO0FBQ3RELGlDQUFpQztBQUNqQyxxQ0FZa0I7QUFDbEIsaUNBQWlDO0FBRWpDOzs7R0FHRztBQUNILFNBQWdCLFdBQVcsQ0FBQyxLQUFnQzs7SUFDMUQsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUM7SUFDOUIsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuQyxNQUFNLFVBQVUsR0FBaUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2xFLElBQUksSUFBSSxHQUFvQixPQUFPLENBQUMsV0FBVyxDQUFDLHlCQUFhLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNqRixNQUFNLFFBQVEsR0FBRyxNQUFBLEtBQUssQ0FBQyxNQUFNLG1DQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUV0RCxvQkFBTSxDQUFDLEtBQUssQ0FBQyw2QkFBNkIsRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDdkQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEdBQUcsS0FBSyxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSw0QkFBbUIsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUVuRixpQ0FBaUM7SUFFakM7UUFDRSxxQ0FBcUM7UUFDckMsUUFBUSxRQUFRLEVBQUU7WUFDaEIsS0FBSyxvQkFBUSxDQUFDLElBQUk7Z0JBQ2hCLE1BQU07WUFDUixLQUFLLG9CQUFRLENBQUMsR0FBRyxDQUFDO1lBQ2xCLEtBQUss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
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzc1Byb3AuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW50ZXJuYWwvcHJvY2Vzc1Byb3AudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsZ0RBQXdDO0FBQ3hDLDRDQUFrRTtBQVdsRSwyQ0FBc0Q7QUFDdEQscUNBYWtCO0FBQ2xCLGlDQUFpQztBQUVqQzs7O0dBR0c7QUFDSCxTQUFnQixXQUFXLENBQUMsS0FBeUI7SUFDbkQsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUM7SUFDOUIsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuQyxNQUFNLFVBQVUsR0FBaUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2xFLElBQUksSUFBSSxHQUFvQixPQUFPLENBQUMsV0FBVyxDQUFDLHlCQUFhLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNqRixNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUV4RCxvQkFBTSxDQUFDLEtBQUssQ0FBQyw2QkFBNkIsRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDdkQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEdBQUcsS0FBSyxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSw0QkFBbUIsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUVuRixpQ0FBaUM7SUFFakM7UUFDRSxxQ0FBcUM7UUFDckMsUUFBUSxRQUFRLEVBQUU7WUFDaEIsS0FBSyxvQkFBUSxDQUFDLElBQUk7Z0JBQ2hCLE1BQU07WUFDUixLQUFLLG9CQUFRLENBQUMsR0FBRyxDQUFDO1lBQ2xCLEtBQUssb0JBQVEsQ0FBQyxLQUFLO2dCQUNq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
import * as mongoose from 'mongoose';
import type { AnyParamConstructor, IModelOptions } from '../types';
import type { AnyParamConstructor, IBuildSchemaOptions, INamingOptions } from '../types';
/**

@@ -10,8 +10,9 @@ * Internal Schema Builder for Classes

* @param isFinalSchema Set if this Schema is the final (top-level) to build, only when "true" are discriminators, hooks, virtuals, etc applied
* @param overwriteOptions Overwrite ModelOptions for Name Generation (Not Merged with Decorator)
* @param overwriteNaming Overwrite options for name generation
* @param extraOptions Extra options to affect what needs to be done
* @returns Returns the Build Schema
* @private
*/
export declare function _buildSchema<U extends AnyParamConstructor<any>>(cl: U, origSch?: mongoose.Schema<any>, opt?: mongoose.SchemaOptions, isFinalSchema?: boolean, overwriteOptions?: IModelOptions): mongoose.Schema<any, mongoose.Model<any, any, any, any, any>, {}, {}, {}, {}, "type", {
export declare function _buildSchema<U extends AnyParamConstructor<any>>(cl: U, origSch?: mongoose.Schema<any>, opt?: mongoose.SchemaOptions, isFinalSchema?: boolean, overwriteNaming?: INamingOptions, extraOptions?: IBuildSchemaOptions): mongoose.Schema<any, mongoose.Model<any, any, any, any, any>, {}, {}, {}, {}, "type", {
[x: string]: any;
}>;

@@ -19,8 +19,8 @@ "use strict";

* @param isFinalSchema Set if this Schema is the final (top-level) to build, only when "true" are discriminators, hooks, virtuals, etc applied
* @param overwriteOptions Overwrite ModelOptions for Name Generation (Not Merged with Decorator)
* @param overwriteNaming Overwrite options for name generation
* @param extraOptions Extra options to affect what needs to be done
* @returns Returns the Build Schema
* @private
*/
function _buildSchema(cl, origSch, opt, isFinalSchema = true, overwriteOptions) {
var _a, _b;
function _buildSchema(cl, origSch, opt, isFinalSchema = true, overwriteNaming, extraOptions) {
(0, utils_1.assertionIsClass)(cl);

@@ -30,28 +30,39 @@ (0, utils_1.assignGlobalModelOptions)(cl); // to ensure global options are applied to the current class

opt = (0, utils_1.mergeSchemaOptions)((0, utils_1.isNullOrUndefined)(opt) || typeof opt !== 'object' ? {} : opt, cl);
/** used, because when trying to resolve an child, the overwriteOptions for that child are not available */
const className = (0, utils_1.getName)(cl);
const finalName = (0, utils_1.getName)(cl, overwriteOptions);
const finalName = (0, utils_1.getName)(cl, overwriteNaming);
logSettings_1.logger.debug('_buildSchema Called for %s with options:', finalName, opt);
/** Simplify the usage */
const Schema = mongoose.Schema;
const ropt = (_a = Reflect.getMetadata(constants_1.DecoratorKeys.ModelOptions, cl)) !== null && _a !== void 0 ? _a : {};
const schemaOptions = Object.assign({}, (_b = ropt === null || ropt === void 0 ? void 0 : ropt.schemaOptions) !== null && _b !== void 0 ? _b : {}, opt);
const ropt = Reflect.getMetadata(constants_1.DecoratorKeys.ModelOptions, cl) ?? {};
const schemaOptions = Object.assign({}, ropt?.schemaOptions ?? {}, opt);
const decorators = Reflect.getMetadata(constants_1.DecoratorKeys.PropCache, cl.prototype);
if (!(0, utils_1.isNullOrUndefined)(decorators)) {
for (const decorator of decorators.values()) {
(0, processProp_1.processProp)(decorator);
(0, processProp_1.processProp)({ ...decorator, cl: cl });
}
}
if (!data_1.schemas.has(className)) {
data_1.schemas.set(className, {});
}
let sch;
if (!(origSch instanceof Schema)) {
sch = new Schema(data_1.schemas.get(className), schemaOptions);
{
const schemaReflectTarget = (0, utils_1.getCachedSchema)(cl);
if (!(origSch instanceof Schema)) {
sch = new Schema(schemaReflectTarget, schemaOptions);
}
else {
sch = origSch.clone();
sch.add(schemaReflectTarget);
}
}
else {
sch = origSch.clone();
sch.add(data_1.schemas.get(className));
sch.loadClass(cl);
// in the block below are all the things that need to be done for each class, not just the final schema
// for example when using "getOwnMetadata" over "getMetadata" (and having a clone in there)
{
/** Get Metadata for indices */
const indices = Reflect.getOwnMetadata(constants_1.DecoratorKeys.Index, cl);
const buildIndexes = typeof extraOptions?.buildIndexes === 'boolean' ? extraOptions?.buildIndexes : true;
if (Array.isArray(indices) && buildIndexes) {
for (const index of indices) {
logSettings_1.logger.debug('Applying Index:', index);
sch.index(index.fields, index.options);
}
}
}
sch.loadClass(cl);
if (isFinalSchema) {

@@ -64,3 +75,2 @@ /** Get Metadata for Nested Discriminators */

const path = sch.path(key);
// TODO: add test for this error
(0, utils_1.assertion)(!(0, utils_1.isNullOrUndefined)(path), () => new errors_1.PathNotInSchemaError(finalName, key));

@@ -85,4 +95,4 @@ // TODO: add test for this error

if (Array.isArray(preHooks)) {
// "as any" is used here because mongoose now has static typings for method names, but the intermediate "IHooksArray" has "string"
preHooks.forEach((obj) => sch.pre(obj.method, obj.options, obj.func));
// "as any" is used here because mongoose explicitly types out many methods, but the input type (from IHooksArray) is a combination of multiple types
preHooks.forEach((obj) => callCorrectSignature(sch, 'pre', obj));
}

@@ -92,4 +102,4 @@ /** Get Metadata for PreHooks */

if (Array.isArray(postHooks)) {
// "as any" is used here because mongoose now has static typings for method names, but the intermediate "IHooksArray" has "string"
postHooks.forEach((obj) => sch.post(obj.method, obj.options, obj.func));
// "as any" is used here because mongoose explicitly types out many methods, but the input type (from IHooksArray) is a combination of multiple types
postHooks.forEach((obj) => callCorrectSignature(sch, 'post', obj));
}

@@ -105,10 +115,2 @@ }

}
/** Get Metadata for indices */
const indices = Reflect.getMetadata(constants_1.DecoratorKeys.Index, cl);
if (Array.isArray(indices)) {
for (const index of indices) {
logSettings_1.logger.debug('Applying Index:', index);
sch.index(index.fields, index.options);
}
}
/** Get Metadata for Query Methods */

@@ -140,2 +142,15 @@ const queryMethods = Reflect.getMetadata(constants_1.DecoratorKeys.QueryMethod, cl);

exports._buildSchema = _buildSchema;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ludGVybmFsL3NjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxQ0FBcUM7QUFDckMsZ0RBQXdDO0FBQ3hDLDRDQUEyQztBQVkzQywyQ0FBNEM7QUFDNUMsaUNBQStDO0FBQy9DLHFDQUE4RTtBQUM5RSwrQ0FBNEM7QUFDNUMsbUNBQWdJO0FBRWhJOzs7Ozs7Ozs7O0dBVUc7QUFDSCxTQUFnQixZQUFZLENBQzFCLEVBQUssRUFDTCxPQUE4QixFQUM5QixHQUE0QixFQUM1QixnQkFBeUIsSUFBSSxFQUM3QixnQkFBZ0M7O0lBRWhDLElBQUEsd0JBQWdCLEVBQUMsRUFBRSxDQUFDLENBQUM7SUFFckIsSUFBQSxnQ0FBd0IsRUFBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLDREQUE0RDtJQUUxRix1QkFBdUI7SUFDdkIsR0FBRyxHQUFHLElBQUEsMEJBQWtCLEVBQUMsSUFBQSx5QkFBaUIsRUFBQyxHQUFHLENBQUMsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRTNGLDJHQUEyRztJQUMzRyxNQUFNLFNBQVMsR0FBRyxJQUFBLGVBQU8sRUFBQyxFQUFFLENBQUMsQ0FBQztJQUM5QixNQUFNLFNBQVMsR0FBRyxJQUFBLGVBQU8sRUFBQyxFQUFFLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUVoRCxvQkFBTSxDQUFDLEtBQUssQ0FBQywwQ0FBMEMsRUFBRSxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFFekUseUJBQXlCO0lBQ3pCLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUM7SUFDL0IsTUFBTSxJQUFJLEdBQWtCLE1BQUEsT0FBTyxDQUFDLFdBQVcsQ0FBQyx5QkFBYSxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsbUNBQUksRUFB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
/**
* Helper function to call the correct signature for a given "fnToCall" (pre / post hooks)
* @param fnToCall The function to call (sch.pre / sch.post)
* @param obj The object to call as arguments with
*/
function callCorrectSignature(sch, fn, obj) {
// we have to bind "sch", otherwise "this" will not be defined in the "pre / post" functions
const fnToCall = (fn === 'pre' ? sch.pre : sch.post).bind(sch);
if (!(0, utils_1.isNullOrUndefined)(obj.options)) {
return fnToCall(obj.methods, obj.options, obj.func);
}
return fnToCall(obj.methods, obj.func);
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ludGVybmFsL3NjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxQ0FBcUM7QUFDckMsZ0RBQXdDO0FBQ3hDLDRDQUEyQztBQWMzQywyQ0FBNEM7QUFDNUMsaUNBQXNDO0FBQ3RDLHFDQUE4RTtBQUM5RSwrQ0FBNEM7QUFDNUMsbUNBUWlCO0FBRWpCOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsU0FBZ0IsWUFBWSxDQUMxQixFQUFLLEVBQ0wsT0FBOEIsRUFDOUIsR0FBNEIsRUFDNUIsZ0JBQXlCLElBQUksRUFDN0IsZUFBZ0MsRUFDaEMsWUFBa0M7SUFFbEMsSUFBQSx3QkFBZ0IsRUFBQyxFQUFFLENBQUMsQ0FBQztJQUVyQixJQUFBLGdDQUF3QixFQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsNERBQTREO0lBRTFGLHVCQUF1QjtJQUN2QixHQUFHLEdBQUcsSUFBQSwwQkFBa0IsRUFBQyxJQUFBLHlCQUFpQixFQUFDLEdBQUcsQ0FBQyxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFM0YsTUFBTSxTQUFTLEdBQUcsSUFBQSxlQUFPLEVBQUMsRUFBRSxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBRS9DLG9CQUFNLENBQUMsS0FBSyxDQUFDLDBDQUEwQyxFQUFFLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUV6RSx5QkFBeUI7SUFDekIsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQztJQUMvQixNQUFNLElBQUksR0FBa0IsT0FBTyxDQUFDLFdBQVcsQ0FBQyx5QkFBYSxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdEYsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsSUFB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
import * as mongoose from 'mongoose';
import type { AnyParamConstructor, DeferredFunc, Func, GetTypeReturn, IModelOptions, IObjectWithTypegooseFunction, IObjectWithTypegooseName, IPrototype, KeyStringAny, MappedInnerOuterOptions, PropOptionsForNumber, PropOptionsForString, VirtualOptions } from '../types';
import { DecoratorKeys, PropType } from './constants';
import type { AnyParamConstructor, DeferredFunc, Func, GetTypeReturn, IModelOptions, INamingOptions, IObjectWithTypegooseFunction, IPrototype, KeyStringAny, MappedInnerOuterOptions, PropOptionsForNumber, PropOptionsForString, VirtualOptions } from '../types';
import { DecoratorKeys } from './constants';
/**

@@ -37,20 +37,14 @@ * Returns true, if the type is included in mongoose.Schema.Types

/**
* Generate the initial values for the property to be extended upon
* @param name Name of the current Model/Class
* @param key Key of the property
* @param proptype Type of the Property
* Get or init the Cached Schema
* @param target The Target to get / init the cached schema
* @returns The Schema to use
*/
export declare function initProperty(name: string, key: string, proptype: PropType): {
[path: string]: mongoose.SchemaDefinitionProperty<undefined>;
};
export declare function getCachedSchema(target: AnyParamConstructor<any>): Record<string, mongoose.SchemaDefinition<unknown>>;
/**
* Get the Class for a given Document
* @param document The Document to fetch the class from
*/
export declare function getClassForDocument(document: mongoose.Document): NewableFunction | undefined;
/**
* Get the Class for a number of inputs
* @param input The Input to fetch the class from
*/
export declare function getClass(input: (mongoose.Document & IObjectWithTypegooseFunction) | (mongoose.Schema.Types.Subdocument & IObjectWithTypegooseFunction) | string | IObjectWithTypegooseName | any): NewableFunction | undefined;
export declare function getClass(input: mongoose.Document | IObjectWithTypegooseFunction | {
typegooseName: string;
} | string | any): NewableFunction | undefined;
/**

@@ -124,5 +118,5 @@ * Returns all options found in "options" that are String-validate related

* @param cl The Class to get the name for
* @param overwriteOptions Overwrite ModelOptions to generate a name from (Only name related options are merged)
* @param overwriteNaming Overwrite naming options used for generating the name
*/
export declare function getName<U extends AnyParamConstructor<any>>(cl: U, overwriteOptions?: IModelOptions): string;
export declare function getName<U extends AnyParamConstructor<any>>(cl: U, overwriteNaming?: INamingOptions): string;
/**

@@ -227,1 +221,7 @@ * Check if "Type" is a class and if it is already in "schemas"

export declare function toStringNoFail(value: unknown): string;
/**
* Map options from {@link IModelOptions} to {@link INamingOptions}
* @param options The options to map
* @returns Always a object, contains mapped options from {@link IModelOptions}
*/
export declare function mapModelOptionsToNaming(options: IModelOptions | undefined): INamingOptions;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.toStringNoFail = exports.warnNotCorrectTypeOptions = exports.isConstructor = exports.getType = exports.assertionIsClass = exports.assertion = exports.createArrayFromDimensions = exports.assignGlobalModelOptions = exports.isNullOrUndefined = exports.warnMixed = exports.isTypeMeantToBeArray = exports.mapOptions = exports.mapArrayOptions = exports.isNotDefined = exports.getName = exports.getRightTarget = exports.mergeSchemaOptions = exports.mergeMetadata = exports.assignMetadata = exports.includesAllVirtualPOP = exports.allVirtualoptions = exports.isWithVirtualPOP = exports.isWithEnumValidate = exports.isWithNumberValidate = exports.isWithStringTransform = exports.isWithStringValidate = exports.getClass = exports.getClassForDocument = exports.initProperty = exports.isString = exports.isNumber = exports.isObject = exports.isAnRefType = exports.isPrimitive = void 0;
exports.mapModelOptionsToNaming = exports.toStringNoFail = exports.warnNotCorrectTypeOptions = exports.isConstructor = exports.getType = exports.assertionIsClass = exports.assertion = exports.createArrayFromDimensions = exports.assignGlobalModelOptions = exports.isNullOrUndefined = exports.warnMixed = exports.isTypeMeantToBeArray = exports.mapOptions = exports.mapArrayOptions = exports.isNotDefined = exports.getName = exports.getRightTarget = exports.mergeSchemaOptions = exports.mergeMetadata = exports.assignMetadata = exports.includesAllVirtualPOP = exports.allVirtualoptions = exports.isWithVirtualPOP = exports.isWithEnumValidate = exports.isWithNumberValidate = exports.isWithStringTransform = exports.isWithStringValidate = exports.getClass = exports.getCachedSchema = exports.isString = exports.isNumber = exports.isObject = exports.isAnRefType = exports.isPrimitive = void 0;
const lodash_1 = require("lodash");

@@ -16,3 +16,3 @@ const mongoose = require("mongoose");

function isPrimitive(Type) {
if (typeof (Type === null || Type === void 0 ? void 0 : Type.name) === 'string') {
if (typeof Type?.name === 'string') {
// try to match "Type.name" with all the Property Names of "mongoose.Schema.Types"

@@ -34,3 +34,3 @@ // (like "String" with "mongoose.Schema.Types.String")

function isAnRefType(Type) {
if (typeof (Type === null || Type === void 0 ? void 0 : Type.name) === 'string') {
if (typeof Type?.name === 'string') {
// Note: this is not done "once" because types can be added as custom types

@@ -66,3 +66,3 @@ const tmp = Object.getOwnPropertyNames(mongoose.Schema.Types).filter((x) => {

function isObject(Type, once = false) {
if (typeof (Type === null || Type === void 0 ? void 0 : Type.name) === 'string') {
if (typeof Type?.name === 'string') {
let prototype = Type.prototype;

@@ -78,3 +78,3 @@ let name = Type.name;

prototype = Object.getPrototypeOf(prototype);
name = prototype === null || prototype === void 0 ? void 0 : prototype.constructor.name;
name = prototype?.constructor.name;
}

@@ -91,4 +91,3 @@ }

function isNumber(Type) {
var _a;
const name = (_a = Type === null || Type === void 0 ? void 0 : Type.name) !== null && _a !== void 0 ? _a : '';
const name = Type?.name ?? '';
return name === 'Number' || name === mongoose.Schema.Types.Number.name;

@@ -103,4 +102,3 @@ }

function isString(Type) {
var _a;
const name = (_a = Type === null || Type === void 0 ? void 0 : Type.name) !== null && _a !== void 0 ? _a : '';
const name = Type?.name ?? '';
return name === 'String' || name === mongoose.Schema.Types.String.name;

@@ -110,33 +108,21 @@ }

/**
* Generate the initial values for the property to be extended upon
* @param name Name of the current Model/Class
* @param key Key of the property
* @param proptype Type of the Property
* Get or init the Cached Schema
* @param target The Target to get / init the cached schema
* @returns The Schema to use
*/
function initProperty(name, key, proptype) {
const schemaProp = !data_1.schemas.has(name) ? data_1.schemas.set(name, {}).get(name) : data_1.schemas.get(name);
switch (proptype) {
case constants_1.PropType.ARRAY:
schemaProp[key] = [{}];
break;
case constants_1.PropType.MAP:
case constants_1.PropType.NONE:
schemaProp[key] = {};
break;
default:
throw new errors_1.InvalidPropTypeError(proptype, name, key, 'PropType(initProperty)');
function getCachedSchema(target) {
let schemaReflectTarget = Reflect.getMetadata(constants_1.DecoratorKeys.CachedSchema, target);
if (isNullOrUndefined(schemaReflectTarget)) {
Reflect.defineMetadata(constants_1.DecoratorKeys.CachedSchema, {}, target);
schemaReflectTarget = Reflect.getMetadata(constants_1.DecoratorKeys.CachedSchema, target);
}
return schemaProp;
else if (isNullOrUndefined(Reflect.getOwnMetadata(constants_1.DecoratorKeys.CachedSchema, target))) {
// set own metadata and clone object, because otherwise on inheritance it would just modify the base class's object, not its own object
schemaReflectTarget = { ...schemaReflectTarget };
Reflect.defineMetadata(constants_1.DecoratorKeys.CachedSchema, schemaReflectTarget, target);
}
return schemaReflectTarget;
}
exports.initProperty = initProperty;
exports.getCachedSchema = getCachedSchema;
/**
* Get the Class for a given Document
* @param document The Document to fetch the class from
*/
function getClassForDocument(document) {
const modelName = document.constructor.modelName;
return data_1.constructors.get(modelName);
}
exports.getClassForDocument = getClassForDocument;
/**
* Get the Class for a number of inputs

@@ -149,8 +135,11 @@ * @param input The Input to fetch the class from

}
if (typeof (input === null || input === void 0 ? void 0 : input.typegooseName) === 'string') {
if (typeof input?.typegooseName === 'string') {
return data_1.constructors.get(input.typegooseName);
}
if (typeof (input === null || input === void 0 ? void 0 : input.typegooseName) === 'function') {
if (typeof input?.typegooseName === 'function') {
return data_1.constructors.get(input.typegooseName());
}
if (typeof input?.constructor?.modelName === 'string') {
return data_1.constructors.get(input.constructor.modelName);
}
throw new errors_1.ResolveTypegooseNameError(input);

@@ -274,4 +263,3 @@ }

function getRightTarget(target) {
var _a;
return ((_a = target.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'Function' ? target : target.constructor;
return target.constructor?.name === 'Function' ? target : target.constructor;
}

@@ -283,6 +271,5 @@ exports.getRightTarget = getRightTarget;

* @param cl The Class to get the name for
* @param overwriteOptions Overwrite ModelOptions to generate a name from (Only name related options are merged)
* @param overwriteNaming Overwrite naming options used for generating the name
*/
function getName(cl, overwriteOptions) {
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
function getName(cl, overwriteNaming) {
// this case (cl being undefined / null) can happen when type casting (or type being "any") happened and wanting to throw a Error (and there using "getName" to help)

@@ -293,5 +280,5 @@ // check if input variable is undefined, if it is throw a error (cannot be combined with the error below because of "getRightTarget")

assertion(isConstructor(ctor), () => new errors_1.NoValidClassError(ctor));
const options = (_a = Reflect.getMetadata(constants_1.DecoratorKeys.ModelOptions, ctor)) !== null && _a !== void 0 ? _a : {};
const options = Reflect.getMetadata(constants_1.DecoratorKeys.ModelOptions, ctor) ?? {};
const baseName = ctor.name;
const customName = (_c = (_b = overwriteOptions === null || overwriteOptions === void 0 ? void 0 : overwriteOptions.options) === null || _b === void 0 ? void 0 : _b.customName) !== null && _c !== void 0 ? _c : (_d = options.options) === null || _d === void 0 ? void 0 : _d.customName;
const customName = overwriteNaming?.customName ?? options.options?.customName;
if (typeof customName === 'function') {

@@ -302,5 +289,5 @@ const name = customName(options);

}
const automaticName = (_f = (_e = overwriteOptions === null || overwriteOptions === void 0 ? void 0 : overwriteOptions.options) === null || _e === void 0 ? void 0 : _e.automaticName) !== null && _f !== void 0 ? _f : (_g = options.options) === null || _g === void 0 ? void 0 : _g.automaticName;
const automaticName = overwriteNaming?.automaticName ?? options.options?.automaticName;
if (automaticName) {
const suffix = (_j = customName !== null && customName !== void 0 ? customName : (_h = overwriteOptions === null || overwriteOptions === void 0 ? void 0 : overwriteOptions.schemaOptions) === null || _h === void 0 ? void 0 : _h.collection) !== null && _j !== void 0 ? _j : (_k = options.schemaOptions) === null || _k === void 0 ? void 0 : _k.collection;
const suffix = customName ?? overwriteNaming?.schemaCollection ?? options.schemaOptions?.collection;
return !isNullOrUndefined(suffix) ? `${baseName}_${suffix}` : baseName;

@@ -320,3 +307,6 @@ }

function isNotDefined(Type) {
return typeof Type === 'function' && !isPrimitive(Type) && Type !== Object && !data_1.schemas.has(getName(Type));
return (typeof Type === 'function' &&
!isPrimitive(Type) &&
Type !== Object &&
isNullOrUndefined(Reflect.getMetadata(constants_1.DecoratorKeys.CachedSchema, Type)));
}

@@ -339,3 +329,3 @@ exports.isNotDefined = isNotDefined;

logSettings_1.logger.debug('mapArrayOptions called');
loggerType = loggerType !== null && loggerType !== void 0 ? loggerType : Type;
loggerType = loggerType ?? Type;
if (!(Type instanceof mongoose.Schema)) {

@@ -348,5 +338,12 @@ loggerType = Type;

/** The Object that gets returned */
const returnObject = Object.assign(Object.assign({}, mapped.outer), { type: [
Object.assign(Object.assign({ type: Type }, mapped.inner), extraInner),
] });
const returnObject = {
...mapped.outer,
type: [
{
type: Type,
...mapped.inner,
...extraInner,
},
],
};
rawOptions.dim = dim; // re-add for "createArrayFromDimensions"

@@ -369,5 +366,4 @@ returnObject.type = createArrayFromDimensions(rawOptions, returnObject.type, getName(target), pkey);

function mapOptions(rawOptions, Type, target, pkey, loggerType) {
var _a;
logSettings_1.logger.debug('mapOptions called');
loggerType = loggerType !== null && loggerType !== void 0 ? loggerType : Type;
loggerType = loggerType ?? Type;
/** The Object that gets returned */

@@ -395,3 +391,3 @@ const ret = {

/** The OptionsConstructor to use */
let OptionsCTOR = (_a = Type === null || Type === void 0 ? void 0 : Type.prototype) === null || _a === void 0 ? void 0 : _a.OptionsConstructor;
let OptionsCTOR = Type?.prototype?.OptionsConstructor;
if (Type instanceof mongoose.Schema) {

@@ -418,3 +414,3 @@ OptionsCTOR = mongoose.Schema.Types.Subdocument.prototype.OptionsConstructor;

}
if (typeof (options === null || options === void 0 ? void 0 : options.innerOptions) === 'object') {
if (typeof options?.innerOptions === 'object') {
delete ret.outer.innerOptions;

@@ -425,3 +421,3 @@ for (const [key, value] of Object.entries(options.innerOptions)) {

}
if (typeof (options === null || options === void 0 ? void 0 : options.outerOptions) === 'object') {
if (typeof options?.outerOptions === 'object') {
delete ret.outer.outerOptions;

@@ -454,7 +450,6 @@ for (const [key, value] of Object.entries(options.outerOptions)) {

function warnMixed(target, key) {
var _a, _b, _c, _d, _e, _f;
const name = getName(target);
const modelOptions = (_a = Reflect.getMetadata(constants_1.DecoratorKeys.ModelOptions, getRightTarget(target))) !== null && _a !== void 0 ? _a : {};
const modelOptions = Reflect.getMetadata(constants_1.DecoratorKeys.ModelOptions, getRightTarget(target)) ?? {};
const rawOptions = Reflect.getMetadata(constants_1.DecoratorKeys.PropCache, target);
const setSeverity = (_f = (_d = (_c = (_b = rawOptions === null || rawOptions === void 0 ? void 0 : rawOptions.get(key)) === null || _b === void 0 ? void 0 : _b.options) === null || _c === void 0 ? void 0 : _c.allowMixed) !== null && _d !== void 0 ? _d : (_e = modelOptions.options) === null || _e === void 0 ? void 0 : _e.allowMixed) !== null && _f !== void 0 ? _f : constants_1.Severity.WARN;
const setSeverity = rawOptions?.get(key)?.options?.allowMixed ?? modelOptions.options?.allowMixed ?? constants_1.Severity.WARN;
logSettings_1.logger.debug(`setSeverity for "${name}.${key}" is "${setSeverity}"`);

@@ -527,3 +522,3 @@ switch (setSeverity) {

if (!cond) {
throw typeof error === 'function' ? error() : error !== null && error !== void 0 ? error : new errors_1.AssertionFallbackError();
throw typeof error === 'function' ? error() : error ?? new errors_1.AssertionFallbackError();
}

@@ -577,4 +572,3 @@ }

function isConstructor(obj) {
var _a, _b;
return typeof obj === 'function' && !isNullOrUndefined((_b = (_a = obj.prototype) === null || _a === void 0 ? void 0 : _a.constructor) === null || _b === void 0 ? void 0 : _b.name);
return typeof obj === 'function' && !isNullOrUndefined(obj.prototype?.constructor?.name);
}

@@ -625,2 +619,15 @@ exports.isConstructor = isConstructor;

exports.toStringNoFail = toStringNoFail;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW50ZXJuYWwvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQXVEO0FBQ3ZELHFDQUFxQztBQUNyQyxnREFBd0M7QUFpQnhDLDJDQUFnRTtBQUNoRSxpQ0FBOEQ7QUFDOUQscUNBT2tCO0FBRWxCOzs7O0dBSUc7QUFDSCxTQUFnQixXQUFXLENBQUMsSUFBUztJQUNuQyxJQUFJLE9BQU8sQ0FBQSxJQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUUsSUFBSSxDQUFBLEtBQUssUUFBUSxFQUFFO1FBQ2xDLGtGQUFrRjtRQUNsRixzREFBc0Q7UUFDdEQsT0FBTyxDQUNMLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ3JFLG1FQUFtRTtZQUNuRSxpRUFBaUU7WUFDakUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUNqRixDQUFDO0tBQ0g7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFiRCxrQ0FhQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQixXQUFXLENBQUMsSUFBUztJQUNuQyxJQUFJLE9BQU8sQ0FBQSxJQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUUsSUFBSSxDQUFBLEtBQUssUUFBUSxFQUFFO1FBQ2xDLDJFQUEyRTtRQUMzRSxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUs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
/**
* Map options from {@link IModelOptions} to {@link INamingOptions}
* @param options The options to map
* @returns Always a object, contains mapped options from {@link IModelOptions}
*/
function mapModelOptionsToNaming(options) {
const mappedNaming = { ...options?.options }; // this copies more than necessary, but works because most of the options are from there
if (!isNullOrUndefined(options?.schemaOptions?.collection)) {
mappedNaming.schemaCollection = options?.schemaOptions?.collection;
}
return mappedNaming;
}
exports.mapModelOptionsToNaming = mapModelOptionsToNaming;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW50ZXJuYWwvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQXVEO0FBQ3ZELHFDQUFxQztBQUNyQyxnREFBd0M7QUFpQnhDLDJDQUFzRDtBQUN0RCxpQ0FBcUQ7QUFDckQscUNBTWtCO0FBRWxCOzs7O0dBSUc7QUFDSCxTQUFnQixXQUFXLENBQUMsSUFBUztJQUNuQyxJQUFJLE9BQU8sSUFBSSxFQUFFLElBQUksS0FBSyxRQUFRLEVBQUU7UUFDbEMsa0ZBQWtGO1FBQ2xGLHNEQUFzRDtRQUN0RCxPQUFPLENBQ0wsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDckUsbUVBQW1FO1lBQ25FLGlFQUFpRTtZQUNqRSxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQ2pGLENBQUM7S0FDSDtJQUVELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQWJELGtDQWFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLFdBQVcsQ0FBQyxJQUFTO0lBQ25DLElBQUksT0FBTyxJQUFJLEVBQUUsSUFBSSxLQUFLLFFBQVEsRUFBRTtRQUNsQywyRUFBMkU7UUFDM0UsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDekUsUUFBUSxDQUFDLEVBQUU7Z0JBQ1QsS0FBSyxLQUFLLENBQUM7Z0JBQ1gsS0FBSyxNQUFNLENBQUM7Z0JBQ1osS0FBSyxRQUFRLENBQUM7Z0JBQ2QsS0FBSyxTQUFTO29CQUNaLE9BQU8sS0FBSyxDQUFDO2dCQUNmO29CQUNFLE9BQU8sSUFBSSxDQUFDO2FBQ2Y7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILCtHQUErRztRQUMvRyxzREFBc0Q7UUFDdEQsT0FBTyxDQUNMLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUN2QixtRUFBbUU7WUFDbkUsaUVBQWlFO1lBQ2pFLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FDakYsQ0FBQztLQUNIO0lBRUQsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBMUJELGtDQTBCQztBQUVEOzs7Ozs7R0FNRztBQUNILFNBQWdCLFFBQVEsQ0FBQyxJQUFTLEVBQUUsT0FBZ0IsS0FBSztJQUN2RCxJQUFJLE9BQU8sSUFBSSxFQUFFLElBQUksS0FBSyxRQUFRLEVBQUU7UUFDbEMsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUMvQixJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3JCLE9BQU8sSUFBSSxFQUFFO1lBQ1gsSUFBSSxJQUFJLEtBQUssUUFBUSxJQUFJLElBQUksS0FBSyxPQUFPLEVBQUU7Z0JBQ3pDLE9BQU8sSUFBSSxDQUFDO2FBQ2I7WUFDRCxJQUFJLElBQUksRUFBRTtnQkFDUixNQUFNO2FBQ1A7WUFFRCxTQUFTLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUM3QyxJQUFJLEdBQUcsU0FBUyxFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUM7U0FDcEM7S0FDRjtJQUVELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQWxCRCw0QkFrQkM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsUUFBUSxDQUFDLElBQVM7SUFDaEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUM7SUFFOUIsT0FBTyxJQUFJLEtBQUssUUFBUSxJQUFJLElBQUksS0FBSyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO0FBQ3pFLENBQUM7QUFKRCw0QkFJQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQixRQUFRLENBQUMsSUFBUztJQUNoQyxNQUFNLElBQUksR0FBRyxJQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQztJQUU5QixPQUFPLElBQUksS0FBSyxRQUFRLElBQUksSUFBSSxLQUFLLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7QUFDekUsQ0FBQztBQUpELDRCQUlDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLGVBQWUsQ0FBQyxNQUFnQztJQUM5RCxJQUFJLG1CQUFtQixHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMseUJBQWEsQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFFbEYsSUFBSSxpQkFBaUIsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFO1FBQzFDLE9BQU8sQ0FBQyxjQUFjLENBQUMseUJBQWEsQ0FBQyxZQUFZLEVBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQy9ELG1CQUFtQixHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMseUJBQWEsQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLENBQUM7S0FDL0U7U0FBTSxJQUFJLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMseUJBQWEsQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLENBQUMsRUFBRTtRQUN4Rix1SUFBdUk7UUFDdkksbUJBQW1CLEdBQUcsRUFBRSxHQUFHLG1CQUFtQixFQUFFLENBQUM7UUFDakQsT0FBTyxDQUFDLGNBQWMsQ0FBQyx5QkFBYSxDQUFDLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxNQUFNLENBQUMsQ0FBQztLQUNqRjtJQUVELE9BQU8sbUJBQW1CLENBQUM7QUFDN0IsQ0FBQztBQWJELDBDQWFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBZ0IsUUFBUSxDQUN0QixLQUFrRztJQUVsRyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtRQUM3QixPQUFPLG1CQUFZLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ2hDO0lBQ0QsSUFBSSxPQUFPLEtBQUssRUFBRSxhQUFhLEtBQUssUUFBUSxFQUFFO1FBQzVDLE9BQU8sbUJBQVksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0tBQzlDO0lBRUQsSUFBSSxPQUFPLEtBQUssRUFBRSxhQUFhLEtBQUssVUFBVSxFQUFFO1FBQzlDLE9BQU8sbUJBQVksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7S0FDaEQ7SUFFRCxJQUFJLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxTQUFTLEtBQUssUUFBUSxFQUFFO1FBQ3JELE9BQU8sbUJBQVksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztLQUN0RDtJQUVELE1BQU0sSUFBSSxrQ0FBeUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUM3QyxDQUFDO0FBbkJELDRCQW1CQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLG9CQUFvQixDQUFDLE9BQTZCO0lBQ2hFLE9BQU8sSUFBQSxxQkFBWSxFQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUM7QUFDakYsQ0FBQztBQUZELG9EQUVDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBZ0IscUJBQXFCLENBQUMsT0FBNkI7SUFDakUsT0FBTyxJQUFBLHFCQUFZLEVBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztBQUNoRixDQUFDO0FBRkQsc0RBRUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQixvQkFBb0IsQ0FBQyxPQUE2QjtJQUNoRSxPQUFPLElBQUEscUJBQVksRUFBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDNUQsQ0FBQztBQUZELG9EQUVDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBZ0Isa0JBQWtCLENBQUMsT0FBb0Q7SUFDckYsT0FBTyxJQUFBLHFCQUFZLEVBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7QUFDdEQsQ0FBQztBQUZELGdEQUVDO0FBRUQsTUFBTSxjQUFjLEdBQUcsQ0FBQyxZQUFZLEVBQUUsY0FBYyxDQUFDLENBQUM7QUFFdEQ7OztHQUdHO0FBQ0gsU0FBZ0IsZ0JBQWdCLENBQUMsT0FBZ0M7SUFDL0QsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3RFLENBQUM7QUFGRCw0Q0FFQztBQUVZLFFBQUEsaUJBQWlCLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLDhCQUE4QjtBQUN4Rix5QkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7QUFFOUI7OztHQUdHO0FBQ0gsU0FBZ0IscUJBQXFCLENBQUMsT0FBZ0M7SUFDcEUsT0FBTyx5QkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDMUUsQ0FBQztBQUZELHNEQUVDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFnQixjQUFjLENBQUMsR0FBa0IsRUFBRSxLQUFjLEVBQUUsRUFBNEI7SUFDN0YsSUFBSSxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUM1QixPQUFPLEtBQUssQ0FBQztLQUNkO0lBRUQsTUFBTSxRQUFRLEdBQUcsYUFBYSxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDL0MsT0FBTyxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRTFDLE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUM7QUFURCx3Q0FTQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILFNBQWdCLGFBQWEsQ0FBVSxHQUFrQixFQUFFLEtBQWMsRUFBRSxFQUE0QjtJQUNyRyxTQUFTLENBQUMsT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksa0NBQXlCLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN0SCxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUVyQixpSEFBaUg7SUFDakgsT0FBTyxJQUFBLGtCQUFTLEVBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7QUFDekgsQ0FBQztBQU5ELHNDQU1DO0FBRUQ7Ozs7R0FJRztBQUNILFNBQVMsWUFBWSxDQUFDLEdBQW9CLEVBQUUsR0FBWTtJQUN0RCxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsRUFBRTtRQUMzQixPQUFPLFNBQVMsQ0FBQztLQUNsQjtJQUNELElBQUkseUNBQXlDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQ3ZELE9BQU8sR0FBRyxDQUFDO0tBQ1o7SUFFRCxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLGtCQUFrQixDQUFxQyxLQUF5QyxFQUFFLEVBQUs7SUFDckgsT0FBTyxhQUFhLENBQWdCLHlCQUFhLENBQUMsWUFBWSxFQUFFLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLGFBQWEsQ0FBQztBQUM5RyxDQUFDO0FBRkQsZ0RBRUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsY0FBYyxDQUFDLE1BQVc7SUFDeEMsT0FBTyxNQUFNLENBQUMsV0FBVyxFQUFFLElBQUksS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQztBQUMvRSxDQUFDO0FBRkQsd0NBRUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLE9BQU8sQ0FBcUMsRUFBSyxFQUFFLGVBQWdDO0lBQ2pHLHFLQUFxSztJQUNySyxxSUFBcUk7SUFDckksU0FBUyxDQUFDLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSwwQkFBaUIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ25FLE1BQU0sSUFBSSxHQUFRLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNyQyxTQUFTLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksMEJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUVsRSxNQUFNLE9BQU8sR0FBa0IsT0FBTyxDQUFDLFdBQVcsQ0FBQyx5QkFBYSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0YsTUFBTSxRQUFRLEdBQVcsSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQyxNQUFNLFVBQVUsR0FBRyxlQUFlLEVBQUUsVUFBVSxJQUFJLE9BQU8sQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDO0lBRTlFLElBQUksT0FBTyxVQUFVLEtBQUssVUFBVSxFQUFFO1FBQ3BDLE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVqQyxTQUFTLENBQ1AsT0FBTyxJQUFJLEtBQUssUUFBUSxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUMzQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLGtDQUF5QixDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLDhCQUE4QixDQUFDLENBQ3ZGLENBQUM7UUFFRixPQUFPLElBQUksQ0FBQztLQUNiO0lBRUQsTUFBTSxhQUFhLEdBQUcsZUFBZSxFQUFFLGFBQWEsSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFLGFBQWEsQ0FBQztJQUV2RixJQUFJLGFBQWEsRUFBRTtRQUNqQixNQUFNLE1BQU0sR0FBRyxVQUFVLElBQUksZUFBZSxFQUFFLGdCQUFnQixJQUFJLE9BQU8sQ0FBQyxhQUFhLEVBQUUsVUFBVSxDQUFDO1FBRXBHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLElBQUksTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztLQUN4RTtJQUVELElBQUksaUJBQWlCLENBQUMsVUFBVSxDQUFDLEVBQUU7UUFDakMsT0FBTyxRQUFRLENBQUM7S0FDakI7SUFFRCxTQUFTLENBQ1AsT0FBTyxVQUFVLEtBQUssUUFBUSxJQUFJLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUN2RCxHQUFHLEVBQUUsQ0FBQyxJQUFJLGtDQUF5QixDQUFDLENBQUMsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLG9CQUFvQixDQUFDLENBQ25GLENBQUM7SUFFRixPQUFPLFVBQVUsQ0FBQztBQUNwQixDQUFDO0FBeENELDBCQXdDQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLFlBQVksQ0FBQyxJQUFTO0lBQ3BDLE9BQU8sQ0FDTCxPQUFPLElBQUksS0FBSyxVQUFVO1FBQzFCLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztRQUNsQixJQUFJLEtBQUssTUFBTTtRQUNmLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMseUJBQWEsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FDekUsQ0FBQztBQUNKLENBQUM7QUFQRCxvQ0FPQztBQUVEOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILFNBQWdCLGVBQWUsQ0FDN0IsVUFBZSxFQUNmLElBQWdELEVBQ2hELE1BQVcsRUFDWCxJQUFZLEVBQ1osVUFBcUMsRUFDckMsVUFBeUI7SUFFekIsb0JBQU0sQ0FBQyxLQUFLLENBQUMsd0JBQXdCLENBQUMsQ0FBQztJQUN2QyxVQUFVLEdBQUcsVUFBVSxJQUFLLElBQWlDLENBQUM7SUFFOUQsSUFBSSxDQUFDLENBQUMsSUFBSSxZQUFZLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUN0QyxVQUFVLEdBQUcsSUFBSSxDQUFDO0tBQ25CO0lBRUQsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLDhFQUE4RTtJQUMxRyxPQUFPLFVBQVUsQ0FBQyxHQUFHLENBQUM7SUFFdEIsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztJQUV0RSxvQ0FBb0M7SUFDcEMsTUFBTSxZQUFZLEdBQWlCO1FBQ2pDLEdBQUcsTUFBTSxDQUFDLEtBQUs7UUFDZixJQUFJLEVBQUU7WUFDSjtnQkFDRSxJQUFJLEVBQUUsSUFBSTtnQkFDVixHQUFHLE1BQU0sQ0FBQyxLQUFLO2dCQUNmLEdBQUcsVUFBVTthQUNkO1NBQ0Y7S0FDRixDQUFDO0lBRUYsVUFBVSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyx5Q0FBeUM7SUFFL0QsWUFBWSxDQUFDLElBQUksR0FBRyx5QkFBeUIsQ0FBQyxVQUFVLEVBQUUsWUFBWSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFFcEcsSUFBSSxVQUFVLEVBQUU7UUFDZCxvQkFBTSxDQUFDLEtBQUssQ0FBQyw0Q0FBNEMsRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsWUFBWSxDQUFDLENBQUM7S0FDL0Y7SUFFRCxPQUFPLFlBQVksQ0FBQztBQUN0QixDQUFDO0FBekNELDBDQXlDQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxTQUFnQixVQUFVLENBQ3hCLFVBQWUsRUFDZixJQUErRCxFQUMvRCxNQUFXLEVBQ1gsSUFBWSxFQUNaLFVBQXFDO0lBRXJDLG9CQUFNLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDbEMsVUFBVSxHQUFHLFVBQVUsSUFBSyxJQUFpQyxDQUFDO0lBRTlELG9DQUFvQztJQUNwQyxNQUFNLEdBQUcsR0FBNEI7UUFDbkMsS0FBSyxFQUFFLEVBQUU7UUFDVCxLQUFLLEVBQUUsRUFBRTtLQUNWLENBQUM7SUFFRixxRkFBcUY7SUFDckYsSUFBSSxDQUFDLENBQUMsSUFBSSxZQUFZLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUN0QyxvQ0FBb0M7UUFDcEMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUNsQixNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFM0MsSUFBSSxjQUFjLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUU7WUFDM0Msb0JBQU0sQ0FBQyxJQUFJLENBQUMsa0NBQWtDLEVBQUUsY0FBYyxDQUFDLENBQUM7WUFDaEUsSUFBSSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBRTdDLElBQUksSUFBSSxLQUFLLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRTtnQkFDeEMsU0FBUyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQzthQUN6QjtTQUNGO0tBQ0Y7SUFFRCxJQUFJLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxFQUFFO1FBQ2pDLG9CQUFNLENBQUMsSUFBSSxDQUFDLHFDQUFxQyxDQUFDLENBQUM7S0FDcEQ7SUFFRCxvQ0FBb0M7SUFDcEMsSUFBSSxXQUFXLEdBQWdELElBQUksRUFBRSxTQUFTLEVBQUUsa0JBQWtCLENBQUM7SUFFbkcsSUFBSSxJQUFJLFlBQVksUUFBUSxDQUFDLE1BQU0sRUFBRTtRQUNuQyxXQUFXLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQztLQUM5RTtJQUVELFNBQVMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksdUNBQThCLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBRXhILE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsYUFBYTtJQUU1RCxJQUFJLFdBQVcsQ0FBQyxTQUFTLFlBQVksUUFBUSxDQUFDLGlCQUFpQixFQUFFO1FBQy9ELEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ2xELElBQUksTUFBTSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ25FLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO2FBQ3hCO2lCQUFNO2dCQUNMLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO2FBQ3hCO1NBQ0Y7S0FDRjtTQUFNO1FBQ0wsSUFBSSxVQUFVLEVBQUU7WUFDZCxvQkFBTSxDQUFDLElBQUksQ0FBQyw4RkFBOEYsRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztTQUNsSTtRQUVELEdBQUcsQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDO0tBQ3JCO0lBRUQsSUFBSSxPQUFPLE9BQU8sRUFBRSxZQUFZLEtBQUssUUFBUSxFQUFFO1FBQzdDLE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUM7UUFDOUIsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQy9ELEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO1NBQ3hCO0tBQ0Y7SUFDRCxJQUFJLE9BQU8sT0FBTyxFQUFFLFlBQVksS0FBSyxRQUFRLEVBQUU7UUFDN0MsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQztRQUM5QixLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUU7WUFDL0QsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7U0FDeEI7S0FDRjtJQUVELElBQUksVUFBVSxFQUFFO1FBQ2Qsb0JBQU0sQ0FBQyxLQUFLLENBQUMsb0NBQW9DLEVBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0tBQzlFO0lBRUQsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBakZELGdDQWlGQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLG9CQUFvQixDQUFDLFVBQWU7SUFDbEQsc0ZBQXNGO0lBQ3RGLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxPQUFPLFVBQVUsQ0FBQyxHQUFHLEtBQUssUUFBUSxJQUFJLFVBQVUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO0FBQzFJLENBQUM7QUFIRCxvREFHQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsU0FBUyxDQUFDLE1BQVcsRUFBRSxHQUFXO0lBQ2hELE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3QixNQUFNLFlBQVksR0FBa0IsT0FBTyxDQUFDLFdBQVcsQ0FBQyx5QkFBYSxDQUFDLFlBQVksRUFBRSxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDbEgsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyx5QkFBYSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQTZDLENBQUM7SUFFcEgsTUFBTSxXQUFXLEdBQWEsVUFBVSxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxPQUFPLEVBQUUsVUFBVSxJQUFJLFlBQVksQ0FBQyxPQUFPLEVBQUUsVUFBVSxJQUFJLG9CQUFRLENBQUMsSUFBSSxDQUFDO0lBRTdILG9CQUFNLENBQUMsS0FBSyxDQUFDLG9CQUFvQixJQUFJLElBQUksR0FBRyxTQUFTLFdBQVcsR0FBRyxDQUFDLENBQUM7SUFFckUsUUFBUSxXQUFXLEVBQUU7UUFDbkIsUUFBUTtRQUNSLEtBQUssb0JBQVEsQ0FBQyxJQUFJO1lBQ2hCLG9CQUFNLENBQUMsSUFBSSxDQUNULHNLQUFzSyxFQUN0SyxJQUFJLEVBQ0osR0FBRyxDQUNKLENBQUM7WUFFRixNQUFNO1FBQ1IsS0FBSyxvQkFBUSxDQUFDLEtBQUs7WUFDakIsTUFBTTtRQUNSLEtBQUssb0JBQVEsQ0FBQyxLQUFLO1lBQ2pCLE1BQU0sSUFBSSxTQUFTLENBQUMsb0NBQW9DLElBQUksS0FBSyxHQUFHLFVBQVUsQ0FBQyxDQUFDO0tBQ25GO0lBRUQsT0FBTyxDQUFDLGdEQUFnRDtBQUMxRCxDQUFDO0FBMUJELDhCQTBCQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQixpQkFBaUIsQ0FBQyxHQUFZO0lBQzVDLE9BQU8sR0FBRyxLQUFLLElBQUksSUFBSSxHQUFHLEtBQUssU0FBUyxDQUFDO0FBQzNDLENBQUM7QUFGRCw4Q0FFQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLHdCQUF3QixDQUFDLE1BQVc7SUFDbEQsSUFBSSxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLHlCQUFhLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFDLEVBQUU7UUFDOUUsb0JBQU0sQ0FBQyxJQUFJLENBQUMseUNBQXlDLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDeEUsY0FBYyxDQUFDLHlCQUFhLENBQUMsWUFBWSxFQUFFLElBQUEsYUFBSSxFQUFDLG9CQUFhLEVBQUUsZUFBZSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7S0FDMUY7QUFDSCxDQUFDO0FBTEQsNERBS0M7QUFFRDs7Ozs7O0dBTUc7QUFDSCxTQUFnQix5QkFBeUIsQ0FBQyxVQUFlLEVBQUUsS0FBVSxFQUFFLElBQVksRUFBRSxHQUFXO0lBQzlGLGdDQUFnQztJQUNoQyxNQUFNLEdBQUcsR0FBRyxPQUFPLFVBQVUsQ0FBQyxHQUFHLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFcEUsSUFBSSxHQUFHLEdBQUcsQ0FBQyxFQUFFO1FBQ1gsTUFBTSxJQUFJLFVBQVUsQ0FBQyxvQ0FBb0MsSUFBSSxJQUFJLEdBQUcsVUFBVSxDQUFDLENBQUM7S0FDakY7SUFFRCxPQUFPLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQywyREFBMkQ7SUFDbEYsb0JBQU0sQ0FBQyxJQUFJLENBQUMscURBQXFELEVBQUUsR0FBRyxDQUFDLENBQUM7SUFFeEUsSUFBSSxRQUFRLEdBQVUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdELDJFQUEyRTtJQUMzRSxLQUFLLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFO1FBQ3hDLFFBQVEsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0tBQ3ZCO0lBRUQsT0FBTyxRQUFpQixDQUFDO0FBQzNCLENBQUM7QUFsQkQsOERBa0JDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILFNBQWdCLFNBQVMsQ0FBQyxJQUFTLEVBQUUsS0FBbUM7SUFDdEUsSUFBSSxDQUFDLElBQUksRUFBRTtRQUNULE1BQU0sT0FBTyxLQUFLLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLElBQUksK0JBQXNCLEVBQUUsQ0FBQztLQUNyRjtBQUNILENBQUM7QUFKRCw4QkFJQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLGdCQUFnQixDQUFDLEdBQVE7SUFDdkMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLDBCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDbEUsQ0FBQztBQUZELDRDQUVDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLE9BQU8sQ0FBQyxVQUFzQixFQUFFLHVCQUFnQyxLQUFLO0lBQ25GLE1BQU0sWUFBWSxHQUFrQjtRQUNsQyxJQUFJLEVBQUUsVUFBVTtRQUNoQixHQUFHLEVBQUUsQ0FBQztLQUNQLENBQUM7SUFFRixJQUFJLE9BQU8sWUFBWSxDQUFDLElBQUksS0FBSyxVQUFVLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ2hGLFlBQVksQ0FBQyxJQUFJLEdBQUksWUFBWSxDQUFDLElBQWEsRUFBRSxDQUFDO0tBQ25EO0lBRUQsU0FBUyxRQUFRO1FBQ2YsSUFBSSxZQUFZLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRTtZQUMxQixrRkFBa0Y7WUFDbEYsTUFBTSxJQUFJLEtBQUssQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFDO1NBQzNEO1FBQ0QsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNwQyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUM7WUFFbkIsSUFBSSxvQkFBb0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNoRSxPQUFPO2FBQ1I7WUFFRCxZQUFZLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDekMsUUFBUSxFQUFFLENBQUM7U0FDWjtJQUNILENBQUM7SUFFRCxRQUFRLEVBQUUsQ0FBQztJQUVYLG9CQUFNLENBQUMsS0FBSyxDQUFDLCtCQUErQixFQUFFLFlBQVksQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRW5GLE9BQU8sWUFBWSxDQUFDO0FBQ3RCLENBQUM7QUFoQ0QsMEJBZ0NDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBZ0IsYUFBYSxDQUFDLEdBQVE7SUFDcEMsT0FBTyxPQUFPLEdBQUcsS0FBSyxVQUFVLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUMzRixDQUFDO0FBRkQsc0NBRUM7QUFFRCxNQUFNO0FBQ04sK0VBQStFO0FBQy9FLDBGQUEwRjtBQUMxRix1SUFBdUk7QUFDdkksTUFBTTtBQUNOLHdEQUF3RDtBQUN4RCwyRkFBMkY7QUFDM0YsdUNBQXVDO0FBQ3ZDLHFFQUFxRTtBQUNyRSwyREFBMkQ7QUFDM0QsTUFBTTtBQUVOLDZEQUE2RDtBQUU3RCxlQUFlO0FBQ2YsSUFBSTtBQUVKOzs7Ozs7O0dBT0c7QUFDSCxTQUFnQix5QkFBeUIsQ0FBQyxJQUFZLEVBQUUsR0FBVyxFQUFFLElBQVksRUFBRSxLQUFhLEVBQUUsUUFBa0I7SUFDbEgscURBQXFEO0lBQ3JELElBQUksUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7UUFDdkIsb0JBQU0sQ0FBQyxJQUFJLENBQ1QsWUFBWSxJQUFJLElBQUksR0FBRyxZQUFZLElBQUksZ0NBQWdDLEtBQUssb0JBQW9CLEdBQUcsTUFBTSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQ2hJLENBQUM7S0FDSDtBQUNILENBQUM7QUFQRCw4REFPQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQixjQUFjLENBQUMsS0FBYztJQUMzQyxJQUFJO1FBQ0YsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDdEI7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNWLE9BQU8sNENBQTRDLENBQUM7S0FDckQ7QUFDSCxDQUFDO0FBTkQsd0NBTUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsdUJBQXVCLENBQUMsT0FBa0M7SUFDeEUsTUFBTSxZQUFZLEdBQW1CLEVBQUUsR0FBRyxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyx3RkFBd0Y7SUFFdEosSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsVUFBVSxDQUFDLEVBQUU7UUFDMUQsWUFBWSxDQUFDLGdCQUFnQixHQUFHLE9BQU8sRUFBRSxhQUFhLEVBQUUsVUFBVSxDQUFDO0tBQ3BFO0lBRUQsT0FBTyxZQUFZLENBQUM7QUFDdEIsQ0FBQztBQVJELDBEQVFDIn0=

@@ -20,5 +20,4 @@ "use strict";

return (target) => {
var _a, _b;
logSettings_1.logger.info('Adding plugin "%s" to "%s" with options: "%o"', (_a = mongoosePlugin === null || mongoosePlugin === void 0 ? void 0 : mongoosePlugin.name) !== null && _a !== void 0 ? _a : '<anonymous>', (0, utils_1.getName)(target), options);
const plugins = Array.from((_b = Reflect.getMetadata(constants_1.DecoratorKeys.Plugins, target)) !== null && _b !== void 0 ? _b : []);
logSettings_1.logger.info('Adding plugin "%s" to "%s" with options: "%o"', mongoosePlugin?.name || '<anonymous>', (0, utils_1.getName)(target), options);
const plugins = Array.from(Reflect.getMetadata(constants_1.DecoratorKeys.Plugins, target) ?? []);
plugins.push({ mongoosePlugin, options });

@@ -30,2 +29,2 @@ Reflect.defineMetadata(constants_1.DecoratorKeys.Plugins, plugins, target);

exports.Plugins = plugin;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3BsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxvREFBcUQ7QUFDckQsNENBQTJDO0FBQzNDLCtDQUF1QztBQUd2Qzs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFnQixNQUFNLENBQXFELGNBQXFCLEVBQUUsT0FBaUI7SUFDakgsaUZBQWlGO0lBQ2pGLE9BQU8sQ0FBQyxNQUFXLEVBQUUsRUFBRTs7UUFDckIsb0JBQU0sQ0FBQyxJQUFJLENBQUMsK0NBQStDLEVBQUUsTUFBQSxjQUFjLGFBQWQsY0FBYyx1QkFBZCxjQUFjLENBQUUsSUFBSSxtQ0FBSSxhQUFhLEVBQUUsSUFBQSxlQUFPLEVBQUMsTUFBTSxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDOUgsTUFBTSxPQUFPLEdBQW9CLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBQSxPQUFPLENBQUMsV0FBVyxDQUFDLHlCQUFhLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxtQ0FBSSxFQUFFLENBQUMsQ0FBQztRQUN0RyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsY0FBYyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDMUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyx5QkFBYSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDakUsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQVJELHdCQVFDO0FBR2tCLHlCQUFPIn0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3BsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxvREFBcUQ7QUFDckQsNENBQTJDO0FBQzNDLCtDQUF1QztBQUd2Qzs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFnQixNQUFNLENBQXFELGNBQXFCLEVBQUUsT0FBaUI7SUFDakgsaUZBQWlGO0lBQ2pGLE9BQU8sQ0FBQyxNQUFXLEVBQUUsRUFBRTtRQUNyQixvQkFBTSxDQUFDLElBQUksQ0FBQywrQ0FBK0MsRUFBRSxjQUFjLEVBQUUsSUFBSSxJQUFJLGFBQWEsRUFBRSxJQUFBLGVBQU8sRUFBQyxNQUFNLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM5SCxNQUFNLE9BQU8sR0FBb0IsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLHlCQUFhLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3RHLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxjQUFjLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUMxQyxPQUFPLENBQUMsY0FBYyxDQUFDLHlCQUFhLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNqRSxDQUFDLENBQUM7QUFDSixDQUFDO0FBUkQsd0JBUUM7QUFHa0IseUJBQU8ifQ==

@@ -27,3 +27,3 @@ "use strict";

return (target, key) => {
options = options !== null && options !== void 0 ? options : {};
options = options ?? {};
const existingMapForTarget = Reflect.getOwnMetadata(constants_1.DecoratorKeys.PropCache, target);

@@ -33,4 +33,4 @@ if (utils.isNullOrUndefined(existingMapForTarget)) {

}
const mapForTarget = existingMapForTarget !== null && existingMapForTarget !== void 0 ? existingMapForTarget : Reflect.getOwnMetadata(constants_1.DecoratorKeys.PropCache, target);
mapForTarget.set(key, { options, target, key, whatis: kind });
const mapForTarget = existingMapForTarget ?? Reflect.getOwnMetadata(constants_1.DecoratorKeys.PropCache, target);
mapForTarget.set(key, { options, target, key, propType: kind });
logSettings_1.logger.debug('Added "%s.%s" to the Decorator Cache', utils.getName(target.constructor), key);

@@ -41,2 +41,2 @@ };

exports.Prop = prop;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9wcm9wLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG9EQUErRDtBQUMvRCwwQ0FBMEM7QUFDMUMsK0NBQXVDO0FBWXZDOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQUNILFNBQVMsSUFBSSxDQUNYLE9BQTRILEVBQzVILElBQWU7SUFFZixPQUFPLENBQUMsTUFBVyxFQUFFLEdBQW9CLEVBQUUsRUFBRTtRQUMzQyxPQUFPLEdBQUcsT0FBTyxhQUFQLE9BQU8sY0FBUCxPQUFPLEdBQUksRUFBRSxDQUFDO1FBRXhCLE1BQU0sb0JBQW9CLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQyx5QkFBYSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQWlDLENBQUM7UUFFckgsSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsb0JBQW9CLENBQUMsRUFBRTtZQUNqRCxPQUFPLENBQUMsY0FBYyxDQUFDLHlCQUFhLENBQUMsU0FBUyxFQUFFLElBQUksR0FBRyxFQUFxQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1NBQ3ZHO1FBRUQsTUFBTSxZQUFZLEdBQUcsb0JBQW9CLGFBQXBCLG9CQUFvQixjQUFwQixvQkFBb0IsR0FBSyxPQUFPLENBQUMsY0FBYyxDQUFDLHlCQUFhLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBa0MsQ0FBQztRQUV2SSxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRTlELG9CQUFNLENBQUMsS0FBSyxDQUFDLHNDQUFzQyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQy9GLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFUSxvQkFBSTtBQUdJLG9CQUFJIn0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9wcm9wLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG9EQUErRDtBQUMvRCwwQ0FBMEM7QUFDMUMsK0NBQXVDO0FBWXZDOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQUNILFNBQVMsSUFBSSxDQUNYLE9BQTRILEVBQzVILElBQWU7SUFFZixPQUFPLENBQUMsTUFBVyxFQUFFLEdBQW9CLEVBQUUsRUFBRTtRQUMzQyxPQUFPLEdBQUcsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUV4QixNQUFNLG9CQUFvQixHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUMseUJBQWEsQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFpQyxDQUFDO1FBRXJILElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLG9CQUFvQixDQUFDLEVBQUU7WUFDakQsT0FBTyxDQUFDLGNBQWMsQ0FBQyx5QkFBYSxDQUFDLFNBQVMsRUFBRSxJQUFJLEdBQUcsRUFBcUMsRUFBRSxNQUFNLENBQUMsQ0FBQztTQUN2RztRQUVELE1BQU0sWUFBWSxHQUFHLG9CQUFvQixJQUFLLE9BQU8sQ0FBQyxjQUFjLENBQUMseUJBQWEsQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFrQyxDQUFDO1FBRXZJLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFFaEUsb0JBQU0sQ0FBQyxLQUFLLENBQUMsc0NBQXNDLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDL0YsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVRLG9CQUFJO0FBR0ksb0JBQUkifQ==

@@ -31,5 +31,4 @@ "use strict";

return (target) => {
var _a;
logSettings_1.logger.info('Adding query method "%s" to %s', func.name, (0, utils_1.getName)(target));
const queryMethods = new Map((_a = Reflect.getMetadata(constants_1.DecoratorKeys.QueryMethod, target)) !== null && _a !== void 0 ? _a : []);
const queryMethods = new Map(Reflect.getMetadata(constants_1.DecoratorKeys.QueryMethod, target) ?? []);
queryMethods.set(func.name, func);

@@ -41,2 +40,2 @@ Reflect.defineMetadata(constants_1.DecoratorKeys.QueryMethod, queryMethods, target);

exports.QueryMethod = queryMethod;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnlNZXRob2QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcXVlcnlNZXRob2QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0Esb0RBQXFEO0FBQ3JELDRDQUEyQztBQUMzQywrQ0FBdUM7QUFHdkM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCRztBQUNILFNBQWdCLFdBQVcsQ0FDekIsSUFBbUY7SUFFbkYsT0FBTyxDQUFDLE1BQVcsRUFBRSxFQUFFOztRQUNyQixvQkFBTSxDQUFDLElBQUksQ0FBQyxnQ0FBZ0MsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUEsZUFBTyxFQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDMUUsTUFBTSxZQUFZLEdBQW1CLElBQUksR0FBRyxDQUFDLE1BQUEsT0FBTyxDQUFDLFdBQVcsQ0FBQyx5QkFBYSxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsbUNBQUksRUFBRSxDQUFDLENBQUM7UUFDM0csWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2xDLE9BQU8sQ0FBQyxjQUFjLENBQUMseUJBQWEsQ0FBQyxXQUFXLEVBQUUsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzFFLENBQUMsQ0FBQztBQUNKLENBQUM7QUFURCxrQ0FTQztBQUd1QixrQ0FBVyJ9
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnlNZXRob2QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcXVlcnlNZXRob2QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0Esb0RBQXFEO0FBQ3JELDRDQUEyQztBQUMzQywrQ0FBdUM7QUFHdkM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCRztBQUNILFNBQWdCLFdBQVcsQ0FDekIsSUFBbUY7SUFFbkYsT0FBTyxDQUFDLE1BQVcsRUFBRSxFQUFFO1FBQ3JCLG9CQUFNLENBQUMsSUFBSSxDQUFDLGdDQUFnQyxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBQSxlQUFPLEVBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUMxRSxNQUFNLFlBQVksR0FBbUIsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyx5QkFBYSxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUMzRyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDbEMsT0FBTyxDQUFDLGNBQWMsQ0FBQyx5QkFBYSxDQUFDLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDMUUsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQVRELGtDQVNDO0FBR3VCLGtDQUFXIn0=

@@ -10,3 +10,3 @@ import * as mongoose from 'mongoose';

export * from './plugin';
export * from './index';
export * from './indexes';
export * from './modelOptions';

@@ -19,3 +19,3 @@ export * from './queryMethod';

export { DocumentType, Ref, ReturnModelType, SubDocumentType, ArraySubDocumentType };
export { getClassForDocument, getClass, getName } from './internal/utils';
export { getClass, getName } from './internal/utils';
export { Severity, PropType } from './internal/constants';

@@ -25,3 +25,3 @@ /**

* @param cl The Class to build a Model from
* @param options Overwrite SchemaOptions (Merged with Decorator)
* @param options Overwrite Options, like for naming or general SchemaOptions the class gets compiled with
* @returns The finished Model

@@ -51,4 +51,3 @@ * @public

* @param cl The Class to build a Schema from
* @param options Overwrite SchemaOptions (Merged with Decorator)
* @param overwriteOptions Overwrite ModelOptions (aside from schemaOptions) (Not Merged with Decorator)
* @param options Overwrite Options, like for naming or general SchemaOptions the class gets compiled with
* @returns Returns the Build Schema

@@ -62,3 +61,3 @@ * @example

*/
export declare function buildSchema<U extends AnyParamConstructor<any>>(cl: U, options?: mongoose.SchemaOptions, overwriteOptions?: IModelOptions): mongoose.Schema<DocumentType<InstanceType<U>>>;
export declare function buildSchema<U extends AnyParamConstructor<any>>(cl: U, options?: IModelOptions): mongoose.Schema<DocumentType<InstanceType<U>>>;
/**

@@ -65,0 +64,0 @@ * Add a Class-Model Pair to the Typegoose Cache

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Passthrough = exports.getDiscriminatorModelForClass = exports.deleteModelWithClass = exports.deleteModel = exports.addModelToTypegoose = exports.buildSchema = exports.getModelWithString = exports.getModelForClass = exports.PropType = exports.Severity = exports.getName = exports.getClass = exports.getClassForDocument = exports.types = exports.errors = exports.defaultClasses = exports.LogLevels = exports.setLogLevel = exports.setGlobalOptions = exports.mongoose = void 0;
exports.Passthrough = exports.getDiscriminatorModelForClass = exports.deleteModelWithClass = exports.deleteModel = exports.addModelToTypegoose = exports.buildSchema = exports.getModelWithString = exports.getModelForClass = exports.PropType = exports.Severity = exports.getName = exports.getClass = exports.types = exports.errors = exports.defaultClasses = exports.LogLevels = exports.setLogLevel = exports.setGlobalOptions = exports.mongoose = void 0;
const tslib_1 = require("tslib");

@@ -12,11 +12,11 @@ /* imports */

/* istanbul ignore next */
if (!(0, utils_1.isNullOrUndefined)(process === null || process === void 0 ? void 0 : process.version) && !(0, utils_1.isNullOrUndefined)(mongoose === null || mongoose === void 0 ? void 0 : mongoose.version)) {
if (!(0, utils_1.isNullOrUndefined)(process?.version) && !(0, utils_1.isNullOrUndefined)(mongoose?.version)) {
// for usage on client side
/* istanbul ignore next */
if (semver.lt(mongoose === null || mongoose === void 0 ? void 0 : mongoose.version, '6.7.2')) {
throw new Error(`Please use mongoose 6.7.2 or higher (Current mongoose: ${mongoose.version}) [E001]`);
if (semver.lt(mongoose?.version, '6.7.5')) {
throw new Error(`Please use mongoose 6.7.5 or higher (Current mongoose: ${mongoose.version}) [E001]`);
}
/* istanbul ignore next */
if (semver.lt(process.version.slice(1), '12.22.0')) {
throw new Error('You are using a NodeJS Version below 12.22.0, Please Upgrade! [E002]');
if (semver.lt(process.version.slice(1), '14.17.0')) {
throw new Error('You are using a NodeJS Version below 14.17.0, Please Upgrade! [E002]');
}

@@ -38,3 +38,3 @@ }

tslib_1.__exportStar(require("./plugin"), exports);
tslib_1.__exportStar(require("./index"), exports);
tslib_1.__exportStar(require("./indexes"), exports);
tslib_1.__exportStar(require("./modelOptions"), exports);

@@ -47,3 +47,2 @@ tslib_1.__exportStar(require("./queryMethod"), exports);

var utils_2 = require("./internal/utils");
Object.defineProperty(exports, "getClassForDocument", { enumerable: true, get: function () { return utils_2.getClassForDocument; } });
Object.defineProperty(exports, "getClass", { enumerable: true, get: function () { return utils_2.getClass; } });

@@ -56,5 +55,10 @@ Object.defineProperty(exports, "getName", { enumerable: true, get: function () { return utils_2.getName; } });

/**
* Symbol to track if options have already been merged
* This is to reduce the "merge*" calls, which dont need to be run often if already done
*/
const AlreadyMerged = Symbol('MOAlreadyMergedOptions');
/**
* Build a Model From a Class
* @param cl The Class to build a Model from
* @param options Overwrite SchemaOptions (Merged with Decorator)
* @param options Overwrite Options, like for naming or general SchemaOptions the class gets compiled with
* @returns The finished Model

@@ -70,20 +74,18 @@ * @public

function getModelForClass(cl, options) {
var _a, _b, _c, _d, _e, _f;
(0, utils_1.assertionIsClass)(cl);
const rawOptions = typeof options === 'object' ? options : {};
const overwriteNaming = (0, utils_1.mapModelOptionsToNaming)(rawOptions); // use "rawOptions" instead of "mergedOptions" to consistently differentiate between classes & models
const mergedOptions = (0, utils_1.mergeMetadata)(constants_1.DecoratorKeys.ModelOptions, rawOptions, cl);
const name = (0, utils_1.getName)(cl, rawOptions); // use "rawOptions" instead of "mergedOptions" to consistently differentiate between classes & models
mergedOptions[AlreadyMerged] = true;
const name = (0, utils_1.getName)(cl, overwriteNaming);
if (data_1.models.has(name)) {
return data_1.models.get(name);
}
const model = (_d = (_b = (_a = mergedOptions === null || mergedOptions === void 0 ? void 0 : mergedOptions.existingConnection) === null || _a === void 0 ? void 0 : _a.model.bind(mergedOptions.existingConnection)) !== null && _b !== void 0 ? _b : (_c = mergedOptions === null || mergedOptions === void 0 ? void 0 : mergedOptions.existingMongoose) === null || _c === void 0 ? void 0 : _c.model.bind(mergedOptions.existingMongoose)) !== null && _d !== void 0 ? _d : mongoose.model.bind(mongoose);
const compiledmodel = model(name, buildSchema(cl, mergedOptions.schemaOptions, rawOptions));
const refetchedOptions = (_e = Reflect.getMetadata(constants_1.DecoratorKeys.ModelOptions, cl)) !== null && _e !== void 0 ? _e : {};
if ((_f = refetchedOptions === null || refetchedOptions === void 0 ? void 0 : refetchedOptions.options) === null || _f === void 0 ? void 0 : _f.runSyncIndexes) {
// no async/await, to wait for execution on connection in the background
compiledmodel.syncIndexes();
}
return addModelToTypegoose(compiledmodel, cl, {
existingMongoose: mergedOptions === null || mergedOptions === void 0 ? void 0 : mergedOptions.existingMongoose,
existingConnection: mergedOptions === null || mergedOptions === void 0 ? void 0 : mergedOptions.existingConnection,
const modelFn = mergedOptions?.existingConnection?.model.bind(mergedOptions.existingConnection) ??
mergedOptions?.existingMongoose?.model.bind(mergedOptions.existingMongoose) ??
mongoose.model.bind(mongoose);
const compiledModel = modelFn(name, buildSchema(cl, mergedOptions));
return addModelToTypegoose(compiledModel, cl, {
existingMongoose: mergedOptions?.existingMongoose,
existingConnection: mergedOptions?.existingConnection,
});

@@ -110,4 +112,3 @@ }

* @param cl The Class to build a Schema from
* @param options Overwrite SchemaOptions (Merged with Decorator)
* @param overwriteOptions Overwrite ModelOptions (aside from schemaOptions) (Not Merged with Decorator)
* @param options Overwrite Options, like for naming or general SchemaOptions the class gets compiled with
* @returns Returns the Build Schema

@@ -121,6 +122,8 @@ * @example

*/
function buildSchema(cl, options, overwriteOptions) {
function buildSchema(cl, options) {
(0, utils_1.assertionIsClass)(cl);
logSettings_1.logger.debug('buildSchema called for "%s"', (0, utils_1.getName)(cl, overwriteOptions));
const mergedOptions = (0, utils_1.mergeSchemaOptions)(options, cl);
const overwriteNaming = (0, utils_1.mapModelOptionsToNaming)(options);
logSettings_1.logger.debug('buildSchema called for "%s"', (0, utils_1.getName)(cl, overwriteNaming));
// dont re-run the merging if already done so before (like in getModelForClass)
const mergedOptions = options?.[AlreadyMerged] ? options?.schemaOptions : (0, utils_1.mergeSchemaOptions)(options?.schemaOptions, cl);
let sch = undefined;

@@ -131,6 +134,14 @@ /** Parent Constructor */

const parentClasses = [];
// iterate trough all parents
while ((parentCtor === null || parentCtor === void 0 ? void 0 : parentCtor.name) !== 'Object') {
let upperOptions = {};
// iterate trough all parents to the lowest class
while (parentCtor?.name !== 'Object') {
// add lower classes (when extending) to the front of the array to be processed first
parentClasses.unshift(parentCtor);
parentClasses.unshift([parentCtor, upperOptions]);
// clone object, because otherwise it will affect the upper classes too because the same reference is used
upperOptions = { ...upperOptions };
const ropt = Reflect.getMetadata(constants_1.DecoratorKeys.ModelOptions, parentCtor) ?? {};
// only affect options of lower classes, not the class the options are from
if (ropt.options?.disableLowerIndexes) {
upperOptions.buildIndexes = false;
}
// set next parent

@@ -140,8 +151,8 @@ parentCtor = Object.getPrototypeOf(parentCtor.prototype).constructor;

// iterate and build class schemas from lowest to highest (when extending classes, the lower class will get build first) see https://github.com/typegoose/typegoose/pull/243
for (const parentClass of parentClasses) {
for (const [parentClass, extraOptions] of parentClasses) {
// extend schema
sch = (0, schema_1._buildSchema)(parentClass, sch, mergedOptions, false);
sch = (0, schema_1._buildSchema)(parentClass, sch, mergedOptions, false, undefined, extraOptions);
}
// get schema of current model
sch = (0, schema_1._buildSchema)(cl, sch, mergedOptions, true, overwriteOptions);
sch = (0, schema_1._buildSchema)(cl, sch, mergedOptions, true, overwriteNaming);
return sch;

@@ -167,4 +178,3 @@ }

function addModelToTypegoose(model, cl, options) {
var _a, _b, _c;
const mongooseModel = ((_a = options === null || options === void 0 ? void 0 : options.existingMongoose) === null || _a === void 0 ? void 0 : _a.Model) || ((_c = (_b = options === null || options === void 0 ? void 0 : options.existingConnection) === null || _b === void 0 ? void 0 : _b.base) === null || _c === void 0 ? void 0 : _c.Model) || mongoose.Model;
const mongooseModel = options?.existingMongoose?.Model || options?.existingConnection?.base?.Model || mongoose.Model;
(0, utils_1.assertion)(model.prototype instanceof mongooseModel, new errors_1.NotValidModelError(model, 'addModelToTypegoose.model'));

@@ -238,3 +248,2 @@ (0, utils_1.assertionIsClass)(cl);

function getDiscriminatorModelForClass(from, cl, value_or_options, options) {
var _a, _b, _c, _d, _e;
(0, utils_1.assertion)((0, typeguards_1.isModel)(from), new errors_1.NotValidModelError(from, 'getDiscriminatorModelForClass.from'));

@@ -244,15 +253,17 @@ (0, utils_1.assertionIsClass)(cl);

const rawOptions = typeof value_or_options !== 'string' ? value_or_options : typeof options === 'object' ? options : {};
const overwriteNaming = (0, utils_1.mapModelOptionsToNaming)(rawOptions); // use "rawOptions" instead of "mergedOptions" to consistently differentiate between classes & models
const mergedOptions = (0, utils_1.mergeMetadata)(constants_1.DecoratorKeys.ModelOptions, rawOptions, cl);
const name = (0, utils_1.getName)(cl, rawOptions); // use "rawOptions" instead of "mergedOptions" to consistently differentiate between classes & models
mergedOptions[AlreadyMerged] = true;
const name = (0, utils_1.getName)(cl, overwriteNaming);
if (data_1.models.has(name)) {
return data_1.models.get(name);
}
const sch = buildSchema(cl, mergedOptions.schemaOptions, rawOptions);
const mergeHooks = (_b = (_a = mergedOptions.options) === null || _a === void 0 ? void 0 : _a.enableMergeHooks) !== null && _b !== void 0 ? _b : false;
const sch = buildSchema(cl, mergedOptions);
const mergeHooks = mergedOptions.options?.enableMergeHooks ?? false;
// Note: this option is not actually for "merging plugins", but if "true" it will *overwrite* all plugins with the base-schema's
const mergePlugins = (_d = (_c = mergedOptions.options) === null || _c === void 0 ? void 0 : _c.enableMergePlugins) !== null && _d !== void 0 ? _d : false;
const mergePlugins = mergedOptions.options?.enableMergePlugins ?? false;
if (!mergeHooks && !mergePlugins) {
logSettings_1.logger.debug('Manually applying global plugins');
// apply global plugins to the schema, see https://github.com/Automattic/mongoose/issues/12696
((_e = mergedOptions.existingMongoose) !== null && _e !== void 0 ? _e : mongoose)._applyPlugins(sch);
(mergedOptions.existingMongoose ?? mongoose)._applyPlugins(sch);
}

@@ -263,3 +274,3 @@ const discriminatorKey = sch.get('discriminatorKey');

}
const model = from.discriminator(name, sch, {
const compiledModel = from.discriminator(name, sch, {
value: value ? value : name,

@@ -269,3 +280,3 @@ mergeHooks,

});
return addModelToTypegoose(model, cl);
return addModelToTypegoose(compiledModel, cl);
}

@@ -298,6 +309,6 @@ exports.getDiscriminatorModelForClass = getDiscriminatorModelForClass;

this.raw = raw;
this.direct = direct !== null && direct !== void 0 ? direct : false;
this.direct = direct ?? false;
}
}
exports.Passthrough = Passthrough;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWdvb3NlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3R5cGVnb29zZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsYUFBYTtBQUNiLHFDQUFxQztBQXVDNUIsNEJBQVE7QUF0Q2pCLDRCQUEwQjtBQUMxQixpQ0FBaUM7QUFDakMsNENBQThIO0FBRTlILDBCQUEwQjtBQUMxQixJQUFJLENBQUMsSUFBQSx5QkFBaUIsRUFBQyxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFBLHlCQUFpQixFQUFDLFFBQVEsYUFBUixRQUFRLHVCQUFSLFFBQVEsQ0FBRSxPQUFPLENBQUMsRUFBRTtJQUNqRiwyQkFBMkI7SUFDM0IsMEJBQTBCO0lBQzFCLElBQUksTUFBTSxDQUFDLEVBQUUsQ0FBQyxRQUFRLGFBQVIsUUFBUSx1QkFBUixRQUFRLENBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFO1FBQ3pDLE1BQU0sSUFBSSxLQUFLLENBQUMsMERBQTBELFFBQVEsQ0FBQyxPQUFPLFVBQVUsQ0FBQyxDQUFDO0tBQ3ZHO0lBRUQsMEJBQTBCO0lBQzFCLElBQUksTUFBTSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsRUFBRTtRQUNsRCxNQUFNLElBQUksS0FBSyxDQUFDLHNFQUFzRSxDQUFDLENBQUM7S0FDekY7Q0FDRjtBQUVELG1EQUE2RDtBQW9CMUMsaUdBcEJBLGdDQUFnQixPQW9CQTtBQW5CbkMsb0RBQXFEO0FBQ3JELDBDQUF1RDtBQUN2RCw4Q0FBaUQ7QUFDakQsK0NBQXVDO0FBQ3ZDLDZDQUF1QztBQVd2Qyw4Q0FBZ0g7QUFLaEgsNkNBQXVEO0FBQTlDLDBHQUFBLFdBQVcsT0FBQTtBQUFFLHdHQUFBLFNBQVMsT0FBQTtBQUMvQixpREFBdUI7QUFDdkIsa0RBQXdCO0FBQ3hCLG1EQUF5QjtB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
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWdvb3NlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3R5cGVnb29zZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsYUFBYTtBQUNiLHFDQUFxQztBQWdENUIsNEJBQVE7QUEvQ2pCLDRCQUEwQjtBQUMxQixpQ0FBaUM7QUFDakMsNENBUTBCO0FBRTFCLDBCQUEwQjtBQUMxQixJQUFJLENBQUMsSUFBQSx5QkFBaUIsRUFBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFBLHlCQUFpQixFQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsRUFBRTtJQUNqRiwyQkFBMkI7SUFDM0IsMEJBQTBCO0lBQzFCLElBQUksTUFBTSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFO1FBQ3pDLE1BQU0sSUFBSSxLQUFLLENBQUMsMERBQTBELFFBQVEsQ0FBQyxPQUFPLFVBQVUsQ0FBQyxDQUFDO0tBQ3ZHO0lBRUQsMEJBQTBCO0lBQzFCLElBQUksTUFBTSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsRUFBRTtRQUNsRCxNQUFNLElBQUksS0FBSyxDQUFDLHNFQUFzRSxDQUFDLENBQUM7S0FDekY7Q0FDRjtBQUVELG1EQUE2RDtBQXFCMUMsaUdBckJBLGdDQUFnQixPQXFCQTtBQXBCbkMsb0RBQXFEO0FBQ3JELDBDQUF1RDtBQUN2RCw4Q0FBaUQ7QUFDakQsK0NBQXVDO0FBQ3ZDLDZDQUF1QztBQVl2Qyw4Q0FBZ0g7QUFLaEgsNkNBQXVEO0FBQTlDLDBHQUFBLFdBQVcsT0FBQTtBQUFFLHdHQUFBLFNBQVMsT0FBQTtBQUMvQixpREFBdUI7QUFDdkIsa0RBQXdCO0FBQ3hCLG1EQUF5QjtBQUN6QixvREFBMEI7QUFDMUIseURBQStCO0FBQy9CLHdEQUE4QjtBQUM5Qix1REFBNkI7QUFDN0IscURBQW1E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

@@ -8,3 +8,3 @@ /// <reference types="node" />

*/
export declare function isDocument<T, S extends RefType>(doc: Ref<T, S>): doc is T extends DocumentType<infer T1, infer T2> ? DocumentType<T1, T2> : T extends object ? DocumentType<T> : never;
export declare function isDocument<T, S extends RefType>(doc: Ref<T, S> | null | undefined): doc is DocumentType<T>;
/**

@@ -15,3 +15,3 @@ * Check if the given array is fully populated

*/
export declare function isDocumentArray<T, S extends RefType>(docs: mongoose.Types.Array<Ref<T, S>> | undefined): docs is mongoose.Types.Array<DocumentType<NonNullable<T>>>;
export declare function isDocumentArray<T, S extends RefType>(docs: mongoose.Types.Array<Ref<T, S>> | null | undefined): docs is mongoose.Types.Array<DocumentType<NonNullable<T>>>;
/**

@@ -22,4 +22,4 @@ * Check if the given array is fully populated

*/
export declare function isDocumentArray<T, S extends RefType>(docs: Ref<T, S>[] | undefined): docs is DocumentType<NonNullable<T>>[];
declare type AllowedRefTypes = typeof String | typeof Number | typeof Buffer | typeof mongoose.Types.ObjectId | typeof mongoose.Types.Buffer;
export declare function isDocumentArray<T, S extends RefType>(docs: Ref<T, S>[] | null | undefined): docs is DocumentType<NonNullable<T>>[];
type AllowedRefTypes = typeof String | typeof Number | typeof Buffer | typeof mongoose.Types.ObjectId | typeof mongoose.Types.Buffer;
/**

@@ -30,3 +30,3 @@ * Check if the document is of type "refType"

*/
export declare function isRefType<T, S extends RefType>(doc: Ref<T, S> | undefined, refType: AllowedRefTypes): doc is NonNullable<S>;
export declare function isRefType<T, S extends RefType>(doc: Ref<T, S> | null | undefined, refType: AllowedRefTypes): doc is NonNullable<S>;
/**

@@ -38,3 +38,3 @@ * Check if the array is fully of type "refType"

*/
export declare function isRefTypeArray<T, S extends RefType>(docs: mongoose.Types.Array<Ref<T, S>> | undefined, refType: AllowedRefTypes): docs is mongoose.Types.Array<NonNullable<S>>;
export declare function isRefTypeArray<T, S extends RefType>(docs: mongoose.Types.Array<Ref<T, S>> | null | undefined, refType: AllowedRefTypes): docs is mongoose.Types.Array<NonNullable<S>>;
/**

@@ -46,3 +46,3 @@ * Check if the array is fully of type "refType"

*/
export declare function isRefTypeArray<T, S extends RefType>(docs: Ref<T, S>[] | undefined, refType: AllowedRefTypes): docs is NonNullable<S>[];
export declare function isRefTypeArray<T, S extends RefType>(docs: Ref<T, S>[] | null | undefined, refType: AllowedRefTypes): docs is NonNullable<S>[];
/**

@@ -49,0 +49,0 @@ * Check if the input is a mongoose.Model

@@ -11,8 +11,3 @@ "use strict";

*/
function isDocument(doc
// handle type case of T being "DocumentType" already and being a OR of other types (like for count hooks)
// i am not a typescript wizard, so i dont know how to handle this better, this will need to be updated for #730 and #587
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore somehow the following errors in typescript 4.9, but can be disabled with a directive
) {
function isDocument(doc) {
return doc instanceof mongoose.Model;

@@ -62,5 +57,5 @@ }

function isModel(model) {
return (model === null || model === void 0 ? void 0 : model.prototype) instanceof mongoose.Model;
return model?.prototype instanceof mongoose.Model;
}
exports.isModel = isModel;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWd1YXJkcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90eXBlZ3VhcmRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFDQUFxQztBQUNyQyw0Q0FBcUQ7QUFDckQsK0NBQXVDO0FBR3ZDOzs7R0FHRztBQUNILFNBQWdCLFVBQVUsQ0FDeEIsR0FBYztBQUNkLDBHQUEwRztBQUMxRyx5SEFBeUg7QUFDekgsNkRBQTZEO0FBQzdELGtHQUFrRzs7SUFFbEcsT0FBTyxHQUFHLFlBQVksUUFBUSxDQUFDLEtBQUssQ0FBQztBQUN2QyxDQUFDO0FBUkQsZ0NBUUM7QUFnQkQsU0FBZ0IsZUFBZSxDQUFDLElBQWlDO0lBQy9ELGtFQUFrRTtJQUNsRSxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDakUsQ0FBQztBQUhELDBDQUdDO0FBSUQ7Ozs7R0FJRztBQUNILFNBQWdCLFNBQVMsQ0FBdUIsR0FBMEIsRUFBRSxPQUF3QjtJQUNsRyxvQkFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFFbkMsSUFBSSxJQUFBLHlCQUFpQixFQUFDLEdBQUcsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUM3QyxPQUFPLEtBQUssQ0FBQztLQUNkO0lBRUQsNEZBQTRGO0lBQzVGLElBQUksT0FBTyxLQUFLLFFBQVEsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFO1FBQ3ZDLE9BQU8sR0FBRyxZQUFZLFFBQVEsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDO0tBQy9DO0lBQ0QsSUFBSSxPQUFPLEtBQUssTUFBTSxFQUFFO1FBQ3RCLE9BQU8sT0FBTyxHQUFHLEtBQUssUUFBUSxDQUFDO0tBQ2hDO0lBQ0QsSUFBSSxPQUFPLEtBQUssTUFBTSxFQUFFO1FBQ3RCLE9BQU8sT0FBTyxHQUFHLEtBQUssUUFBUSxDQUFDO0tBQ2hDO0lBQ0QsSUFBSSxPQUFPLEtBQUssTUFBTSxJQUFJLE9BQU8sS0FBSyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtRQUMzRCxPQUFPLEdBQUcsWUFBWSxNQUFNLENBQUM7S0FDOUI7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUF0QkQsOEJBc0JDO0FBbUJELFNBQWdCLGNBQWMsQ0FBQyxJQUFpQyxFQUFFLE9BQXdCO0lBQ3hGLGtFQUFrRTtJQUNsRSxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0FBQ3pFLENBQUM7QUFIRCx3Q0FHQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLE9BQU8sQ0FBQyxLQUFVO0lBQ2hDLE9BQU8sQ0FBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsU0FBUyxhQUFZLFFBQVEsQ0FBQyxLQUFLLENBQUM7QUFDcEQsQ0FBQztBQUZELDBCQUVDIn0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWd1YXJkcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90eXBlZ3VhcmRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFDQUFxQztBQUNyQyw0Q0FBcUQ7QUFDckQsK0NBQXVDO0FBR3ZDOzs7R0FHRztBQUNILFNBQWdCLFVBQVUsQ0FBdUIsR0FBaUM7SUFDaEYsT0FBTyxHQUFHLFlBQVksUUFBUSxDQUFDLEtBQUssQ0FBQztBQUN2QyxDQUFDO0FBRkQsZ0NBRUM7QUFnQkQsU0FBZ0IsZUFBZSxDQUFDLElBQXdDO0lBQ3RFLGtFQUFrRTtJQUNsRSxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDakUsQ0FBQztBQUhELDBDQUdDO0FBSUQ7Ozs7R0FJRztBQUNILFNBQWdCLFNBQVMsQ0FBdUIsR0FBaUMsRUFBRSxPQUF3QjtJQUN6RyxvQkFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFFbkMsSUFBSSxJQUFBLHlCQUFpQixFQUFDLEdBQUcsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUM3QyxPQUFPLEtBQUssQ0FBQztLQUNkO0lBRUQsNEZBQTRGO0lBQzVGLElBQUksT0FBTyxLQUFLLFFBQVEsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFO1FBQ3ZDLE9BQU8sR0FBRyxZQUFZLFFBQVEsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDO0tBQy9DO0lBQ0QsSUFBSSxPQUFPLEtBQUssTUFBTSxFQUFFO1FBQ3RCLE9BQU8sT0FBTyxHQUFHLEtBQUssUUFBUSxDQUFDO0tBQ2hDO0lBQ0QsSUFBSSxPQUFPLEtBQUssTUFBTSxFQUFFO1FBQ3RCLE9BQU8sT0FBTyxHQUFHLEtBQUssUUFBUSxDQUFDO0tBQ2hDO0lBQ0QsSUFBSSxPQUFPLEtBQUssTUFBTSxJQUFJLE9BQU8sS0FBSyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtRQUMzRCxPQUFPLEdBQUcsWUFBWSxNQUFNLENBQUM7S0FDOUI7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUF0QkQsOEJBc0JDO0FBc0JELFNBQWdCLGNBQWMsQ0FBQyxJQUF3QyxFQUFFLE9BQXdCO0lBQy9GLGtFQUFrRTtJQUNsRSxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0FBQ3pFLENBQUM7QUFIRCx3Q0FHQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLE9BQU8sQ0FBQyxLQUFVO0lBQ2hDLE9BQU8sS0FBSyxFQUFFLFNBQVMsWUFBWSxRQUFRLENBQUMsS0FBSyxDQUFDO0FBQ3BELENBQUM7QUFGRCwwQkFFQyJ9

@@ -13,3 +13,3 @@ import type * as mongoose from 'mongoose';

*/
export declare type DocumentType<T, QueryHelpers = BeAnObject> = (T extends {
export type DocumentType<T, QueryHelpers = BeAnObject> = (T extends {
_id: unknown;

@@ -20,15 +20,15 @@ } ? mongoose.Document<T['_id'], QueryHelpers, T> : mongoose.Document<any, QueryHelpers, T>) & T & IObjectWithTypegooseFunction;

*/
export declare type SubDocumentType<T, QueryHelpers = BeAnObject> = DocumentType<T, QueryHelpers> & mongoose.Types.Subdocument;
export type SubDocumentType<T, QueryHelpers = BeAnObject> = DocumentType<T, QueryHelpers> & mongoose.Types.Subdocument;
/**
* Get the Type of an instance of a SubDocument that exists within an array, with Class properties
*/
export declare type ArraySubDocumentType<T, QueryHelpers = BeAnObject> = DocumentType<T, QueryHelpers> & mongoose.Types.ArraySubdocument;
export type ArraySubDocumentType<T, QueryHelpers = BeAnObject> = DocumentType<T, QueryHelpers> & mongoose.Types.ArraySubdocument;
/**
* Used Internally for ModelTypes
*/
export declare type ModelType<T, QueryHelpers = BeAnObject> = mongoose.Model<DocumentType<T, QueryHelpers>, QueryHelpers>;
export type ModelType<T, QueryHelpers = BeAnObject> = mongoose.Model<DocumentType<T, QueryHelpers>, QueryHelpers>;
/**
* Any-param Constructor
*/
export declare type AnyParamConstructor<T> = new (...args: any) => T;
export type AnyParamConstructor<T> = new (...args: any) => T;
/**

@@ -39,9 +39,9 @@ * The Type for Models used in typegoose, mostly returned by "getModelForClass" and "addModelToTypegoose"

*/
export declare type ReturnModelType<U extends AnyParamConstructor<any>, QueryHelpers = BeAnObject> = ModelType<InstanceType<U>, QueryHelpers> & U;
export type ReturnModelType<U extends AnyParamConstructor<any>, QueryHelpers = BeAnObject> = ModelType<InstanceType<U>, QueryHelpers> & U;
/** Generic "Function" type, because typescript does not like using "Function" directly in strict mode */
export declare type Func = (...args: any[]) => any;
export type Func = (...args: any[]) => any;
/**
* The Type of a function to generate a custom model name.
*/
export declare type CustomNameFunction = (options: IModelOptions) => string;
export type CustomNameFunction = (options: IModelOptions) => string;
/**

@@ -51,3 +51,3 @@ * Defer an reference with an function (or as other projects call it "Forward declaration")

*/
export declare type DeferredFunc<T = any> = (...args: unknown[]) => T;
export type DeferredFunc<T = any> = (...args: unknown[]) => T;
/**

@@ -57,3 +57,5 @@ * Dynamic Functions, since mongoose 4.13

*/
export declare type DynamicStringFunc<T extends AnyParamConstructor<any>> = (doc: DocumentType<T>) => string;
export type DynamicStringFunc<T extends AnyParamConstructor<any>> = (doc: DocumentType<T>) => string;
/** Type to keep the "discriminators" options consistent in types */
export type NestedDiscriminatorsFunction = DeferredFunc<(AnyParamConstructor<any> | DiscriminatorObject)[]>;
/**

@@ -209,3 +211,3 @@ * This Interface for most properties uses "mongoose.SchemaTypeOptions<any>['']", but for some special (or typegoose custom) options, it is not used

*/
discriminators?: DeferredFunc<(AnyParamConstructor<any> | DiscriminatorObject)[]>;
discriminators?: NestedDiscriminatorsFunction;
/**

@@ -373,15 +375,11 @@ * Use option {@link BasePropOptions.type}

}
export declare type PropOptionsForNumber = BasePropOptions & ValidateNumberOptions;
export declare type PropOptionsForString = BasePropOptions & TransformStringOptions & ValidateStringOptions;
export declare type RefType = mongoose.RefType;
export type PropOptionsForNumber = BasePropOptions & ValidateNumberOptions;
export type PropOptionsForString = BasePropOptions & TransformStringOptions & ValidateStringOptions;
export type RefType = mongoose.RefType;
/**
* Reference another Model
*/
export declare type Ref<PopulatedType, RawId extends mongoose.RefType = (PopulatedType extends {
export type Ref<PopulatedType, RawId extends mongoose.RefType = PopulatedType extends {
_id?: mongoose.RefType;
} ? NonNullable<PopulatedType['_id']> : mongoose.Types.ObjectId) | undefined> = mongoose.PopulatedDoc<PopulatedType, RawId>;
/**
* A Function type for a function that doesn't have any arguments and doesn't return anything
*/
export declare type EmptyVoidFn = () => void;
} ? NonNullable<PopulatedType['_id']> : mongoose.Types.ObjectId> = mongoose.PopulatedDoc<DocumentType<PopulatedType>, RawId>;
export interface DiscriminatorObject {

@@ -407,2 +405,11 @@ /** The Class to use */

}
/** Interface for just all naming options */
export interface INamingOptions {
/** Same as in {@link ICustomOptions} */
customName?: ICustomOptions['customName'];
/** Same as in {@link ICustomOptions} */
automaticName?: ICustomOptions['automaticName'];
/** Same as in {@link mongoose.SchemaOptions} */
schemaCollection?: mongoose.SchemaOptions['collection'];
}
/** Typegoose options, mostly for "modelOptions({ options: ICustomOptions })" */

@@ -431,24 +438,2 @@ export interface ICustomOptions {

/**
* Run "model.syncIndexes" when model is finished compiling?
* @deprecated Use "model.syncIndexes()" manually
* */
runSyncIndexes?: boolean;
/**
* Disable applying plugins when the class is a discriminator.
* This can be set to "true" when encountering that plugins or plugin-hooks are duplicated in a discriminator
* This is necessary because currently mongoose merges the base schema for a discriminator into the discriminator schema
* which will result in the plugins being overwritten and hooks may be duplicated.
* Only applies to discriminator schemas, not the base for the discriminators themself
* @see {@link https://github.com/Automattic/mongoose/issues/12472}
* @deprecated Not used anymore since version 9.13.0
* @default false
*/
disablePluginsOnDiscriminator?: never;
/**
* Option if the current class is meant to be a discriminator
* @deprecated Not used anymore since version 9.13.0
* @internal
*/
$isDiscriminator?: never;
/**
* Enable Overwriting of the plugins on the "to-be" discriminator schema with the base schema's

@@ -467,8 +452,28 @@ * Note: this does not actually "merge plugins", it will overwrite the "to-be" discriminator's plugins with the base schema's

enableMergeHooks?: boolean;
/**
* Disable all lower indexes than this class (works like `sch.clone().clearIndexes()`)
* @default false
*/
disableLowerIndexes?: boolean;
/**
* Set the Nested Discriminators on the *base* of the Discriminators
*
* This option can be used over the prop-option to not have to re-define discriminators if used in multiple classes
*/
discriminators?: NestedDiscriminatorsFunction;
}
/** Extra options for "_buildSchema" in "schema.ts" */
export interface IBuildSchemaOptions {
/**
* Add indexes from this class?
* will be "false" when "ICustomOptions.disableLowerIndexes" is "true" for some upper class
* @default true
*/
buildIndexes?: boolean;
}
/** Type for the Values stored in the Reflection for Properties */
export interface DecoratedPropertyMetadata {
/** Prop Options */
options: any;
/** Target Class */
options: KeyStringAny;
/** The Target Reflection target for getting metadata from keys */
target: AnyParamConstructor<any>;

@@ -478,9 +483,9 @@ /** Property name */

/** What is it for a prop type? */
whatis?: PropType;
propType?: PropType;
}
export declare type DecoratedPropertyMetadataMap = Map<string | symbol, DecoratedPropertyMetadata>;
export type DecoratedPropertyMetadataMap = Map<string | symbol, DecoratedPropertyMetadata>;
/**
* copy-paste from mongodb package (should be same as IndexOptions from 'mongodb')
* Alias of "mongoose.IndexOptions" for convenience
*/
export declare type IndexOptions<_T> = mongoose.IndexOptions;
export type IndexOptions = mongoose.IndexOptions;
/**

@@ -495,3 +500,3 @@ * Type for the Values stored in the Reflection for Indexes

fields: KeyStringAny;
options?: IndexOptions<unknown>;
options?: IndexOptions;
}

@@ -518,3 +523,3 @@ /**

*/
export declare type VirtualPopulateMap = Map<string, VirtualOptions & Record<string, unknown>>;
export type VirtualPopulateMap = Map<string, VirtualOptions & Record<string, unknown>>;
/**

@@ -537,3 +542,3 @@ * Gets the signature (parameters with their types, and the return type) of a function type.

*/
export declare type AsQueryMethod<T extends (...args: any) => any> = (...args: Parameters<T>) => ReturnType<T>;
export type AsQueryMethod<T extends (...args: any) => any> = (...args: Parameters<T>) => ReturnType<T>;
/**

@@ -547,3 +552,3 @@ * Helper type to easily set the `this` type in a QueryHelper function

*/
export declare type QueryHelperThis<T extends AnyParamConstructor<any>, QueryHelpers, S = DocumentType<T, QueryHelpers>> = mongoose.QueryWithHelpers<S | null, S, QueryHelpers>;
export type QueryHelperThis<T extends AnyParamConstructor<any>, QueryHelpers, S = DocumentType<T, QueryHelpers>> = mongoose.QueryWithHelpers<S | null, S, QueryHelpers>;
/**

@@ -556,3 +561,3 @@ * Type for the Values stored in the Reflection for Query Methods

*/
export declare type QueryMethodMap = Map<string, Func>;
export type QueryMethodMap = Map<string, Func>;
/**

@@ -565,5 +570,5 @@ * Type for the Values stored in the Reflection for Nested Discriminators

*/
export declare type NestedDiscriminatorsMap = Map<string, DiscriminatorObject[]>;
export type NestedDiscriminatorsMap = Map<string, DiscriminatorObject[]>;
/** A Helper type to combine both mongoose Hook Option types */
export declare type HookOptionsEither = mongoose.SchemaPreOptions | mongoose.SchemaPostOptions;
export type HookOptionsEither = mongoose.SchemaPreOptions | mongoose.SchemaPostOptions;
/**

@@ -580,3 +585,3 @@ * Type for the Values stored in the Reflection for Hooks

/** The Method to where this hook gets triggered */
method: string | RegExp;
methods: (string | RegExp)[];
/**

@@ -586,3 +591,3 @@ * Options for Hooks

*/
options: HookOptionsEither;
options?: HookOptionsEither;
}

@@ -604,9 +609,2 @@ export interface IGlobalOptions {

}
/**
* Interface describing a Object that has a "typegooseName" Value
* @deprecated This interface and value will be removed in typegoose 10, use {@link IObjectWithTypegooseFunction} instead
*/
export interface IObjectWithTypegooseName {
typegooseName: string;
}
/** For the types that error that seemingly don't have a prototype */

@@ -617,3 +615,3 @@ export interface IPrototype {

/** An Helper Interface for defining a "key" index of "string" and "value" of "any" */
export declare type KeyStringAny = Record<string, any>;
export type KeyStringAny = Record<string, any>;
/**

@@ -630,2 +628,7 @@ * The Return Type of "utils.getType"

*/
export declare type BeAnObject = Record<string, any>;
export type BeAnObject = Record<string, any>;
/** Options used for "processProp" */
export interface ProcessPropOptions extends DecoratedPropertyMetadata {
/** The target Class's static version */
cl: AnyParamConstructor<any>;
}
{
"name": "@typegoose/typegoose",
"version": "9.13.2",
"version": "10.0.0-beta.1",
"description": "Define Mongoose models using TypeScript classes",

@@ -8,3 +8,3 @@ "main": "lib/typegoose.js",

"engines": {
"node": ">=12.22.0"
"node": ">=14.17.0"
},

@@ -17,3 +17,3 @@ "files": [

"build": "tsc -p tsconfig.build.json",
"build:tests": "tsc -p tsconfig.json",
"build:tests": "tsc -p tsconfig.buildTests.json",
"lint": "eslint -c ./.eslintrc.js \"./**/*.{js,ts}\"",

@@ -25,5 +25,4 @@ "test": "jest",

"test:types": "jest -c jest.config.tsd.json",
"watch": "tsc -w -p tsconfig.json",
"watch": "tsc -w -p tsconfig.buildTests.json",
"clean": "rimraf lib .tsbuildinfo coverage doc build",
"version:patch": "yarn version patch -m 'release: %s'",
"prepare": "husky install",

@@ -43,39 +42,39 @@ "website": "yarn --cwd website/ run start"

"peerDependencies": {
"mongoose": "~6.7.2"
"mongoose": "~6.7.5"
},
"devDependencies": {
"@commitlint/cli": "^16.3.0",
"@commitlint/config-conventional": "^16.2.4",
"@commitlint/cli": "^17.3.0",
"@commitlint/config-conventional": "^17.3.0",
"@deepkit/core": "1.0.1-alpha.58",
"@deepkit/type": "1.0.1-alpha.58",
"@semantic-release/changelog": "^5.0.1",
"@semantic-release/commit-analyzer": "^8.0.1",
"@semantic-release/git": "^9.0.0",
"@semantic-release/github": "^7.2.3",
"@semantic-release/npm": "^7.1.3",
"@semantic-release/release-notes-generator": "^9.0.3",
"@tsd/typescript": "~4.8.4",
"@types/jest": "^28.1.8",
"@types/lodash": "^4.14.189",
"@types/node": "~12.20.55",
"@semantic-release/changelog": "^6.0.2",
"@semantic-release/commit-analyzer": "^9.0.2",
"@semantic-release/git": "^10.0.1",
"@semantic-release/github": "^8.0.7",
"@semantic-release/npm": "^9.0.1",
"@semantic-release/release-notes-generator": "^10.0.3",
"@tsd/typescript": "~4.9.3",
"@types/jest": "^29.2.3",
"@types/lodash": "^4.14.191",
"@types/node": "~14.14.31",
"@types/semver": "^7.3.13",
"@typescript-eslint/eslint-plugin": "^5.43.0",
"@typescript-eslint/parser": "^5.43.0",
"@typescript-eslint/eslint-plugin": "^5.45.0",
"@typescript-eslint/parser": "^5.45.0",
"class-transformer": "0.5.1",
"commitlint": "^16.3.0",
"eslint": "^8.27.0",
"commitlint": "^17.3.0",
"eslint": "^8.28.0",
"eslint-config-prettier": "^8.5.0",
"eslint-plugin-prettier": "^4.2.1",
"husky": "^7.0.4",
"jest": "^28.1.3",
"jest-runner-tsd": "^3.1.1",
"lint-staged": "^12.5.0",
"mongodb-memory-server": "^8.10.0",
"mongoose": "~6.7.2",
"husky": "^8.0.2",
"jest": "^29.3.1",
"jest-runner-tsd": "^4.0.0",
"lint-staged": "^13.0.4",
"mongodb-memory-server": "^8.10.1",
"mongoose": "~6.7.5",
"mongoose-findorcreate": "3.0.0",
"prettier": "^2.7.1",
"prettier": "^2.8.0",
"rimraf": "^3.0.2",
"semantic-release": "^17.4.7",
"ts-jest": "^28.0.8",
"typescript": "~4.8.4"
"semantic-release": "^19.0.5",
"ts-jest": "^29.0.3",
"typescript": "~4.9.3"
},

@@ -82,0 +81,0 @@ "dependencies": {

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc