@nullix/zod-mongoose-studio 1.0.13 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.output/nitro.json +1 -1
- package/.output/public/_nuxt/builds/latest.json +1 -1
- package/.output/public/_nuxt/builds/meta/8b851c04-1848-472a-b5cd-0727aaaf90f4.json +1 -0
- package/.output/server/chunks/nitro/nitro.mjs +232 -232
- package/.output/server/chunks/routes/api/parse.post.mjs +54 -11
- package/.output/server/chunks/routes/api/parse.post.mjs.map +1 -1
- package/.output/server/node_modules/bson/lib/bson.cjs +157 -48
- package/.output/server/node_modules/bson/package.json +9 -11
- package/.output/server/node_modules/kareem/index.js +228 -343
- package/.output/server/node_modules/kareem/package.json +3 -3
- package/.output/server/node_modules/mongodb/lib/bson.js +27 -5
- package/.output/server/node_modules/mongodb/lib/bulk/common.js +7 -9
- package/.output/server/node_modules/mongodb/lib/change_stream.js +91 -39
- package/.output/server/node_modules/mongodb/lib/client-side-encryption/auto_encrypter.js +21 -14
- package/.output/server/node_modules/mongodb/lib/client-side-encryption/client_encryption.js +2 -5
- package/.output/server/node_modules/mongodb/lib/client-side-encryption/errors.js +3 -1
- package/.output/server/node_modules/mongodb/lib/client-side-encryption/mongocryptd_manager.js +1 -1
- package/.output/server/node_modules/mongodb/lib/client-side-encryption/state_machine.js +1 -0
- package/.output/server/node_modules/mongodb/lib/cmap/auth/aws4.js +161 -0
- package/.output/server/node_modules/mongodb/lib/cmap/auth/aws_temporary_credentials.js +11 -58
- package/.output/server/node_modules/mongodb/lib/cmap/auth/gssapi.js +4 -6
- package/.output/server/node_modules/mongodb/lib/cmap/auth/mongo_credentials.js +2 -16
- package/.output/server/node_modules/mongodb/lib/cmap/auth/mongodb_aws.js +14 -23
- package/.output/server/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/azure_machine_workflow.js +3 -3
- package/.output/server/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/gcp_machine_workflow.js +3 -3
- package/.output/server/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/k8s_machine_workflow.js +4 -3
- package/.output/server/node_modules/mongodb/lib/cmap/auth/mongodb_oidc/token_machine_workflow.js +4 -3
- package/.output/server/node_modules/mongodb/lib/cmap/auth/mongodb_oidc.js +4 -4
- package/.output/server/node_modules/mongodb/lib/cmap/auth/plain.js +1 -1
- package/.output/server/node_modules/mongodb/lib/cmap/auth/providers.js +0 -1
- package/.output/server/node_modules/mongodb/lib/cmap/auth/scram.js +53 -40
- package/.output/server/node_modules/mongodb/lib/cmap/commands.js +46 -39
- package/.output/server/node_modules/mongodb/lib/cmap/connect.js +35 -3
- package/.output/server/node_modules/mongodb/lib/cmap/connection.js +36 -32
- package/.output/server/node_modules/mongodb/lib/cmap/connection_pool.js +67 -67
- package/.output/server/node_modules/mongodb/lib/cmap/connection_pool_events.js +3 -3
- package/.output/server/node_modules/mongodb/lib/cmap/errors.js +1 -1
- package/.output/server/node_modules/mongodb/lib/cmap/handshake/client_metadata.js +15 -13
- package/.output/server/node_modules/mongodb/lib/cmap/metrics.js +3 -3
- package/.output/server/node_modules/mongodb/lib/cmap/wire_protocol/compression.js +26 -10
- package/.output/server/node_modules/mongodb/lib/cmap/wire_protocol/constants.js +3 -1
- package/.output/server/node_modules/mongodb/lib/cmap/wire_protocol/on_data.js +0 -1
- package/.output/server/node_modules/mongodb/lib/cmap/wire_protocol/on_demand/document.js +9 -9
- package/.output/server/node_modules/mongodb/lib/cmap/wire_protocol/responses.js +2 -2
- package/.output/server/node_modules/mongodb/lib/collection.js +1 -1
- package/.output/server/node_modules/mongodb/lib/connection_string.js +30 -15
- package/.output/server/node_modules/mongodb/lib/cursor/abstract_cursor.js +17 -34
- package/.output/server/node_modules/mongodb/lib/cursor/change_stream_cursor.js +2 -2
- package/.output/server/node_modules/mongodb/lib/cursor/find_cursor.js +37 -26
- package/.output/server/node_modules/mongodb/lib/cursor/run_command_cursor.js +1 -1
- package/.output/server/node_modules/mongodb/lib/db.js +6 -7
- package/.output/server/node_modules/mongodb/lib/deps.js +0 -13
- package/.output/server/node_modules/mongodb/lib/error.js +7 -10
- package/.output/server/node_modules/mongodb/lib/gridfs/download.js +7 -6
- package/.output/server/node_modules/mongodb/lib/gridfs/index.js +9 -9
- package/.output/server/node_modules/mongodb/lib/gridfs/upload.js +17 -23
- package/.output/server/node_modules/mongodb/lib/index.js +2 -4
- package/.output/server/node_modules/mongodb/lib/mongo_client.js +58 -67
- package/.output/server/node_modules/mongodb/lib/mongo_client_auth_providers.js +0 -6
- package/.output/server/node_modules/mongodb/lib/mongo_logger.js +11 -5
- package/.output/server/node_modules/mongodb/lib/mongo_types.js +1 -2
- package/.output/server/node_modules/mongodb/lib/operations/aggregate.js +0 -3
- package/.output/server/node_modules/mongodb/lib/operations/create_collection.js +0 -1
- package/.output/server/node_modules/mongodb/lib/operations/drop.js +8 -9
- package/.output/server/node_modules/mongodb/lib/operations/end_sessions.js +34 -0
- package/.output/server/node_modules/mongodb/lib/operations/execute_operation.js +121 -45
- package/.output/server/node_modules/mongodb/lib/operations/operation.js +1 -0
- package/.output/server/node_modules/mongodb/lib/read_preference.js +10 -14
- package/.output/server/node_modules/mongodb/lib/runtime_adapters.js +32 -0
- package/.output/server/node_modules/mongodb/lib/sdam/monitor.js +8 -8
- package/.output/server/node_modules/mongodb/lib/sdam/server.js +55 -43
- package/.output/server/node_modules/mongodb/lib/sdam/server_description.js +1 -1
- package/.output/server/node_modules/mongodb/lib/sdam/server_selection.js +135 -72
- package/.output/server/node_modules/mongodb/lib/sdam/srv_polling.js +3 -3
- package/.output/server/node_modules/mongodb/lib/sdam/topology.js +37 -77
- package/.output/server/node_modules/mongodb/lib/sdam/topology_description.js +1 -1
- package/.output/server/node_modules/mongodb/lib/sessions.js +150 -40
- package/.output/server/node_modules/mongodb/lib/transactions.js +2 -13
- package/.output/server/node_modules/mongodb/lib/utils.js +42 -90
- package/.output/server/node_modules/mongodb/package.json +49 -45
- package/.output/server/node_modules/mongodb-connection-string-url/lib/index.js +45 -19
- package/.output/server/node_modules/mongodb-connection-string-url/lib/redact.js +30 -19
- package/.output/server/node_modules/mongodb-connection-string-url/package.json +25 -16
- package/.output/server/node_modules/mongoose/lib/aggregate.js +108 -127
- package/.output/server/node_modules/mongoose/lib/cast/bigint.js +3 -3
- package/.output/server/node_modules/mongoose/lib/cast/boolean.js +3 -3
- package/.output/server/node_modules/mongoose/lib/cast/double.js +4 -4
- package/.output/server/node_modules/mongoose/lib/cast/int32.js +2 -2
- package/.output/server/node_modules/mongoose/lib/cast/number.js +6 -6
- package/.output/server/node_modules/mongoose/lib/cast/string.js +3 -3
- package/.output/server/node_modules/mongoose/lib/cast/uuid.js +5 -48
- package/.output/server/node_modules/mongoose/lib/cast.js +16 -24
- package/.output/server/node_modules/mongoose/lib/collection.js +6 -6
- package/.output/server/node_modules/mongoose/lib/connection.js +108 -105
- package/.output/server/node_modules/mongoose/lib/cursor/aggregationCursor.js +23 -33
- package/.output/server/node_modules/mongoose/lib/cursor/changeStream.js +60 -40
- package/.output/server/node_modules/mongoose/lib/cursor/queryCursor.js +21 -25
- package/.output/server/node_modules/mongoose/lib/document.js +712 -531
- package/.output/server/node_modules/mongoose/lib/drivers/node-mongodb-native/collection.js +85 -130
- package/.output/server/node_modules/mongoose/lib/drivers/node-mongodb-native/connection.js +32 -41
- package/.output/server/node_modules/mongoose/lib/error/cast.js +21 -12
- package/.output/server/node_modules/mongoose/lib/error/createCollectionsError.js +2 -2
- package/.output/server/node_modules/mongoose/lib/error/divergentArray.js +1 -1
- package/.output/server/node_modules/mongoose/lib/error/eachAsyncMultiError.js +1 -1
- package/.output/server/node_modules/mongoose/lib/error/index.js +3 -3
- package/.output/server/node_modules/mongoose/lib/error/invalidSchemaOption.js +1 -1
- package/.output/server/node_modules/mongoose/lib/error/messages.js +1 -0
- package/.output/server/node_modules/mongoose/lib/error/missingSchema.js +1 -1
- package/.output/server/node_modules/mongoose/lib/error/objectParameter.js +4 -5
- package/.output/server/node_modules/mongoose/lib/error/overwriteModel.js +1 -1
- package/.output/server/node_modules/mongoose/lib/error/setOptionError.js +3 -3
- package/.output/server/node_modules/mongoose/lib/error/strict.js +3 -3
- package/.output/server/node_modules/mongoose/lib/error/strictPopulate.js +2 -2
- package/.output/server/node_modules/mongoose/lib/error/syncIndexes.js +2 -2
- package/.output/server/node_modules/mongoose/lib/error/validation.js +2 -10
- package/.output/server/node_modules/mongoose/lib/error/validator.js +1 -1
- package/.output/server/node_modules/mongoose/lib/error/version.js +2 -2
- package/.output/server/node_modules/mongoose/lib/helpers/aggregate/prepareDiscriminatorPipeline.js +4 -4
- package/.output/server/node_modules/mongoose/lib/helpers/buildMiddlewareFilter.js +24 -0
- package/.output/server/node_modules/mongoose/lib/helpers/clone.js +35 -18
- package/.output/server/node_modules/mongoose/lib/helpers/common.js +5 -5
- package/.output/server/node_modules/mongoose/lib/helpers/cursor/eachAsync.js +4 -4
- package/.output/server/node_modules/mongoose/lib/helpers/discriminator/getConstructor.js +1 -1
- package/.output/server/node_modules/mongoose/lib/helpers/discriminator/getDiscriminatorByValue.js +1 -1
- package/.output/server/node_modules/mongoose/lib/helpers/discriminator/getSchemaDiscriminatorByValue.js +1 -1
- package/.output/server/node_modules/mongoose/lib/helpers/discriminator/mergeDiscriminatorSchema.js +10 -5
- package/.output/server/node_modules/mongoose/lib/helpers/document/applyDefaults.js +1 -1
- package/.output/server/node_modules/mongoose/lib/helpers/document/applyTimestamps.js +11 -10
- package/.output/server/node_modules/mongoose/lib/helpers/document/applyVirtuals.js +10 -9
- package/.output/server/node_modules/mongoose/lib/helpers/document/cleanModifiedSubpaths.js +1 -1
- package/.output/server/node_modules/mongoose/lib/helpers/document/compile.js +17 -14
- package/.output/server/node_modules/mongoose/lib/helpers/document/getDeepestSubdocumentForPath.js +3 -3
- package/.output/server/node_modules/mongoose/lib/helpers/document/getEmbeddedDiscriminatorPath.js +2 -2
- package/.output/server/node_modules/mongoose/lib/helpers/document/isInPathsToSave.js +24 -0
- package/.output/server/node_modules/mongoose/lib/helpers/get.js +1 -1
- package/.output/server/node_modules/mongoose/lib/helpers/indexes/decorateDiscriminatorIndexOptions.js +1 -1
- package/.output/server/node_modules/mongoose/lib/helpers/indexes/getRelatedIndexes.js +3 -3
- package/.output/server/node_modules/mongoose/lib/helpers/indexes/isIndexEqual.js +3 -4
- package/.output/server/node_modules/mongoose/lib/helpers/indexes/isIndexSpecEqual.js +3 -3
- package/.output/server/node_modules/mongoose/lib/helpers/isBsonType.js +1 -1
- package/.output/server/node_modules/mongoose/lib/helpers/isMongooseObject.js +1 -1
- package/.output/server/node_modules/mongoose/lib/helpers/isObject.js +2 -2
- package/.output/server/node_modules/mongoose/lib/helpers/isSimpleValidator.js +2 -2
- package/.output/server/node_modules/mongoose/lib/helpers/minimize.js +2 -2
- package/.output/server/node_modules/mongoose/lib/helpers/model/applyDefaultsToPOJO.js +2 -2
- package/.output/server/node_modules/mongoose/lib/helpers/model/applyHooks.js +55 -54
- package/.output/server/node_modules/mongoose/lib/helpers/model/applyMethods.js +2 -2
- package/.output/server/node_modules/mongoose/lib/helpers/model/applyStaticHooks.js +1 -48
- package/.output/server/node_modules/mongoose/lib/helpers/model/castBulkWrite.js +8 -12
- package/.output/server/node_modules/mongoose/lib/helpers/model/discriminator.js +1 -1
- package/.output/server/node_modules/mongoose/lib/helpers/parallelLimit.js +18 -36
- package/.output/server/node_modules/mongoose/lib/helpers/pluralize.js +4 -4
- package/.output/server/node_modules/mongoose/lib/helpers/populate/assignRawDocsToIdStructure.js +4 -11
- package/.output/server/node_modules/mongoose/lib/helpers/populate/assignVals.js +10 -10
- package/.output/server/node_modules/mongoose/lib/helpers/populate/createPopulateQueryFilter.js +3 -3
- package/.output/server/node_modules/mongoose/lib/helpers/populate/getModelsMapForPopulate.js +197 -69
- package/.output/server/node_modules/mongoose/lib/helpers/populate/getSchemaTypes.js +15 -15
- package/.output/server/node_modules/mongoose/lib/helpers/populate/markArraySubdocsPopulated.js +1 -1
- package/.output/server/node_modules/mongoose/lib/helpers/populate/modelNamesFromRefPath.js +10 -2
- package/.output/server/node_modules/mongoose/lib/helpers/populate/setPopulatedVirtualValue.js +5 -5
- package/.output/server/node_modules/mongoose/lib/helpers/printJestWarning.js +1 -1
- package/.output/server/node_modules/mongoose/lib/helpers/processConnectionOptions.js +1 -1
- package/.output/server/node_modules/mongoose/lib/helpers/projection/hasIncludedChildren.js +1 -1
- package/.output/server/node_modules/mongoose/lib/helpers/projection/isPathExcluded.js +3 -3
- package/.output/server/node_modules/mongoose/lib/helpers/projection/isSubpath.js +1 -1
- package/.output/server/node_modules/mongoose/lib/helpers/projection/parseProjection.js +9 -4
- package/.output/server/node_modules/mongoose/lib/helpers/query/cast$expr.js +8 -10
- package/.output/server/node_modules/mongoose/lib/helpers/query/castFilterPath.js +1 -1
- package/.output/server/node_modules/mongoose/lib/helpers/query/castUpdate.js +44 -38
- package/.output/server/node_modules/mongoose/lib/helpers/query/getEmbeddedDiscriminatorPath.js +8 -8
- package/.output/server/node_modules/mongoose/lib/helpers/query/handleImmutable.js +8 -8
- package/.output/server/node_modules/mongoose/lib/helpers/schema/applyPlugins.js +2 -2
- package/.output/server/node_modules/mongoose/lib/helpers/schema/applyReadConcern.js +1 -1
- package/.output/server/node_modules/mongoose/lib/helpers/schema/applyWriteConcern.js +4 -2
- package/.output/server/node_modules/mongoose/lib/helpers/schema/getIndexes.js +5 -11
- package/.output/server/node_modules/mongoose/lib/helpers/schema/getSubdocumentStrictValue.js +2 -2
- package/.output/server/node_modules/mongoose/lib/helpers/schema/handleIdOption.js +1 -1
- package/.output/server/node_modules/mongoose/lib/helpers/schema/idGetter.js +1 -1
- package/.output/server/node_modules/mongoose/lib/helpers/schematype/handleImmutable.js +1 -1
- package/.output/server/node_modules/mongoose/lib/helpers/setDefaultsOnInsert.js +26 -13
- package/.output/server/node_modules/mongoose/lib/helpers/timestamps/setDocumentTimestamps.js +2 -2
- package/.output/server/node_modules/mongoose/lib/helpers/timestamps/setupTimestamps.js +60 -38
- package/.output/server/node_modules/mongoose/lib/helpers/update/applyTimestampsToUpdate.js +13 -10
- package/.output/server/node_modules/mongoose/lib/helpers/update/castArrayFilters.js +4 -4
- package/.output/server/node_modules/mongoose/lib/helpers/update/decorateUpdateWithVersionKey.js +1 -1
- package/.output/server/node_modules/mongoose/lib/helpers/update/modifiedPaths.js +2 -2
- package/.output/server/node_modules/mongoose/lib/helpers/update/removeUnusedArrayFilters.js +7 -2
- package/.output/server/node_modules/mongoose/lib/helpers/updateValidators.js +58 -119
- package/.output/server/node_modules/mongoose/lib/model.js +940 -946
- package/.output/server/node_modules/mongoose/lib/mongoose.js +131 -79
- package/.output/server/node_modules/mongoose/lib/options/schemaArrayOptions.js +2 -2
- package/.output/server/node_modules/mongoose/lib/options/schemaBufferOptions.js +1 -1
- package/.output/server/node_modules/mongoose/lib/options/schemaDocumentArrayOptions.js +23 -0
- package/.output/server/node_modules/mongoose/lib/options/schemaNumberOptions.js +3 -3
- package/.output/server/node_modules/mongoose/lib/options/schemaObjectIdOptions.js +2 -2
- package/.output/server/node_modules/mongoose/lib/options/schemaStringOptions.js +6 -6
- package/.output/server/node_modules/mongoose/lib/options/schemaSubdocumentOptions.js +23 -0
- package/.output/server/node_modules/mongoose/lib/options/schemaTypeOptions.js +27 -13
- package/.output/server/node_modules/mongoose/lib/options/virtualOptions.js +12 -12
- package/.output/server/node_modules/mongoose/lib/plugins/index.js +0 -1
- package/.output/server/node_modules/mongoose/lib/plugins/saveSubdocs.js +84 -92
- package/.output/server/node_modules/mongoose/lib/plugins/sharding.js +33 -15
- package/.output/server/node_modules/mongoose/lib/plugins/trackTransaction.js +29 -25
- package/.output/server/node_modules/mongoose/lib/query.js +700 -548
- package/.output/server/node_modules/mongoose/lib/queryHelpers.js +34 -32
- package/.output/server/node_modules/mongoose/lib/schema/array.js +69 -113
- package/.output/server/node_modules/mongoose/lib/schema/bigint.js +18 -20
- package/.output/server/node_modules/mongoose/lib/schema/boolean.js +20 -22
- package/.output/server/node_modules/mongoose/lib/schema/buffer.js +23 -25
- package/.output/server/node_modules/mongoose/lib/schema/date.js +19 -21
- package/.output/server/node_modules/mongoose/lib/schema/decimal128.js +16 -18
- package/.output/server/node_modules/mongoose/lib/schema/documentArray.js +94 -131
- package/.output/server/node_modules/mongoose/lib/schema/documentArrayElement.js +50 -16
- package/.output/server/node_modules/mongoose/lib/schema/double.js +16 -18
- package/.output/server/node_modules/mongoose/lib/schema/index.js +1 -0
- package/.output/server/node_modules/mongoose/lib/schema/int32.js +17 -19
- package/.output/server/node_modules/mongoose/lib/schema/map.js +17 -24
- package/.output/server/node_modules/mongoose/lib/schema/mixed.js +14 -14
- package/.output/server/node_modules/mongoose/lib/schema/number.js +38 -28
- package/.output/server/node_modules/mongoose/lib/schema/objectId.js +18 -20
- package/.output/server/node_modules/mongoose/lib/schema/operators/exists.js +1 -1
- package/.output/server/node_modules/mongoose/lib/schema/operators/geospatial.js +1 -1
- package/.output/server/node_modules/mongoose/lib/schema/operators/text.js +4 -4
- package/.output/server/node_modules/mongoose/lib/schema/string.js +42 -27
- package/.output/server/node_modules/mongoose/lib/schema/subdocument.js +47 -58
- package/.output/server/node_modules/mongoose/lib/schema/union.js +54 -4
- package/.output/server/node_modules/mongoose/lib/schema/uuid.js +17 -40
- package/.output/server/node_modules/mongoose/lib/schema.js +235 -176
- package/.output/server/node_modules/mongoose/lib/schemaType.js +227 -158
- package/.output/server/node_modules/mongoose/lib/stateMachine.js +5 -8
- package/.output/server/node_modules/mongoose/lib/types/array/index.js +5 -5
- package/.output/server/node_modules/mongoose/lib/types/array/methods/index.js +27 -28
- package/.output/server/node_modules/mongoose/lib/types/arraySubdocument.js +11 -11
- package/.output/server/node_modules/mongoose/lib/types/buffer.js +15 -15
- package/.output/server/node_modules/mongoose/lib/types/decimal128.js +1 -1
- package/.output/server/node_modules/mongoose/lib/types/documentArray/index.js +4 -4
- package/.output/server/node_modules/mongoose/lib/types/documentArray/methods/index.js +15 -13
- package/.output/server/node_modules/mongoose/lib/types/double.js +1 -1
- package/.output/server/node_modules/mongoose/lib/types/map.js +20 -71
- package/.output/server/node_modules/mongoose/lib/types/objectid.js +1 -1
- package/.output/server/node_modules/mongoose/lib/types/subdocument.js +32 -81
- package/.output/server/node_modules/mongoose/lib/types/uuid.js +1 -1
- package/.output/server/node_modules/mongoose/lib/utils.js +91 -70
- package/.output/server/node_modules/mongoose/lib/validOptions.js +4 -3
- package/.output/server/node_modules/mongoose/lib/virtualType.js +18 -18
- package/.output/server/node_modules/mongoose/package.json +46 -63
- package/.output/server/node_modules/mquery/lib/collection/collection.js +3 -1
- package/.output/server/node_modules/mquery/lib/collection/node.js +17 -3
- package/.output/server/node_modules/mquery/lib/mquery.js +136 -93
- package/.output/server/node_modules/mquery/lib/permissions.js +21 -6
- package/.output/server/node_modules/mquery/package.json +4 -7
- package/.output/server/package.json +7 -9
- package/package.json +3 -3
- package/.output/public/_nuxt/builds/meta/0d6006db-fbb0-4297-85cf-bf92ceafcb79.json +0 -1
- package/.output/server/node_modules/debug/package.json +0 -64
- package/.output/server/node_modules/debug/src/browser.js +0 -272
- package/.output/server/node_modules/debug/src/common.js +0 -292
- package/.output/server/node_modules/debug/src/index.js +0 -10
- package/.output/server/node_modules/debug/src/node.js +0 -263
- package/.output/server/node_modules/mongodb/lib/client-side-encryption/crypto_callbacks.js +0 -81
- package/.output/server/node_modules/mongodb/lib/resource_management.js +0 -58
- package/.output/server/node_modules/mongoose/lib/browserDocument.js +0 -101
- package/.output/server/node_modules/mongoose/lib/documentProvider.js +0 -30
- package/.output/server/node_modules/mongoose/lib/helpers/createJSONSchemaTypeDefinition.js +0 -24
- package/.output/server/node_modules/mongoose/lib/helpers/promiseOrCallback.js +0 -54
- package/.output/server/node_modules/mongoose/lib/plugins/validateBeforeSave.js +0 -51
- package/.output/server/node_modules/supports-color/index.js +0 -202
- package/.output/server/node_modules/supports-color/package.json +0 -64
|
@@ -63,34 +63,24 @@ util.inherits(AggregationCursor, Readable);
|
|
|
63
63
|
|
|
64
64
|
function _init(model, c, agg) {
|
|
65
65
|
if (!model.collection.buffer) {
|
|
66
|
-
model.hooks.execPre('aggregate', agg,
|
|
67
|
-
if (err != null) {
|
|
68
|
-
_handlePreHookError(c, err);
|
|
69
|
-
return;
|
|
70
|
-
}
|
|
71
|
-
if (typeof agg.options?.cursor?.transform === 'function') {
|
|
72
|
-
c._transforms.push(agg.options.cursor.transform);
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
c.cursor = model.collection.aggregate(agg._pipeline, agg.options || {});
|
|
76
|
-
c.emit('cursor', c.cursor);
|
|
77
|
-
});
|
|
66
|
+
model.hooks.execPre('aggregate', agg).then(() => onPreComplete(null), err => onPreComplete(err));
|
|
78
67
|
} else {
|
|
79
68
|
model.collection.emitter.once('queue', function() {
|
|
80
|
-
model.hooks.execPre('aggregate', agg,
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
return;
|
|
84
|
-
}
|
|
69
|
+
model.hooks.execPre('aggregate', agg).then(() => onPreComplete(null), err => onPreComplete(err));
|
|
70
|
+
});
|
|
71
|
+
}
|
|
85
72
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
73
|
+
function onPreComplete(err) {
|
|
74
|
+
if (err != null) {
|
|
75
|
+
_handlePreHookError(c, err);
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
if (typeof agg.options?.cursor?.transform === 'function') {
|
|
79
|
+
c._transforms.push(agg.options.cursor.transform);
|
|
80
|
+
}
|
|
89
81
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
});
|
|
93
|
-
});
|
|
82
|
+
c.cursor = model.collection.aggregate(agg._pipeline, agg.options || {});
|
|
83
|
+
c.emit('cursor', c.cursor);
|
|
94
84
|
}
|
|
95
85
|
}
|
|
96
86
|
|
|
@@ -227,7 +217,7 @@ AggregationCursor.prototype._markError = function(error) {
|
|
|
227
217
|
* @api public
|
|
228
218
|
* @method close
|
|
229
219
|
* @emits "close"
|
|
230
|
-
* @see AggregationCursor.close https://mongodb.github.io/node-mongodb-native/
|
|
220
|
+
* @see AggregationCursor.close https://mongodb.github.io/node-mongodb-native/7.0/classes/AggregationCursor.html#close
|
|
231
221
|
*/
|
|
232
222
|
|
|
233
223
|
AggregationCursor.prototype.close = async function close() {
|
|
@@ -303,10 +293,10 @@ AggregationCursor.prototype.next = async function next() {
|
|
|
303
293
|
* Returns a promise that resolves when done.
|
|
304
294
|
*
|
|
305
295
|
* @param {Function} fn
|
|
306
|
-
* @param {
|
|
307
|
-
* @param {
|
|
308
|
-
* @param {
|
|
309
|
-
* @param {
|
|
296
|
+
* @param {object} [options]
|
|
297
|
+
* @param {number} [options.parallel] the number of promises to execute in parallel. Defaults to 1.
|
|
298
|
+
* @param {number} [options.batchSize=null] if set, Mongoose will call `fn` with an array of at most `batchSize` documents, instead of a single document
|
|
299
|
+
* @param {boolean} [options.continueOnError=false] if true, `eachAsync()` iterates through all docs even if `fn` throws an error. If false, `eachAsync()` throws an error immediately if the given function `fn()` throws an error.
|
|
310
300
|
* @return {Promise}
|
|
311
301
|
* @api public
|
|
312
302
|
* @method eachAsync
|
|
@@ -396,11 +386,11 @@ function _transformForAsyncIterator(doc) {
|
|
|
396
386
|
}
|
|
397
387
|
|
|
398
388
|
/**
|
|
399
|
-
* Adds a [cursor flag](https://mongodb.github.io/node-mongodb-native/
|
|
389
|
+
* Adds a [cursor flag](https://mongodb.github.io/node-mongodb-native/7.0/classes/AggregationCursor.html#addCursorFlag).
|
|
400
390
|
* Useful for setting the `noCursorTimeout` and `tailable` flags.
|
|
401
391
|
*
|
|
402
|
-
* @param {
|
|
403
|
-
* @param {
|
|
392
|
+
* @param {'tailable'|'oplogReplay'|'noCursorTimeout'|'awaitData'|'partial'} flag
|
|
393
|
+
* @param {boolean} value
|
|
404
394
|
* @return {AggregationCursor} this
|
|
405
395
|
* @api public
|
|
406
396
|
* @method addCursorFlag
|
|
@@ -430,7 +420,7 @@ function _waitForCursor(ctx, cb) {
|
|
|
430
420
|
/**
|
|
431
421
|
* Get the next doc from the underlying cursor and mongooseify it
|
|
432
422
|
* (populate, etc.)
|
|
433
|
-
* @param {
|
|
423
|
+
* @param {any} ctx
|
|
434
424
|
* @param {Function} cb
|
|
435
425
|
* @api private
|
|
436
426
|
*/
|
|
@@ -18,7 +18,7 @@ const driverChangeStreamEvents = ['close', 'change', 'end', 'error', 'resumeToke
|
|
|
18
18
|
*/
|
|
19
19
|
|
|
20
20
|
class ChangeStream extends EventEmitter {
|
|
21
|
-
constructor(
|
|
21
|
+
constructor(changeStreamPromise, pipeline, options) {
|
|
22
22
|
super();
|
|
23
23
|
|
|
24
24
|
this.driverChangeStream = null;
|
|
@@ -28,43 +28,29 @@ class ChangeStream extends EventEmitter {
|
|
|
28
28
|
this.options = options;
|
|
29
29
|
this.errored = false;
|
|
30
30
|
|
|
31
|
-
if (options
|
|
31
|
+
if (options?.hydrate && !options.model) {
|
|
32
32
|
throw new Error(
|
|
33
33
|
'Cannot create change stream with `hydrate: true` ' +
|
|
34
34
|
'unless calling `Model.watch()`'
|
|
35
35
|
);
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
this.driverChangeStream = driverChangeStream;
|
|
50
|
-
this.emit('ready');
|
|
51
|
-
resolve();
|
|
52
|
-
});
|
|
53
|
-
} catch (err) {
|
|
54
|
-
syncError = err;
|
|
38
|
+
this.$driverChangeStreamPromise = changeStreamPromise.then(
|
|
39
|
+
driverChangeStream => {
|
|
40
|
+
this.driverChangeStream = driverChangeStream;
|
|
41
|
+
// Use setImmediate so the stream pump (_read) has a chance to run and
|
|
42
|
+
// the driver cursor initializes before 'ready' resolves. Without this,
|
|
43
|
+
// changes emitted immediately after 'ready' can be missed because the
|
|
44
|
+
// underlying cursor hasn't sent its initial aggregate to MongoDB yet.
|
|
45
|
+
setImmediate(() => this.emit('ready'));
|
|
46
|
+
return this;
|
|
47
|
+
},
|
|
48
|
+
err => {
|
|
55
49
|
this.errored = true;
|
|
56
50
|
this.emit('error', err);
|
|
57
|
-
|
|
51
|
+
throw err;
|
|
58
52
|
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
// Because a ChangeStream is an event emitter, there's no way to register an 'error' handler
|
|
62
|
-
// that catches errors which occur in the constructor, unless we force sync errors into async
|
|
63
|
-
// errors with setImmediate(). For cleaner stack trace, we just immediately throw any synchronous
|
|
64
|
-
// errors that occurred with changeStreamThunk().
|
|
65
|
-
if (syncError != null) {
|
|
66
|
-
throw syncError;
|
|
67
|
-
}
|
|
53
|
+
);
|
|
68
54
|
}
|
|
69
55
|
|
|
70
56
|
_bindEvents() {
|
|
@@ -83,7 +69,7 @@ class ChangeStream extends EventEmitter {
|
|
|
83
69
|
|
|
84
70
|
driverChangeStreamEvents.forEach(ev => {
|
|
85
71
|
this.driverChangeStream.on(ev, data => {
|
|
86
|
-
if (data
|
|
72
|
+
if (data?.fullDocument != null && this.options?.hydrate) {
|
|
87
73
|
data.fullDocument = this.options.model.hydrate(data.fullDocument);
|
|
88
74
|
}
|
|
89
75
|
this.emit(ev, data);
|
|
@@ -102,7 +88,7 @@ class ChangeStream extends EventEmitter {
|
|
|
102
88
|
|
|
103
89
|
driverChangeStreamEvents.forEach(ev => {
|
|
104
90
|
this.driverChangeStream.on(ev, data => {
|
|
105
|
-
if (data
|
|
91
|
+
if (data?.fullDocument != null && this.options?.hydrate) {
|
|
106
92
|
data.fullDocument = this.options.model.hydrate(data.fullDocument);
|
|
107
93
|
}
|
|
108
94
|
this.emit(ev, data);
|
|
@@ -114,14 +100,27 @@ class ChangeStream extends EventEmitter {
|
|
|
114
100
|
if (this.errored) {
|
|
115
101
|
throw new MongooseError('Cannot call hasNext() on errored ChangeStream');
|
|
116
102
|
}
|
|
117
|
-
|
|
103
|
+
|
|
104
|
+
if (this.driverChangeStream != null) {
|
|
105
|
+
return this.driverChangeStream.hasNext(cb);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
return this.$driverChangeStreamPromise.then(
|
|
109
|
+
() => this.driverChangeStream.hasNext(cb),
|
|
110
|
+
err => {
|
|
111
|
+
if (cb != null) {
|
|
112
|
+
return cb(err);
|
|
113
|
+
}
|
|
114
|
+
throw err;
|
|
115
|
+
}
|
|
116
|
+
);
|
|
118
117
|
}
|
|
119
118
|
|
|
120
119
|
next(cb) {
|
|
121
120
|
if (this.errored) {
|
|
122
121
|
throw new MongooseError('Cannot call next() on errored ChangeStream');
|
|
123
122
|
}
|
|
124
|
-
if (this.options
|
|
123
|
+
if (this.options?.hydrate) {
|
|
125
124
|
if (cb != null) {
|
|
126
125
|
const originalCb = cb;
|
|
127
126
|
cb = (err, data) => {
|
|
@@ -135,8 +134,21 @@ class ChangeStream extends EventEmitter {
|
|
|
135
134
|
};
|
|
136
135
|
}
|
|
137
136
|
|
|
138
|
-
let maybePromise
|
|
139
|
-
if (
|
|
137
|
+
let maybePromise;
|
|
138
|
+
if (this.driverChangeStream != null) {
|
|
139
|
+
maybePromise = this.driverChangeStream.next(cb);
|
|
140
|
+
} else {
|
|
141
|
+
maybePromise = this.$driverChangeStreamPromise.then(
|
|
142
|
+
() => this.driverChangeStream.next(cb),
|
|
143
|
+
err => {
|
|
144
|
+
if (cb != null) {
|
|
145
|
+
return cb(err);
|
|
146
|
+
}
|
|
147
|
+
throw err;
|
|
148
|
+
}
|
|
149
|
+
);
|
|
150
|
+
}
|
|
151
|
+
if (typeof maybePromise?.then === 'function') {
|
|
140
152
|
maybePromise = maybePromise.then(data => {
|
|
141
153
|
if (data.fullDocument != null) {
|
|
142
154
|
data.fullDocument = this.options.model.hydrate(data.fullDocument);
|
|
@@ -147,7 +159,19 @@ class ChangeStream extends EventEmitter {
|
|
|
147
159
|
return maybePromise;
|
|
148
160
|
}
|
|
149
161
|
|
|
150
|
-
|
|
162
|
+
if (this.driverChangeStream != null) {
|
|
163
|
+
return this.driverChangeStream.next(cb);
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
return this.$driverChangeStreamPromise.then(
|
|
167
|
+
() => this.driverChangeStream.next(cb),
|
|
168
|
+
err => {
|
|
169
|
+
if (cb != null) {
|
|
170
|
+
return cb(err);
|
|
171
|
+
}
|
|
172
|
+
throw err;
|
|
173
|
+
}
|
|
174
|
+
);
|
|
151
175
|
}
|
|
152
176
|
|
|
153
177
|
addListener(event, handler) {
|
|
@@ -174,10 +198,6 @@ class ChangeStream extends EventEmitter {
|
|
|
174
198
|
return super.once(event, handler);
|
|
175
199
|
}
|
|
176
200
|
|
|
177
|
-
_queue(cb) {
|
|
178
|
-
this.once('ready', () => cb());
|
|
179
|
-
}
|
|
180
|
-
|
|
181
201
|
close() {
|
|
182
202
|
this.closed = true;
|
|
183
203
|
if (this.driverChangeStream) {
|
|
@@ -26,7 +26,7 @@ const util = require('util');
|
|
|
26
26
|
* Use [`Query#cursor()`](https://mongoosejs.com/docs/api/query.html#Query.prototype.cursor()) instead.
|
|
27
27
|
*
|
|
28
28
|
* @param {Query} query
|
|
29
|
-
* @param {
|
|
29
|
+
* @param {object} options query options passed to `.find()`
|
|
30
30
|
* @inherits Readable https://nodejs.org/api/stream.html#class-streamreadable
|
|
31
31
|
* @event `cursor`: Emitted when the cursor is created
|
|
32
32
|
* @event `error`: Emitted when an error occurred
|
|
@@ -49,7 +49,8 @@ function QueryCursor(query) {
|
|
|
49
49
|
this._transforms = [];
|
|
50
50
|
this.model = model;
|
|
51
51
|
this.options = {};
|
|
52
|
-
|
|
52
|
+
|
|
53
|
+
const onPreComplete = (err) => {
|
|
53
54
|
if (err != null) {
|
|
54
55
|
if (err instanceof kareem.skipWrappedFunction) {
|
|
55
56
|
const resultValue = err.args[0];
|
|
@@ -94,7 +95,9 @@ function QueryCursor(query) {
|
|
|
94
95
|
} else {
|
|
95
96
|
_getRawCursor(query, this);
|
|
96
97
|
}
|
|
97
|
-
}
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
model.hooks.execPre('find', query).then(() => onPreComplete(null), err => onPreComplete(err));
|
|
98
101
|
}
|
|
99
102
|
|
|
100
103
|
util.inherits(QueryCursor, Readable);
|
|
@@ -129,7 +132,7 @@ QueryCursor.prototype._read = function() {
|
|
|
129
132
|
}
|
|
130
133
|
if (!doc) {
|
|
131
134
|
this.push(null);
|
|
132
|
-
this.cursor.close(
|
|
135
|
+
this.cursor.close((error) => {
|
|
133
136
|
if (error) {
|
|
134
137
|
return this.emit('error', error);
|
|
135
138
|
}
|
|
@@ -224,7 +227,7 @@ QueryCursor.prototype._markError = function(error) {
|
|
|
224
227
|
* @api public
|
|
225
228
|
* @method close
|
|
226
229
|
* @emits close
|
|
227
|
-
* @see AggregationCursor.close https://mongodb.github.io/node-mongodb-native/
|
|
230
|
+
* @see AggregationCursor.close https://mongodb.github.io/node-mongodb-native/7.0/classes/AggregationCursor.html#close
|
|
228
231
|
*/
|
|
229
232
|
|
|
230
233
|
QueryCursor.prototype.close = async function close() {
|
|
@@ -334,10 +337,10 @@ QueryCursor.prototype.next = async function next() {
|
|
|
334
337
|
* })
|
|
335
338
|
*
|
|
336
339
|
* @param {Function} fn
|
|
337
|
-
* @param {
|
|
338
|
-
* @param {
|
|
339
|
-
* @param {
|
|
340
|
-
* @param {
|
|
340
|
+
* @param {object} [options]
|
|
341
|
+
* @param {number} [options.parallel] the number of promises to execute in parallel. Defaults to 1.
|
|
342
|
+
* @param {number} [options.batchSize] if set, will call `fn()` with arrays of documents with length at most `batchSize`
|
|
343
|
+
* @param {boolean} [options.continueOnError=false] if true, `eachAsync()` iterates through all docs even if `fn` throws an error. If false, `eachAsync()` throws an error immediately if the given function `fn()` throws an error.
|
|
341
344
|
* @return {Promise}
|
|
342
345
|
* @api public
|
|
343
346
|
* @method eachAsync
|
|
@@ -365,11 +368,11 @@ QueryCursor.prototype.eachAsync = function(fn, opts) {
|
|
|
365
368
|
QueryCursor.prototype.options;
|
|
366
369
|
|
|
367
370
|
/**
|
|
368
|
-
* Adds a [cursor flag](https://mongodb.github.io/node-mongodb-native/
|
|
371
|
+
* Adds a [cursor flag](https://mongodb.github.io/node-mongodb-native/7.0/classes/FindCursor.html#addCursorFlag).
|
|
369
372
|
* Useful for setting the `noCursorTimeout` and `tailable` flags.
|
|
370
373
|
*
|
|
371
|
-
* @param {
|
|
372
|
-
* @param {
|
|
374
|
+
* @param {'tailable'|'oplogReplay'|'noCursorTimeout'|'awaitData'|'partial'} flag
|
|
375
|
+
* @param {boolean} value
|
|
373
376
|
* @return {AggregationCursor} this
|
|
374
377
|
* @api public
|
|
375
378
|
* @method addCursorFlag
|
|
@@ -423,7 +426,7 @@ if (Symbol.asyncIterator != null) {
|
|
|
423
426
|
/**
|
|
424
427
|
* Get the next doc from the underlying cursor and mongooseify it
|
|
425
428
|
* (populate, etc.)
|
|
426
|
-
* @param {
|
|
429
|
+
* @param {any} ctx
|
|
427
430
|
* @param {Function} cb
|
|
428
431
|
* @api private
|
|
429
432
|
*/
|
|
@@ -588,12 +591,7 @@ function _populateBatch() {
|
|
|
588
591
|
|
|
589
592
|
function _nextDoc(ctx, doc, pop, callback) {
|
|
590
593
|
if (ctx.query._mongooseOptions.lean) {
|
|
591
|
-
return ctx.model.hooks.execPost('find', ctx.query, [[doc]], err =>
|
|
592
|
-
if (err != null) {
|
|
593
|
-
return callback(err);
|
|
594
|
-
}
|
|
595
|
-
callback(null, doc);
|
|
596
|
-
});
|
|
594
|
+
return ctx.model.hooks.execPost('find', ctx.query, [[doc]]).then(() => callback(null, doc), err => callback(err));
|
|
597
595
|
}
|
|
598
596
|
|
|
599
597
|
const { model, _fields, _userProvidedFields, options } = ctx.query;
|
|
@@ -601,12 +599,10 @@ function _nextDoc(ctx, doc, pop, callback) {
|
|
|
601
599
|
if (err != null) {
|
|
602
600
|
return callback(err);
|
|
603
601
|
}
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
callback(null, doc);
|
|
609
|
-
});
|
|
602
|
+
if (options.session != null) {
|
|
603
|
+
doc.$session(options.session);
|
|
604
|
+
}
|
|
605
|
+
ctx.model.hooks.execPost('find', ctx.query, [[doc]]).then(() => callback(null, doc), err => callback(err));
|
|
610
606
|
});
|
|
611
607
|
}
|
|
612
608
|
|