kpfromer / nestjs-typegoose

Typegoose with NestJS
https://kpfromer.github.io/nestjs-typegoose/
MIT License
291 stars 71 forks source link

chore(deps): update dependency mongoose to v5.13.20 [security] - autoclosed #496

Closed renovate[bot] closed 1 month ago

renovate[bot] commented 1 year ago

Mend Renovate

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
mongoose (source) 5.10.4 -> 5.13.20 age adoption passing confidence

GitHub Vulnerability Alerts

CVE-2023-3696

Prototype Pollution in GitHub repository automattic/mongoose prior to 7.3.3, 6.11.3, and 5.13.20.

CVE-2022-24304

Description

Mongoose is a MongoDB object modeling tool designed to work in an asynchronous environment.

Affected versions of this package are vulnerable to Prototype Pollution. The Schema.path() function is vulnerable to prototype pollution when setting the schema object. This vulnerability allows modification of the Object prototype and could be manipulated into a Denial of Service (DoS) attack.

Proof of Concept

// poc.js
const mongoose = require('mongoose');
const schema = new mongoose.Schema();

malicious_payload = '__proto__.toString'

schema.path(malicious_payload, [String])

x = {}
console.log(x.toString()) // crashed (Denial of service (DoS) attack)

Impact

This vulnerability can be manipulated to exploit other types of attacks, such as Denial of service (DoS), Remote Code Execution, or Property Injection.


Release Notes

