Skip to content

Commit

Permalink
Merge branch '8.0' into vkarpov15/gh-13794
Browse files Browse the repository at this point in the history
  • Loading branch information
vkarpov15 committed Sep 15, 2023
2 parents 1c1ba69 + 6d0b072 commit 7b5b354
Show file tree
Hide file tree
Showing 67 changed files with 525 additions and 464 deletions.
3 changes: 3 additions & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@ module.exports = {
'**/*.md/*.ts',
'**/*.md/*.typescript'
],
parserOptions: {
project: './tsconfig.json'
},
extends: [
'plugin:@typescript-eslint/eslint-recommended',
'plugin:@typescript-eslint/recommended'
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ jobs:
- name: Setup node
uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3.8.1
with:
node-version: 14
node-version: 18

- run: npm install

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/tsd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ jobs:
- name: Setup node
uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3.8.1
with:
node-version: 14
node-version: 18

- run: npm install

Expand Down
9 changes: 9 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
7.5.1 / 2023-09-11
==================
* fix: set default value for _update when no update object is provided and versionKey is set to false #13795 #13783 [MohOraby](https://github.com/MohOraby)
* fix: avoid unexpected error when accessing null array element on discriminator array when populating #13716 [ZSabakh](https://github.com/ZSabakh)
* types(schematypes): use DocType for instance method this #13822 #13800 [pshaddel](https://github.com/pshaddel)
* types: remove duplicated 'exists' method in Model interface in models.d.ts #13818 [ohzeno](https://github.com/ohzeno)
* docs(model): replace outdated docs on deprecated findOneAndUpdate() overwrite option #13821 #13715
* docs: add example of using `virtuals.pathsToSkip` option for `toObject()` and `toJSON()` #13798 [RobertHunter-Pluto](https://github.com/RobertHunter-Pluto)

7.5.0 / 2023-08-29
==================
* feat: use mongodb driver v5.18.1
Expand Down
6 changes: 3 additions & 3 deletions lib/browser.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

require('./driver').set(require('./drivers/browser'));

const DocumentProvider = require('./document_provider.js');
const DocumentProvider = require('./documentProvider.js');

DocumentProvider.setBrowser(true);

Expand Down Expand Up @@ -67,7 +67,7 @@ exports.Types = require('./types');
* @method VirtualType
* @api public
*/
exports.VirtualType = require('./virtualtype');
exports.VirtualType = require('./virtualType');

/**
* The various Mongoose SchemaTypes.
Expand All @@ -81,7 +81,7 @@ exports.VirtualType = require('./virtualtype');
* @api public
*/

exports.SchemaType = require('./schematype.js');
exports.SchemaType = require('./schemaType.js');

/**
* Internal utils
Expand Down
2 changes: 1 addition & 1 deletion lib/collection.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
*/

const EventEmitter = require('events').EventEmitter;
const STATES = require('./connectionstate');
const STATES = require('./connectionState');
const immediate = require('./helpers/immediate');

/**
Expand Down
2 changes: 1 addition & 1 deletion lib/connection.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
const ChangeStream = require('./cursor/ChangeStream');
const EventEmitter = require('events').EventEmitter;
const Schema = require('./schema');
const STATES = require('./connectionstate');
const STATES = require('./connectionState');
const MongooseError = require('./error/index');
const ServerSelectionError = require('./error/serverSelection');
const SyncIndexesError = require('./error/syncIndexes');
Expand Down
File renamed without changes.
2 changes: 1 addition & 1 deletion lib/cursor/QueryCursor.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
const MongooseError = require('../error/mongooseError');
const Readable = require('stream').Readable;
const eachAsync = require('../helpers/cursor/eachAsync');
const helpers = require('../queryhelpers');
const helpers = require('../queryHelpers');
const kareem = require('kareem');
const immediate = require('../helpers/immediate');
const util = require('util');
Expand Down
6 changes: 5 additions & 1 deletion lib/document.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ const inspect = require('util').inspect;
const internalToObjectOptions = require('./options').internalToObjectOptions;
const markArraySubdocsPopulated = require('./helpers/populate/markArraySubdocsPopulated');
const mpath = require('mpath');
const queryhelpers = require('./queryhelpers');
const queryhelpers = require('./queryHelpers');
const utils = require('./utils');
const isPromise = require('./helpers/isPromise');

Expand Down Expand Up @@ -1060,6 +1060,10 @@ Document.prototype.$set = function $set(path, val, type, options) {
[path, val] = [val, path];
}

if ('_id' in path && 'id' in path) {
delete path.id;
}

prefix = val ? val + '.' : '';
keys = getKeysInSchemaOrder(this.$__schema, path);

Expand Down
2 changes: 1 addition & 1 deletion lib/document_provider.js → lib/documentProvider.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ let isBrowser = false;
*
* @api private
*/
module.exports = function() {
module.exports = function documentProvider() {
if (isBrowser) {
return BrowserDocument;
}
Expand Down
2 changes: 1 addition & 1 deletion lib/drivers/node-mongodb-native/connection.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

const MongooseConnection = require('../../connection');
const MongooseError = require('../../error/index');
const STATES = require('../../connectionstate');
const STATES = require('../../connectionState');
const mongodb = require('mongodb');
const pkg = require('../../../package.json');
const processConnectionOptions = require('../../helpers/processConnectionOptions');
Expand Down
5 changes: 3 additions & 2 deletions lib/helpers/model/applyHooks.js
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ function applyHooks(model, schema, options) {
continue;
}

applyHooks(childModel, type.schema, options);
applyHooks(childModel, type.schema, { ...options, isChildSchema: true });
if (childModel.discriminators != null) {
const keys = Object.keys(childModel.discriminators);
for (const key of keys) {
Expand Down Expand Up @@ -104,7 +104,8 @@ function applyHooks(model, schema, options) {

objToDecorate.$__originalValidate = objToDecorate.$__originalValidate || objToDecorate.$__validate;

for (const method of ['save', 'validate', 'remove', 'deleteOne']) {
const internalMethodsToWrap = options && options.isChildSchema ? ['save', 'validate', 'deleteOne'] : ['save', 'validate'];
for (const method of internalMethodsToWrap) {
const toWrap = method === 'validate' ? '$__originalValidate' : `$__${method}`;
const wrapped = middleware.
createWrapper(method, objToDecorate[toWrap], null, kareemOptions);
Expand Down
2 changes: 1 addition & 1 deletion lib/helpers/populate/assignRawDocsToIdStructure.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ const utils = require('../../utils');

module.exports = assignRawDocsToIdStructure;

const kHasArray = Symbol('assignRawDocsToIdStructure.hasArray');
const kHasArray = Symbol('mongoose#assignRawDocsToIdStructure#hasArray');

/**
* Assign `vals` returned by mongo query to the `rawIds`
Expand Down
2 changes: 1 addition & 1 deletion lib/helpers/promiseOrCallback.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

const immediate = require('./immediate');

const emittedSymbol = Symbol('mongoose:emitted');
const emittedSymbol = Symbol('mongoose#emitted');

module.exports = function promiseOrCallback(callback, fn, ee, Promise) {
if (typeof callback === 'function') {
Expand Down
2 changes: 1 addition & 1 deletion lib/helpers/query/completeMany.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
'use strict';

const helpers = require('../../queryhelpers');
const helpers = require('../../queryHelpers');

module.exports = completeMany;

Expand Down
1 change: 0 additions & 1 deletion lib/helpers/query/validOps.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

module.exports = Object.freeze([
// Read
'count',
'countDocuments',
'distinct',
'estimatedDocumentCount',
Expand Down
8 changes: 4 additions & 4 deletions lib/helpers/symbols.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,16 @@ exports.arrayAtomicsSymbol = Symbol('mongoose#Array#_atomics');
exports.arrayParentSymbol = Symbol('mongoose#Array#_parent');
exports.arrayPathSymbol = Symbol('mongoose#Array#_path');
exports.arraySchemaSymbol = Symbol('mongoose#Array#_schema');
exports.documentArrayParent = Symbol('mongoose:documentArrayParent');
exports.documentArrayParent = Symbol('mongoose#documentArrayParent');
exports.documentIsSelected = Symbol('mongoose#Document#isSelected');
exports.documentIsModified = Symbol('mongoose#Document#isModified');
exports.documentModifiedPaths = Symbol('mongoose#Document#modifiedPaths');
exports.documentSchemaSymbol = Symbol('mongoose#Document#schema');
exports.getSymbol = Symbol('mongoose#Document#get');
exports.modelSymbol = Symbol('mongoose#Model');
exports.objectIdSymbol = Symbol('mongoose#ObjectId');
exports.populateModelSymbol = Symbol('mongoose.PopulateOptions#Model');
exports.populateModelSymbol = Symbol('mongoose#PopulateOptions#Model');
exports.schemaTypeSymbol = Symbol('mongoose#schemaType');
exports.sessionNewDocuments = Symbol('mongoose:ClientSession#newDocuments');
exports.sessionNewDocuments = Symbol('mongoose#ClientSession#newDocuments');
exports.scopeSymbol = Symbol('mongoose#Document#scope');
exports.validatorErrorSymbol = Symbol('mongoose:validatorError');
exports.validatorErrorSymbol = Symbol('mongoose#validatorError');
10 changes: 5 additions & 5 deletions lib/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,11 @@ const Document = require('./document');
const EventEmitter = require('events').EventEmitter;
const Kareem = require('kareem');
const Schema = require('./schema');
const SchemaType = require('./schematype');
const SchemaType = require('./schemaType');
const SchemaTypes = require('./schema/index');
const VirtualType = require('./virtualtype');
const STATES = require('./connectionstate');
const VALID_OPTIONS = require('./validoptions');
const VirtualType = require('./virtualType');
const STATES = require('./connectionState');
const VALID_OPTIONS = require('./validOptions');
const Types = require('./types');
const Query = require('./query');
const Model = require('./model');
Expand Down Expand Up @@ -981,7 +981,7 @@ Mongoose.prototype.Document = Document;
* @api public
*/

Mongoose.prototype.DocumentProvider = require('./document_provider');
Mongoose.prototype.DocumentProvider = require('./documentProvider');

/**
* The Mongoose ObjectId [SchemaType](https://mongoosejs.com/docs/schematypes.html). Used for
Expand Down
2 changes: 1 addition & 1 deletion lib/internal.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

'use strict';

const StateMachine = require('./statemachine');
const StateMachine = require('./stateMachine');
const ActiveRoster = StateMachine.ctor('require', 'modify', 'init', 'default', 'ignore');

module.exports = exports = InternalCache;
Expand Down

0 comments on commit 7b5b354

Please sign in to comment.