Automattic/mongoose (mongoose) ### [`v5.13.20`](https://togithub.com/Automattic/mongoose/compare/5.13.19...5.13.20) [Compare Source](https://togithub.com/Automattic/mongoose/compare/5.13.19...5.13.20) ### [`v5.13.19`](https://togithub.com/Automattic/mongoose/compare/5.13.18...5.13.19) [Compare Source](https://togithub.com/Automattic/mongoose/compare/5.13.18...5.13.19) ### [`v5.13.18`](https://togithub.com/Automattic/mongoose/compare/5.13.17...5.13.18) [Compare Source](https://togithub.com/Automattic/mongoose/compare/5.13.17...5.13.18) ### [`v5.13.17`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#51317--2023-04-04) [Compare Source](https://togithub.com/Automattic/mongoose/compare/5.13.16...5.13.17) \==================== - fix: backport fix for array filters handling $or and $and [#​13195](https://togithub.com/Automattic/mongoose/issues/13195) [#​13192](https://togithub.com/Automattic/mongoose/issues/13192) [#​10696](https://togithub.com/Automattic/mongoose/issues/10696) [raj-goguardian](https://togithub.com/raj-goguardian) - fix: update the isIndexEqual function to take into account non-text indexes when checking compound indexes that include both text and non-text indexes [#​13138](https://togithub.com/Automattic/mongoose/issues/13138) [#​13136](https://togithub.com/Automattic/mongoose/issues/13136) [rdeavila94](https://togithub.com/rdeavila94) ### [`v5.13.16`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#51316--2023-02-20) [Compare Source](https://togithub.com/Automattic/mongoose/compare/5.13.15...5.13.16) \==================== - fix: make access to process.versions lazy [#​12584](https://togithub.com/Automattic/mongoose/issues/12584) [maciasello](https://togithub.com/maciasello) - fix(types): add missing type definitions for `bulkSave()` [#​12019](https://togithub.com/Automattic/mongoose/issues/12019) - docs: backport documentation URL updates [#​12692](https://togithub.com/Automattic/mongoose/issues/12692) [hasezoey](https://togithub.com/hasezoey) ### [`v5.13.15`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#51315--2022-08-22) [Compare Source](https://togithub.com/Automattic/mongoose/compare/5.13.14...5.13.15) \==================== - fix: backport fix for CVE-2022-2564 [#​12281](https://togithub.com/Automattic/mongoose/issues/12281) [shubanker](https://togithub.com/shubanker) - docs: fix broken link from findandmodify method deprecation [#​11366](https://togithub.com/Automattic/mongoose/issues/11366) [laissonsilveira](https://togithub.com/laissonsilveira) ### [`v5.13.14`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#51314--2021-12-27) [Compare Source](https://togithub.com/Automattic/mongoose/compare/5.13.13...5.13.14) \==================== - fix(timestamps): avoid setting createdAt on documents that already exist but dont have createdAt [#​11024](https://togithub.com/Automattic/mongoose/issues/11024) - docs(models): fix up nModified example for 5.x [#​11055](https://togithub.com/Automattic/mongoose/issues/11055) ### [`v5.13.13`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#51313--2021-11-02) [Compare Source](https://togithub.com/Automattic/mongoose/compare/5.13.12...5.13.13) \==================== - fix: upgrade to mongodb@3.7.3 [#​10909](https://togithub.com/Automattic/mongoose/issues/10909) [gaurav-sharma-gs](https://togithub.com/gaurav-sharma-gs) - fix: correctly emit end event in before close [#​10916](https://togithub.com/Automattic/mongoose/issues/10916) [iovanom](https://togithub.com/iovanom) - fix(index.d.ts): improve ts types for query set [#​10942](https://togithub.com/Automattic/mongoose/issues/10942) [jneal-afs](https://togithub.com/jneal-afs) ### [`v5.13.12`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#51312--2021-10-19) [Compare Source](https://togithub.com/Automattic/mongoose/compare/5.13.11...5.13.12) \==================== - fix(cursor): use stream destroy method on close to prevent emitting duplicate 'close' [#​10897](https://togithub.com/Automattic/mongoose/issues/10897) [iovanom](https://togithub.com/iovanom) - fix(index.d.ts): backport streamlining of FilterQuery and DocumentDefinition to avoid "excessively deep and possibly infinite" TS errors [#​10617](https://togithub.com/Automattic/mongoose/issues/10617) ### [`v5.13.11`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#51311--2021-10-12) [Compare Source](https://togithub.com/Automattic/mongoose/compare/5.13.10...5.13.11) \==================== - fix: upgrade mongodb -> 3.7.2 [#​10871](https://togithub.com/Automattic/mongoose/issues/10871) [winstonralph](https://togithub.com/winstonralph) - fix(connection): call setMaxListeners(0) on MongoClient to avoid event emitter memory leak warnings with `useDb()` [#​10732](https://togithub.com/Automattic/mongoose/issues/10732) ### [`v5.13.10`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#51310--2021-10-05) [Compare Source](https://togithub.com/Automattic/mongoose/compare/5.13.9...5.13.10) \==================== - fix(index.d.ts): allow using type: SchemaDefinitionProperty in schema definitions [#​10674](https://togithub.com/Automattic/mongoose/issues/10674) - fix(index.d.ts): allow AnyObject as param to findOneAndReplace() [#​10714](https://togithub.com/Automattic/mongoose/issues/10714) ### [`v5.13.9`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#5139--2021-09-06) [Compare Source](https://togithub.com/Automattic/mongoose/compare/5.13.8...5.13.9) \=================== - fix(populate): avoid setting empty array on lean document when populate result is undefined [#​10599](https://togithub.com/Automattic/mongoose/issues/10599) - fix(document): make depopulate() handle populated paths underneath document arrays [#​10592](https://togithub.com/Automattic/mongoose/issues/10592) - fix: peg [@​types/bson](https://togithub.com/types/bson) version to 1.x || 4.0.x to avoid stubbed 4.2.x release [#​10678](https://togithub.com/Automattic/mongoose/issues/10678) - fix(index.d.ts): simplify UpdateQuery to avoid "excessively deep and possibly infinite" errors with `extends Document` and `any` [#​10647](https://togithub.com/Automattic/mongoose/issues/10647) - fix(index.d.ts): allow specifying weights as an IndexOption [#​10586](https://togithub.com/Automattic/mongoose/issues/10586) - fix: upgrade to mpath v0.8.4 re: security issue [#​10683](https://togithub.com/Automattic/mongoose/issues/10683) ### [`v5.13.8`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#5138--2021-08-23) [Compare Source](https://togithub.com/Automattic/mongoose/compare/5.13.7...5.13.8) \=================== - fix(populate): handle populating subdoc array virtual with sort [#​10552](https://togithub.com/Automattic/mongoose/issues/10552) - fix(model): check for code instead of codeName when checking for existing collections for backwards compat with MongoDB 3.2 [#​10420](https://togithub.com/Automattic/mongoose/issues/10420) - fix(index.d.ts): correct value of this for custom query helper methods [#​10545](https://togithub.com/Automattic/mongoose/issues/10545) - fix(index.d.ts): allow strings for ObjectIds in nested properties [#​10573](https://togithub.com/Automattic/mongoose/issues/10573) - fix(index.d.ts): add match to VirtualTypeOptions.options [#​8749](https://togithub.com/Automattic/mongoose/issues/8749) - fix(index.d.ts): allow QueryOptions populate parameter type PopulateOptions [#​10587](https://togithub.com/Automattic/mongoose/issues/10587) [osmanakol](https://togithub.com/osmanakol) - docs(api): add Document#$where to API docs [#​10583](https://togithub.com/Automattic/mongoose/issues/10583) ### [`v5.13.7`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#5137--2021-08-11) [Compare Source](https://togithub.com/Automattic/mongoose/compare/477afdc8aa1297b87e784085133617765a059a4d...5.13.7) \=================== - perf(index.d.ts): loosen up restrictions on ModelType generic for Schema for a ~50% perf improvement when compiling TypeScript and using intellisense [#​10536](https://togithub.com/Automattic/mongoose/issues/10536) [#​10515](https://togithub.com/Automattic/mongoose/issues/10515) [#​10349](https://togithub.com/Automattic/mongoose/issues/10349) - fix(index.d.ts): fix broken `Schema#index()` types [#​10562](https://togithub.com/Automattic/mongoose/issues/10562) [JaredReisinger](https://togithub.com/JaredReisinger) - fix(index.d.ts): allow using SchemaTypeOptions with array of raw document interfaces [#​10537](https://togithub.com/Automattic/mongoose/issues/10537) - fix(index.d.ts): define IndexOptions in terms of mongodb.IndexOptions [#​10563](https://togithub.com/Automattic/mongoose/issues/10563) [JaredReisinger](https://togithub.com/JaredReisinger) - fix(index.d.ts): improve intellisense for DocumentArray `push()` [#​10546](https://togithub.com/Automattic/mongoose/issues/10546) - fix(index.d.ts): correct type for expires [#​10529](https://togithub.com/Automattic/mongoose/issues/10529) - fix(index.d.ts): add Query#model property to ts bindings [#​10531](https://togithub.com/Automattic/mongoose/issues/10531) - refactor(index.d.ts): make callbacks use the new Callback and CallbackWithoutResult types [#​10550](https://togithub.com/Automattic/mongoose/issues/10550) [thiagokisaki](https://togithub.com/thiagokisaki) ### [`v5.13.6`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#5136--2021-08-09) [Compare Source](https://togithub.com/Automattic/mongoose/compare/5.13.5...477afdc8aa1297b87e784085133617765a059a4d) \=================== - fix: upgrade mongodb driver -> 3.6.11 [#​10543](https://togithub.com/Automattic/mongoose/issues/10543) [maon-fp](https://togithub.com/maon-fp) - fix(schema): throw more helpful error when defining a document array using a schema from a different copy of the Mongoose module [#​10453](https://togithub.com/Automattic/mongoose/issues/10453) - fix: add explicit check on constructor property to avoid throwing an error when checking objects with null prototypes [#​10512](https://togithub.com/Automattic/mongoose/issues/10512) - fix(cursor): make sure to clear stack every 1000 docs when calling `next()` to avoid stack overflow with large batch size [#​10449](https://togithub.com/Automattic/mongoose/issues/10449) - fix(index.d.ts): allow calling new Model(...) with generic Model param [#​10526](https://togithub.com/Automattic/mongoose/issues/10526) - fix(index.d.ts): update type declarations of Schema.index method [#​10538](https://togithub.com/Automattic/mongoose/issues/10538) [#​10530](https://togithub.com/Automattic/mongoose/issues/10530) [Raader](https://togithub.com/Raader) - fix(index.d.ts): add useNewUrlParser and useUnifiedTopology to ConnectOptions [#​10500](https://togithub.com/Automattic/mongoose/issues/10500) - fix(index.d.ts): add missing type for diffIndexes [#​10547](https://togithub.com/Automattic/mongoose/issues/10547) [bvgusak](https://togithub.com/bvgusak) - fix(index.d.ts): fixed incorrect type definition for Query's .map function [#​10544](https://togithub.com/Automattic/mongoose/issues/10544) [GCastilho](https://togithub.com/GCastilho) - docs(schema): add more info and examples to Schema#indexes() docs [#​10446](https://togithub.com/Automattic/mongoose/issues/10446) - chore: add types property to package.json [#​10557](https://togithub.com/Automattic/mongoose/issues/10557) [thiagokisaki](https://togithub.com/thiagokisaki) ### [`v5.13.5`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#5135--2021-07-30) [Compare Source](https://togithub.com/Automattic/mongoose/compare/5.13.4...5.13.5) \=================== - perf(index.d.ts): improve typescript type checking performance [#​10515](https://togithub.com/Automattic/mongoose/issues/10515) [andreialecu](https://togithub.com/andreialecu) - fix(index.d.ts): fix debug type in MongooseOptions [#​10510](https://togithub.com/Automattic/mongoose/issues/10510) [thiagokisaki](https://togithub.com/thiagokisaki) - docs(api): clarify that `depopulate()` with no args depopulates all [#​10501](https://togithub.com/Automattic/mongoose/issues/10501) [gfrancz](https://togithub.com/gfrancz) ### [`v5.13.4`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#5134--2021-07-28) [Compare Source](https://togithub.com/Automattic/mongoose/compare/5.13.3...5.13.4) \=================== - fix: avoid pulling non-schema paths from documents into nested paths [#​10449](https://togithub.com/Automattic/mongoose/issues/10449) - fix(update): support overwriting nested map paths [#​10485](https://togithub.com/Automattic/mongoose/issues/10485) - fix(update): apply timestamps to subdocs that would be newly created by `$setOnInsert` [#​10460](https://togithub.com/Automattic/mongoose/issues/10460) - fix(map): correctly clone subdocs when calling toObject() on a map [#​10486](https://togithub.com/Automattic/mongoose/issues/10486) - fix(cursor): cap parallel batchSize for populate at 5000 [#​10449](https://togithub.com/Automattic/mongoose/issues/10449) - fix(index.d.ts): improve autocomplete for new Model() by making `doc` an object with correct keys [#​10475](https://togithub.com/Automattic/mongoose/issues/10475) - fix(index.d.ts): add MongooseOptions interface [#​10471](https://togithub.com/Automattic/mongoose/issues/10471) [thiagokisaki](https://togithub.com/thiagokisaki) - fix(index.d.ts): make LeanDocument work with PopulatedDoc [#​10494](https://togithub.com/Automattic/mongoose/issues/10494) - docs(mongoose+connection): correct default value for bufferTimeoutMS [#​10476](https://togithub.com/Automattic/mongoose/issues/10476) - chore: remove unnecessary 'eslint-disable' comments [#​10466](https://togithub.com/Automattic/mongoose/issues/10466) [thiagokisaki](https://togithub.com/thiagokisaki) ### [`v5.13.3`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#5133--2021-07-16) [Compare Source](https://togithub.com/Automattic/mongoose/compare/5.13.2...5.13.3) \=================== - fix(model): avoid throwing error when bulkSave() called on a document with no changes [#​10437](https://togithub.com/Automattic/mongoose/issues/10437) - fix(timestamps): apply timestamps when creating new subdocs with `$addToSet` and with positional operator [#​10447](https://togithub.com/Automattic/mongoose/issues/10447) - fix(schema): allow calling Schema#loadClass() with class that has a static getter with no setter [#​10436](https://togithub.com/Automattic/mongoose/issues/10436) - fix(model): handle re-applying object defaults after explicitly unsetting [#​10442](https://togithub.com/Automattic/mongoose/issues/10442) [semirturgay](https://togithub.com/semirturgay) - fix: bump mongodb driver -> 3.6.10 [#​10440](https://togithub.com/Automattic/mongoose/issues/10440) [AbdelrahmanHafez](https://togithub.com/AbdelrahmanHafez) - fix(index.d.ts): consistently use NativeDate instead of Date for Date validators and timestamps functions [#​10426](https://togithub.com/Automattic/mongoose/issues/10426) - fix(index.d.ts): allow calling `discriminator()` with non-document [#​10452](https://togithub.com/Automattic/mongoose/issues/10452) [#​10421](https://togithub.com/Automattic/mongoose/issues/10421) [DouglasGabr](https://togithub.com/DouglasGabr) - fix(index.d.ts): allow passing ResultType generic to Schema#path() [#​10435](https://togithub.com/Automattic/mongoose/issues/10435) ### [`v5.13.2`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#5132--2021-07-03) [Compare Source](https://togithub.com/Automattic/mongoose/compare/5.13.1...5.13.2) \=================== - fix: hardcode [@​types/node](https://togithub.com/types/node) version for now to avoid breaking changes from [DefinitelyTyped/DefinitelyTyped#53669](https://togithub.com/DefinitelyTyped/DefinitelyTyped/issues/53669) [#​10415](https://togithub.com/Automattic/mongoose/issues/10415) - fix(index.d.ts): allow using type: Date with Date paths in SchemaDefinitionType [#​10409](https://togithub.com/Automattic/mongoose/issues/10409) - fix(index.d.ts): allow extra VirtualTypeOptions for better plugin support [#​10412](https://togithub.com/Automattic/mongoose/issues/10412) - docs(api): add SchemaArray to docs [#​10397](https://togithub.com/Automattic/mongoose/issues/10397) - docs(schema+validation): fix broken links [#​10396](https://togithub.com/Automattic/mongoose/issues/10396) - docs(transactions): add note about creating a connection to transactions docs [#​10406](https://togithub.com/Automattic/mongoose/issues/10406) ### [`v5.13.1`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#51317--2023-04-04) [Compare Source](https://togithub.com/Automattic/mongoose/compare/5.13.0...5.13.1) \==================== - fix: backport fix for array filters handling $or and $and [#​13195](https://togithub.com/Automattic/mongoose/issues/13195) [#​13192](https://togithub.com/Automattic/mongoose/issues/13192) [#​10696](https://togithub.com/Automattic/mongoose/issues/10696) [raj-goguardian](https://togithub.com/raj-goguardian) - fix: update the isIndexEqual function to take into account non-text indexes when checking compound indexes that include both text and non-text indexes [#​13138](https://togithub.com/Automattic/mongoose/issues/13138) [#​13136](https://togithub.com/Automattic/mongoose/issues/13136) [rdeavila94](https://togithub.com/rdeavila94) ### [`v5.13.0`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#5130--2021-06-28) [Compare Source](https://togithub.com/Automattic/mongoose/compare/5.12.15...5.13.0) \=================== - feat(query): add sanitizeProjection option to opt in to automatically sanitizing untrusted query projections [#​10243](https://togithub.com/Automattic/mongoose/issues/10243) - feat(model): add `bulkSave()` function that saves multiple docs in 1 `bulkWrite()` [#​9727](https://togithub.com/Automattic/mongoose/issues/9727) [#​9673](https://togithub.com/Automattic/mongoose/issues/9673) [AbdelrahmanHafez](https://togithub.com/AbdelrahmanHafez) - feat(document): allow passing a list of virtuals or `pathsToSkip` to apply in `toObject()` and `toJSON()` [#​10120](https://togithub.com/Automattic/mongoose/issues/10120) - fix(model): make Model.validate use object under validation as context by default [#​10360](https://togithub.com/Automattic/mongoose/issues/10360) [AbdelrahmanHafez](https://togithub.com/AbdelrahmanHafez) - feat(document): add support for pathsToSkip in validate and validateSync [#​10375](https://togithub.com/Automattic/mongoose/issues/10375) [AbdelrahmanHafez](https://togithub.com/AbdelrahmanHafez) - feat(model): add `diffIndexes()` function that calculates what indexes `syncIndexes()` will create/drop without actually executing any changes [#​10362](https://togithub.com/Automattic/mongoose/issues/10362) [IslandRhythms](https://togithub.com/IslandRhythms) - feat(document): avoid using sessions that have ended, so you can use documents that were loaded in the session after calling `endSession()` [#​10306](https://togithub.com/Automattic/mongoose/issues/10306) ### [`v5.12.15`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#51215--2021-06-25) [Compare Source](https://togithub.com/Automattic/mongoose/compare/5.12.14...5.12.15) \==================== - fix(index.d.ts): add extra TInstanceMethods generic param to `Schema` for cases when we can't infer from Model [#​10358](https://togithub.com/Automattic/mongoose/issues/10358) - fix(index.d.ts): added typings for near() in model aggregation [#​10373](https://togithub.com/Automattic/mongoose/issues/10373) [tbhaxor](https://togithub.com/tbhaxor) - fix(index.d.ts): correct function signature for `Query#cast()` [#​10388](https://togithub.com/Automattic/mongoose/issues/10388) [lkho](https://togithub.com/lkho) - docs(transactions): add import statement [#​10365](https://togithub.com/Automattic/mongoose/issues/10365) [JimLynchCodes](https://togithub.com/JimLynchCodes) - docs(schema): add missing `discriminatorKey` schema option [#​10386](https://togithub.com/Automattic/mongoose/issues/10386) [#​10376](https://togithub.com/Automattic/mongoose/issues/10376) [IslandRhythms](https://togithub.com/IslandRhythms) - docs(index.d.ts): fix typo [#​10363](https://togithub.com/Automattic/mongoose/issues/10363) [houssemchebeb](https://togithub.com/houssemchebeb) ### [`v5.12.14`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#51214--2021-06-15) [Compare Source](https://togithub.com/Automattic/mongoose/compare/5.12.13...5.12.14) \==================== - fix(schema): check that schema type is an object when setting isUnderneathDocArray [#​10361](https://togithub.com/Automattic/mongoose/issues/10361) [vmo-khanus](https://togithub.com/vmo-khanus) - fix(document): avoid infinite recursion when setting single nested subdoc to array [#​10351](https://togithub.com/Automattic/mongoose/issues/10351) - fix(populate): allow populating nested path in schema using `Model.populate()` [#​10335](https://togithub.com/Automattic/mongoose/issues/10335) - fix(drivers): emit operation-start/operation-end events to allow inspecting when operations start and end - fix(index.d.ts): improve typings for virtuals [#​10350](https://togithub.com/Automattic/mongoose/issues/10350) [thiagokisaki](https://togithub.com/thiagokisaki) - fix(index.d.ts): correct constructor type for Document [#​10328](https://togithub.com/Automattic/mongoose/issues/10328) - fix(index.d.ts): add `ValidationError` as a possible type for `ValidationError#errors` [#​10320](https://togithub.com/Automattic/mongoose/issues/10320) [IslandRhythms](https://togithub.com/IslandRhythms) - fix: remove unnecessary async devDependency that's causing npm audit warnings [#​10281](https://togithub.com/Automattic/mongoose/issues/10281) - docs(typescript): add schemas guide [#​10308](https://togithub.com/Automattic/mongoose/issues/10308) - docs(model): add options parameter description to `Model.exists()` [#​10336](https://togithub.com/Automattic/mongoose/issues/10336) [Aminoiz](https://togithub.com/Aminoiz) ### [`v5.12.13`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#51213--2021-06-04) [Compare Source](https://togithub.com/Automattic/mongoose/compare/5.12.12...5.12.13) \==================== - perf(document): avoid creating nested paths when running `$getAllSubdocs()` [#​10275](https://togithub.com/Automattic/mongoose/issues/10275) - fix: make returnDocument option work with `findOneAndUpdate()` [#​10232](https://togithub.com/Automattic/mongoose/issues/10232) [#​10231](https://togithub.com/Automattic/mongoose/issues/10231) [cnwangjie](https://togithub.com/cnwangjie) - fix(document): correctly reset subdocument when resetting a map subdocument underneath a single nested subdoc after save [#​10295](https://togithub.com/Automattic/mongoose/issues/10295) - perf(query): avoid setting non-null sessions to avoid overhead from $getAllSubdocs() [#​10275](https://togithub.com/Automattic/mongoose/issues/10275) - perf(document): pre split schematype paths when compiling schema to avoid extra overhead of splitting when hydrating documents [#​10275](https://togithub.com/Automattic/mongoose/issues/10275) - perf(schema): pre-calculate mapPaths to avoid looping over every path for each path when initing doc [#​10275](https://togithub.com/Automattic/mongoose/issues/10275) - fix(index.d.ts): drill down into nested arrays when creating LeanDocument type [#​10293](https://togithub.com/Automattic/mongoose/issues/10293) ### [`v5.12.12`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#51212--2021-05-28) [Compare Source](https://togithub.com/Automattic/mongoose/compare/5.12.11...5.12.12) \==================== - fix(documentarray): retain atomics when setting to a new array [#​10272](https://togithub.com/Automattic/mongoose/issues/10272) - fix(query+model): fix deprecation warning for `returnOriginal` with `findOneAndUpdate()` [#​10298](https://togithub.com/Automattic/mongoose/issues/10298) [#​10297](https://togithub.com/Automattic/mongoose/issues/10297) [#​10292](https://togithub.com/Automattic/mongoose/issues/10292) [#​10285](https://togithub.com/Automattic/mongoose/issues/10285) [IslandRhythms](https://togithub.com/IslandRhythms) - fix(index.d.ts): make `map()` result an array if used over an array [#​10288](https://togithub.com/Automattic/mongoose/issues/10288) [quantumsheep](https://togithub.com/quantumsheep) ### [`v5.12.11`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#51211--2021-05-24) [Compare Source](https://togithub.com/Automattic/mongoose/compare/5.12.10...5.12.11) \==================== - fix(populate): skip applying setters when casting arrays for populate() to avoid issues with arrays of immutable elements [#​10264](https://togithub.com/Automattic/mongoose/issues/10264) - perf(schematype): avoid cloning setters every time we run setters [#​9588](https://togithub.com/Automattic/mongoose/issues/9588) - perf(get): add benchmarks and extra cases to speed up get() [#​9588](https://togithub.com/Automattic/mongoose/issues/9588) - perf(array): improve array constructor performance on small arrays to improve nested array perf [#​9588](https://togithub.com/Automattic/mongoose/issues/9588) - fix(index.d.ts): allow using type: \[String] with string\[] when using SchemaDefinition with generic [#​10261](https://togithub.com/Automattic/mongoose/issues/10261) - fix(index.d.ts): support ReadonlyArray as well as regular array where possible in schema definitions [#​10260](https://togithub.com/Automattic/mongoose/issues/10260) - docs(connection): document noListener option to useDb [#​10278](https://togithub.com/Automattic/mongoose/issues/10278) [stuartpb](https://togithub.com/stuartpb) - docs: migrate raw tutorial content from pug / JS to markdown [#​10271](https://togithub.com/Automattic/mongoose/issues/10271) - docs: fix typo [#​10269](https://togithub.com/Automattic/mongoose/issues/10269) [sanjib](https://togithub.com/sanjib) ### [`v5.12.10`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#51210--2021-05-18) [Compare Source](https://togithub.com/Automattic/mongoose/compare/5.12.9...5.12.10) \==================== - fix(query): allow setting `defaults` option on result documents from query options [#​7287](https://togithub.com/Automattic/mongoose/issues/7287) [IslandRhythms](https://togithub.com/IslandRhythms) - fix(populate): handle populating embedded discriminator with custom tiedValue [#​10231](https://togithub.com/Automattic/mongoose/issues/10231) - fix(document): allow passing space-delimited string of `pathsToValidate` to `validate()` and `validateSync()` [#​10258](https://togithub.com/Automattic/mongoose/issues/10258) - fix(model+schema): support `loadClass()` on classes that have `collection` as a static property [#​10257](https://togithub.com/Automattic/mongoose/issues/10257) [#​10254](https://togithub.com/Automattic/mongoose/issues/10254) [IslandRhythms](https://togithub.com/IslandRhythms) - fix(SchemaArrayOptions): correct property name [#​10236](https://togithub.com/Automattic/mongoose/issues/10236) - fix(index.d.ts): add any to all query operators to minimize likelihood of "type instantiation is excessively deep" when querying docs with 4-level deep subdocs [#​10189](https://togithub.com/Automattic/mongoose/issues/10189) - fix(index.d.ts): add $parent() in addition to parent() in TS definitions - fix(index.d.ts): correct async iterator return type for QueryCursor [#​10253](https://togithub.com/Automattic/mongoose/issues/10253) [#​10252](https://togithub.com/Automattic/mongoose/issues/10252) [#​10251](https://togithub.com/Automattic/mongoose/issues/10251) [borfig](https://togithub.com/borfig) - fix(index.d.ts): add `virtualsOnly` parameter to `loadClass()` function signature [IslandRhythms](https://togithub.com/IslandRhythms) - docs(typescript): add typescript populate docs [#​10212](https://togithub.com/Automattic/mongoose/issues/10212) - docs: switch from AWS to Azure Functions for search [#​10244](https://togithub.com/Automattic/mongoose/issues/10244) ### [`v5.12.9`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#5129--2021-05-13) [Compare Source](https://togithub.com/Automattic/mongoose/compare/5.12.8...5.12.9) \=================== - fix(schema): ensure add() overwrites existing schema paths by default [#​10208](https://togithub.com/Automattic/mongoose/issues/10208) [#​10203](https://togithub.com/Automattic/mongoose/issues/10203) - fix(schema): support creating nested paths underneath document arrays [#​10193](https://togithub.com/Automattic/mongoose/issues/10193) - fix(update): convert nested dotted paths in update to nested paths to avoid ending up with dotted properties in update [#​10200](https://togithub.com/Automattic/mongoose/issues/10200) - fix(document): allow calling validate() and validateSync() with `options` as first parameter [#​10216](https://togithub.com/Automattic/mongoose/issues/10216) - fix(schema): apply static properties to model when using loadClass() [#​10206](https://togithub.com/Automattic/mongoose/issues/10206) - fix(index.d.ts): allow returning Promise from middleware functions [#​10229](https://togithub.com/Automattic/mongoose/issues/10229) - fix(index.d.ts): add pre('distinct') hooks to TypeScript [#​10192](https://togithub.com/Automattic/mongoose/issues/10192) ### [`v5.12.8`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#5128--2021-05-10) [Compare Source](https://togithub.com/Automattic/mongoose/compare/5.12.7...5.12.8) \=================== - fix(populate): handle populating immutable array paths [#​10159](https://togithub.com/Automattic/mongoose/issues/10159) - fix(CastError): add `toJSON()` function to ensure `name` property always ends up in `JSON.stringify()` output [#​10166](https://togithub.com/Automattic/mongoose/issues/10166) [IslandRhythms](https://togithub.com/IslandRhythms) - fix(query): add allowDiskUse() method to improve setting MongoDB 4.4's new `allowDiskUse` option [#​10177](https://togithub.com/Automattic/mongoose/issues/10177) - fix(populate): allow populating paths under mixed schematypes where some documents have non-object properties [#​10191](https://togithub.com/Automattic/mongoose/issues/10191) - chore: remove unnecessary driver dynamic imports so Mongoose can work with Parcel [#​9603](https://togithub.com/Automattic/mongoose/issues/9603) - fix(index.d.ts): allow any object as parameter to create() and `insertMany()` [#​10144](https://togithub.com/Automattic/mongoose/issues/10144) - fix(index.d.ts): allow creating Model class with raw interface, no `extends Document` [#​10144](https://togithub.com/Automattic/mongoose/issues/10144) - fix(index.d.ts): separate UpdateQuery from `UpdateWithAggregationPipeline` for cases when `UpdateQuery` is used as a function param [#​10186](https://togithub.com/Automattic/mongoose/issues/10186) - fix(index.d.ts): don't require error value in pre/post hooks [#​10213](https://togithub.com/Automattic/mongoose/issues/10213) [michaln-q](https://togithub.com/michaln-q) - docs(typescript): add a typescript intro tutorial and statics tutorial [#​10021](https://togithub.com/Automattic/mongoose/issues/10021) - docs(typescript): add query helpers tutorial [#​10021](https://togithub.com/Automattic/mongoose/issues/10021) - docs(deprecations): add note that you can safely ignore `useFindAndModify` and `useCreateIndex` deprecation warnings [#​10155](https://togithub.com/Automattic/mongoose/issues/10155) - chore(workflows): add node 16 to github actions [#​10201](https://togithub.com/Automattic/mongoose/issues/10201) [AbdelrahmanHafez](https://togithub.com/AbdelrahmanHafez) ### [`v5.12.7`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#5127--2021-04-29) [Compare Source](https://togithub.com/Automattic/mongoose/compare/5.12.6...5.12.7) \=================== - fix(document): make $getPopulatedDocs() return populated virtuals [#​10148](https://togithub.com/Automattic/mongoose/issues/10148) - fix(discriminator): take discriminator schema's single nested paths over base schema's [#​10157](https://togithub.com/Automattic/mongoose/issues/10157) - fix(discriminator): allow numbers and ObjectIds as tied values for discriminators [#​10130](https://togithub.com/Automattic/mongoose/issues/10130) - fix(document): avoid double validating paths underneath mixed objects in save() [#​10141](https://togithub.com/Automattic/mongoose/issues/10141) - fix(schema): allow path() to return single nested paths within document arrays [#​10164](https://togithub.com/Automattic/mongoose/issues/10164) - fix(model+query): consistently wrap query callbacks in `process.nextTick()` to avoid clean stack traces causing memory leak when using synchronous recursion like `async.whilst()` [#​9864](https://togithub.com/Automattic/mongoose/issues/9864) - fix(cursor): correctly report CastError when using noCursorTimeout flag [#​10150](https://togithub.com/Automattic/mongoose/issues/10150) - fix(index.d.ts): add CastError constructor [#​10176](https://togithub.com/Automattic/mongoose/issues/10176) - fix(index.d.ts): allow setting mongoose.pluralize(null) in TypeScript [#​10185](https://togithub.com/Automattic/mongoose/issues/10185) - docs: add link to transactions guide from nav bar [#​10143](https://togithub.com/Automattic/mongoose/issues/10143) - docs(validation): add section about custom error messages [#​10140](https://togithub.com/Automattic/mongoose/issues/10140) - docs: make headers linkable via clicking [#​10156](https://togithub.com/Automattic/mongoose/issues/10156) - docs: broken link in document.js [#​10190](https://togithub.com/Automattic/mongoose/issues/10190) [joostdecock](https://togithub.com/joostdecock) - docs: make navbar responsive on legacy 2.x docs [#​10171](https://togithub.com/Automattic/mongoose/issues/10171) [ad99526](https://togithub.com/ad99526) ### [`v5.12.6`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#5126--2021-04-27) [Compare Source](https://togithub.com/Automattic/mongoose/compare/5.12.5...5.12.6) \=================== - fix(query): allow setting `writeConcern` schema option to work around MongoDB driver's `writeConcern` deprecation warning [#​10083](https://togithub.com/Automattic/mongoose/issues/10083) [#​10009](https://togithub.com/Automattic/mongoose/issues/10009) [IslandRhythms](https://togithub.com/IslandRhythms) - fix(populate): dedupe when virtual populate foreignField is an array to avoid duplicate docs in result [#​10117](https://togithub.com/Automattic/mongoose/issues/10117) - fix(populate): add `localField` filter to `$elemMatch` on virtual populate when custom `match` has a `$elemMatch` and `foreignField` is an array [#​10117](https://togithub.com/Automattic/mongoose/issues/10117) - fix(query): convert projection string values to numbers as a workaround for [#​10142](https://togithub.com/Automattic/mongoose/issues/10142) - fix(document): set version key filter on `save()` when using `optimisticConcurrency` if no changes in document [#​10128](https://togithub.com/Automattic/mongoose/issues/10128) [IslandRhythms](https://togithub.com/IslandRhythms) - fix(model): use `obj` as `context` in `Model.validate()` if `obj` is a document [#​10132](https://togithub.com/Automattic/mongoose/issues/10132) - fix(connection): avoid db events deprecation warning when using `useDb()` with `useUnifiedTopology` [#​8267](https://togithub.com/Automattic/mongoose/issues/8267) - fix: upgrade to sift@13.5.2 to work around transitive dev dependency security warning [#​10121](https://togithub.com/Automattic/mongoose/issues/10121) - fix(index.d.ts): allow any object as parameter to `create()` and `insertMany()` [#​10144](https://togithub.com/Automattic/mongoose/issues/10144) - fix(index.d.ts): clarify that `eachAsync()` callback receives a single doc rather than array of docs unless `batchSize` is set [#​10135](https://togithub.com/Automattic/mongoose/issues/10135) - fix(index.d.ts): clarify that return value from `validateSync()` is a ValidationError [#​10147](https://togithub.com/Automattic/mongoose/issues/10147) [michaln-q](https://togithub.com/michaln-q) - fix(index.d.ts): add generic type for Model constructor [#​10074](https://togithub.com/Automattic/mongoose/issues/10074) [Duchynko](https://togithub.com/Duchynko) - fix(index.d.ts): add parameter type in merge [#​10168](https://togithub.com/Automattic/mongoose/issues/10168) [yoonhoGo](https://togithub.com/yoonhoGo) ### [`v5.12.5`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#5125--2021-04-19) [Compare Source](https://togithub.com/Automattic/mongoose/compare/5.12.4...5.12.5) \=================== - fix(populate): handle populating underneath document array when document array property doesn't exist in db [#​10003](https://togithub.com/Automattic/mongoose/issues/10003) - fix(populate): clear out dangling pointers to populated docs so query cursor with populate() can garbage collect populated subdocs [#​9864](https://togithub.com/Automattic/mongoose/issues/9864) - fix(connection): pull correct `autoCreate` value from Mongoose global when creating new model before calling `connect()` [#​10091](https://togithub.com/Automattic/mongoose/issues/10091) - fix(populate): handle populating paths on documents with discriminator keys that point to non-existent discriminators [#​10082](https://togithub.com/Automattic/mongoose/issues/10082) - fix(index.d.ts): allow numbers as discriminator names [#​10115](https://togithub.com/Automattic/mongoose/issues/10115) - fix(index.d.ts): allow `type: Boolean` in Schema definitions [#​10085](https://togithub.com/Automattic/mongoose/issues/10085) - fix(index.d.ts): allow passing array of aggregation pipeline stages to `updateOne()` and `updateMany()` [#​10095](https://togithub.com/Automattic/mongoose/issues/10095) - fix(index.d.ts): support legacy 2nd param callback syntax for `deleteOne()`, `deleteMany()` [#​10122](https://togithub.com/Automattic/mongoose/issues/10122) - docs(mongoose): make `useCreateIndex` always `false` in docs [#​10033](https://togithub.com/Automattic/mongoose/issues/10033) - docs(schema): fix incorrect links from schema API docs [#​10111](https://togithub.com/Automattic/mongoose/issues/10111) ### [`v5.12.4`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#5124--2021-04-15) [Compare Source](https://togithub.com/Automattic/mongoose/compare/5.12.3...5.12.4) \=================== - fix: upgrade mongodb driver -> 3.6.6 [#​10079](https://togithub.com/Automattic/mongoose/issues/10079) - fix: store fields set with select:false at schema-level when saving a new document [#​10101](https://togithub.com/Automattic/mongoose/issues/10101) [ptantiku](https://togithub.com/ptantiku) - fix(populate): avoid turning already populated field to null when populating an existing lean document [#​10068](https://togithub.com/Automattic/mongoose/issues/10068) [IslandRhythms](https://togithub.com/IslandRhythms) - fix(populate): correctly populate lean subdocs with `_id` property [#​10069](https://togithub.com/Automattic/mongoose/issues/10069) - fix(model): insertedDocs may contain docs that weren't inserted [#​10098](https://togithub.com/Automattic/mongoose/issues/10098) [olnazx](https://togithub.com/olnazx) - fix(schemaType): make type Mixed cast error objects to pojos [#​10131](https://togithub.com/Automattic/mongoose/issues/10131) [AbdelrahmanHafez](https://togithub.com/AbdelrahmanHafez) - fix(populate): support populating embedded discriminators in nested arrays [#​9984](https://togithub.com/Automattic/mongoose/issues/9984) - fix(populate): handle populating map paths using trailing `.$*` [#​10123](https://togithub.com/Automattic/mongoose/issues/10123) - fix(populate): allow returning primitive from `transform()` function for single conventional populate [#​10064](https://togithub.com/Automattic/mongoose/issues/10064) - fix(index.d.ts): allow generic classes of `T` to use `T & Document` internally [#​10046](https://togithub.com/Automattic/mongoose/issues/10046) - fix(index.d.ts): allow `$pull` with `$` paths [#​10075](https://togithub.com/Automattic/mongoose/issues/10075) - fix(index.d.ts): use correct `Date` type for `$currentDate` [#​10058](https://togithub.com/Automattic/mongoose/issues/10058) - fix(index.d.ts): add missing asyncInterator to Query type def [#​10094](https://togithub.com/Automattic/mongoose/issues/10094) [borfig](https://togithub.com/borfig) - fix(index.d.ts): allow RHS of `$unset` properties to be any value [#​10066](https://togithub.com/Automattic/mongoose/issues/10066) - fix(index.d.ts): allow setting SchemaType `index` property to a string [#​10077](https://togithub.com/Automattic/mongoose/issues/10077) - refactor(index.d.ts): move discriminator() to common interface [#​10109](https://togithub.com/Automattic/mongoose/issues/10109) [LoneRifle](https://togithub.com/LoneRifle) ### [`v5.12.3`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#5123--2021-03-31) [Compare Source](https://togithub.com/Automattic/mongoose/compare/5.12.2...5.12.3) \=================== - fix: avoid setting schema-level collation on text indexes [#​10044](https://togithub.com/Automattic/mongoose/issues/10044) [IslandRhythms](https://togithub.com/IslandRhythms) - fix(query): add `writeConcern()` method to avoid writeConcern deprecation warning [#​10009](https://togithub.com/Automattic/mongoose/issues/10009) - fix(connection): use queueing instead of event emitter for `createCollection()` and other helpers to avoid event emitter warning [#​9778](https://togithub.com/Automattic/mongoose/issues/9778) - fix(connection): scope `Connection#id` to Mongoose instance so id always lines up with `mongoose.connections` index [#​10025](https://togithub.com/Automattic/mongoose/issues/10025) [IslandRhythms](https://togithub.com/IslandRhythms) - fix: avoid throwing in `promiseOrCallback()` if 3rd param isn't an EventEmitter [#​10055](https://togithub.com/Automattic/mongoose/issues/10055) [emrebass](https://togithub.com/emrebass) - fix(index.d.ts): add Model as 2nd generic param to `Model.discriminator()` [#​10054](https://togithub.com/Automattic/mongoose/issues/10054) [coro101](https://togithub.com/coro101) - fix(index.d.ts): add docs to `next()` callback for `pre('insertMany')` hooks [#​10078](https://togithub.com/Automattic/mongoose/issues/10078) [#​10072](https://togithub.com/Automattic/mongoose/issues/10072) [pezzu](https://togithub.com/pezzu) - fix(index.d.ts): add `transform` to PopulateOptions interface [#​10061](https://togithub.com/Automattic/mongoose/issues/10061) - fix(index.d.ts): add DocumentQuery type for backwards compatibility [#​10036](https://togithub.com/Automattic/mongoose/issues/10036) ### [`v5.12.2`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#5122--2021-03-22) [Compare Source](https://togithub.com/Automattic/mongoose/compare/5.12.1...5.12.2) \=================== - fix(QueryCursor): consistently execute `post('find')` hooks with an array of docs [#​10015](https://togithub.com/Automattic/mongoose/issues/10015) [#​9982](https://togithub.com/Automattic/mongoose/issues/9982) [IslandRhythms](https://togithub.com/IslandRhythms) - fix(schema): support setting `ref` as an option on an array SchemaType [#​10029](https://togithub.com/Automattic/mongoose/issues/10029) - fix(query): apply schema-level `select` option from array schematypes [#​10029](https://togithub.com/Automattic/mongoose/issues/10029) - fix(schema): avoid possible prototype pollution with `Schema()` constructor [#​10035](https://togithub.com/Automattic/mongoose/issues/10035) [zpbrent](https://togithub.com/zpbrent) - fix(model): make bulkWrite skip timestamps with timestamps: false [#​10050](https://togithub.com/Automattic/mongoose/issues/10050) [SoftwareSing](https://togithub.com/SoftwareSing) - fix(index.d.ts): make query methods return `QueryWithHelpers` so query helpers pass through chaining [#​10040](https://togithub.com/Automattic/mongoose/issues/10040) - fix(index.d.ts): add `upserted` array to `updateOne()`, `updateMany()`, `update()` result [#​10042](https://togithub.com/Automattic/mongoose/issues/10042) - fix(index.d.ts): add back `Aggregate#project()` types that were mistakenly removed in 5.12.0 [#​10043](https://togithub.com/Automattic/mongoose/issues/10043) - fix(index.d.ts): always allow setting `type` in Schema to a SchemaType class or a Schema instance [#​10030](https://togithub.com/Automattic/mongoose/issues/10030) - docs(transactions): introduce `session.withTransaction()` before `session.startTransaction()` because `withTransaction()` is the recommended approach [#​10008](https://togithub.com/Automattic/mongoose/issues/10008) - docs(mongoose+browser): fix broken links to info about `mongoose.Types` [#​10016](https://togithub.com/Automattic/mongoose/issues/10016) ### [`v5.12.1`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#51215--2021-06-25) [Compare Source](https://togithub.com/Automattic/mongoose/compare/5.12.0...5.12.1) \==================== - fix(index.d.ts): add extra TInstanceMethods generic param to `Schema` for cases when we can't infer from Model [#​10358](https://togithub.com/Automattic/mongoose/issues/10358) - fix(index.d.ts): added typings for near() in model aggregation [#​10373](https://togithub.com/Automattic/mongoose/issues/10373) [tbhaxor](https://togithub.com/tbhaxor) - fix(index.d.ts): correct function signature for `Query#cast()` [#​10388](https://togithub.com/Automattic/mongoose/issues/10388) [lkho](https://togithub.com/lkho) - docs(transactions): add import statement [#​10365](https://togithub.com/Automattic/mongoose/issues/10365) [JimLynchCodes](https://togithub.com/JimLynchCodes) - docs(schema): add missing `discriminatorKey` schema option [#​10386](https://togithub.com/Automattic/mongoose/issues/10386) [#​10376](https://togithub.com/Automattic/mongoose/issues/10376) [IslandRhythms](https://togithub.com/IslandRhythms) - docs(index.d.ts): fix typo [#​10363](https://togithub.com/Automattic/mongoose/issues/10363) [houssemchebeb](https://togithub.com/houssemchebeb) ### [`v5.12.0`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#5120--2021-03-11) [Compare Source](https://togithub.com/Automattic/mongoose/compare/5.11.20...5.12.0) \=================== - feat(populate): add `transform` option that Mongoose will call on every populated doc [#​3775](https://togithub.com/Automattic/mongoose/issues/3775) - feat(query): make `Query#pre()` and `Query#post()` public [#​9784](https://togithub.com/Automattic/mongoose/issues/9784) - feat(document): add `Document#getPopulatedDocs()` to return an array of all populated documents in a document [#​9702](https://togithub.com/Automattic/mongoose/issues/9702) [IslandRhythms](https://togithub.com/IslandRhythms) - feat(document): add `Document#getAllSubdocs()` to return an array of all single nested and array subdocuments [#​9764](https://togithub.com/Automattic/mongoose/issues/9764) [IslandRhythms](https://togithub.com/IslandRhythms) - feat(schema): allow `schema` as a schema path name [#​8798](https://togithub.com/Automattic/mongoose/issues/8798) [IslandRhythms](https://togithub.com/IslandRhythms) - feat(QueryCursor): Add batch processing for eachAsync [#​9902](https://togithub.com/Automattic/mongoose/issues/9902) [khaledosama999](https://togithub.com/khaledosama999) - feat(connection): add `noListener` option to help with use cases where you're using `useDb()` on every request [#​9961](https://togithub.com/Automattic/mongoose/issues/9961) - feat(index): emit 'createConnection' event when user calls `mongoose.createConnection()` [#​9985](https://togithub.com/Automattic/mongoose/issues/9985) - feat(connection+index): emit 'model' and 'deleteModel' events on connections when creating and deleting models [#​9983](https://togithub.com/Automattic/mongoose/issues/9983) - feat(query): allow passing `explain` option to `Model.exists()` [#​8098](https://togithub.com/Automattic/mongoose/issues/8098) [IslandRhythms](https://togithub.com/IslandRhythms) ### [`v5.11.20`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#51120--2021-03-11) [Compare Source](https://togithub.com/Automattic/mongoose/compare/5.11.19...5.11.20) \==================== - fix(query+populate): avoid unnecessarily projecting in subpath when populating a path that uses an elemMatch projection [#​9973](https://togithub.com/Automattic/mongoose/issues/9973) - fix(connection): avoid `db` events deprecation warning with 'close' events [#​10004](https://togithub.com/Automattic/mongoose/issues/10004) [#​9930](https://togithub.com/Automattic/mongoose/issues/9930) - fix(index.d.ts): make `$pull` more permissive to allow dotted paths [#​9993](https://togithub.com/Automattic/mongoose/issues/9993) ### [`v5.11.19`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#51119--2021-03-05) [Compare Source](https://togithub.com/Automattic/mongoose/compare/5.11.18...5.11.19) \==================== - fix(document): skip validating array elements that aren't modified when `validateModifiedOnly` is set [#​9963](https://togithub.com/Automattic/mongoose/issues/9963) - fix(timestamps): apply timestamps on `findOneAndReplace()` [#​9951](https://togithub.com/Automattic/mongoose/issues/9951) - fix(schema): correctly handle trailing array filters when looking up schema paths [#​9977](https://togithub.com/Automattic/mongoose/issues/9977) - fix(schema): load child class getter for virtuals instead of base class when using `loadClass()` [#​9975](https://togithub.com/Automattic/mongoose/issues/9975) - fix(index.d.ts): allow creating statics without passing generics to `Schema` constructor [#​9969](https://togithub.com/Automattic/mongoose/issues/9969) - fix(index.d.ts): add QueryHelpers generic to schema and model, make all query methods instead return QueryWithHelpers [#​9850](https://togithub.com/Automattic/mongoose/issues/9850) - fix(index.d.ts): support setting `type` to an array of schemas when using SchemaDefinitionType [#​9962](https://togithub.com/Automattic/mongoose/issues/9962) - fix(index.d.ts): add generic to plugin schema definition [#​9968](https://togithub.com/Automattic/mongoose/issues/9968) [emiljanitzek](https://togithub.com/emiljanitzek) - docs: small typo fix [#​9964](https://togithub.com/Automattic/mongoose/issues/9964) [KrishnaMoorthy12](https://togithub.com/KrishnaMoorthy12) ### [`v5.11.18`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#51118--2021-02-23) [Compare Source](https://togithub.com/Automattic/mongoose/compare/5.11.17...5.11.18) \==================== - fix(connection): set connection state to `disconnected` if connecting string failed to parse [#​9921](https://togithub.com/Automattic/mongoose/issues/9921) - fix(connection): remove `db` events deprecation warning if `useUnifiedTopology = true` [#​9930](https://togithub.com/Automattic/mongoose/issues/9930) - fix(connection): fix promise chaining for openUri [#​9960](https://togithub.com/Automattic/mongoose/issues/9960) [lantw44](https://togithub.com/lantw44) - fix(index.d.ts): add `PopulatedDoc` type to make it easier to define populated docs in interfaces [#​9818](https://togithub.com/Automattic/mongoose/issues/9818) - fix(index.d.ts): allow explicitly overwriting `toObject()` return type for backwards compatibility [#​9944](https://togithub.com/Automattic/mongoose/issues/9944) - fix(index.d.ts): correctly throw error when interface path type doesn't line up with schema path type [#​9958](https://togithub.com/Automattic/mongoose/issues/9958) [ShadiestGoat](https://togithub.com/ShadiestGoat) - fix(index.d.ts): remove `any` from `deleteX()` and `updateX()` query params and return values [#​9959](https://togithub.com/Automattic/mongoose/issues/9959) [btd](https://togithub.com/btd) - fix(index.d.ts): add non-generic versions of `Model.create()` for better autocomplete [#​9928](https://togithub.com/Automattic/mongoose/issues/9928) - docs: correctly handle multiple `>` in API descriptions [#​9940](https://togithub.com/Automattic/mongoose/issues/9940) ### [`v5.11.17`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#51117--2021-02-17) [Compare Source](https://togithub.com/Automattic/mongoose/compare/5.11.16...5.11.17) \==================== - fix(populate): handle `perDocumentLimit` when multiple documents reference the same populated doc [#​9906](https://togithub.com/Automattic/mongoose/issues/9906) - fix(document): handle directly setting embedded document array element with projection [#​9909](https://togithub.com/Automattic/mongoose/issues/9909) - fix(map): cast ObjectId to string inside of MongooseMap [#​9938](https://togithub.com/Automattic/mongoose/issues/9938) [HunterKohler](https://togithub.com/HunterKohler) - fix(model): use schema-level default collation for indexes if index doesn't have collation [#​9912](https://togithub.com/Automattic/mongoose/issues/9912) - fix(index.d.ts): make `SchemaTypeOptions#type` optional again to allow alternative typeKeys [#​9927](https://togithub.com/Automattic/mongoose/issues/9927) - fix(index.d.ts): support `{ type: String }` in schema definition when using SchemaDefinitionType generic [#​9911](https://togithub.com/Automattic/mongoose/issues/9911) - docs(populate+schematypes): document the `$*` syntax for populating every entry in a map [#​9907](https://togithub.com/Automattic/mongoose/issues/9907) - docs(connection): clarify that `Connection#transaction()` promise resolves to a command result [#​9919](https://togithub.com/Automattic/mongoose/issues/9919) ### [`v5.11.16`](https://togithub.com/Automattic/mongoose/blob/HEAD/CHANGELOG.md#51116--2021-02-12) [Compare Source](https://togithub.com/Automattic/mongoose/compare/5.11.15...5.11.16) \==================== - fix(document): skip applying array element setters when init-ing an array [#​9889](https://togithub.com/Automattic/mongoose/issues/9889) - fix: upgrade to mongodb driver 3.6.4 [#​9893](https://togithub.com/Automattic/mongoose/issues/9893) [jooeycheng](https://togithub.com/jooeycheng) - fix: avoid copying Object.prototype properties when cloning [#​9876](https://togithub.com/Automattic/mongoose/issues/9876) - fix(aggregate): automatically convert functions to strings when using `$function` operator [#​9897](https://togithub.com/Automattic/mongoose/issues/9897) - fix: call pre-remove hooks for subdocuments [#​9895](https://togithub.com/Automattic/mongoose/issues/9895) [#​9885](https://togithub.com/Automattic/mongoose/issues/9885) [IslandRhythms](https://togithub.com/Island

Configuration

📅 Schedule: Branch creation - "" (UTC), Automerge - At any time (no schedule defined).

🚦 Automerge: Enabled.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about these updates again.



This PR was generated by Mend Renovate. View the repository job log.