From 984bd4ab816c2bcaef136c019e905eacf0d50354 Mon Sep 17 00:00:00 2001 From: dariakp <81593090+dariakp@users.noreply.github.com> Date: Thu, 22 May 2025 20:39:56 +0000 Subject: [PATCH] [create-pull-request] automated change --- docs/Next/assets/navigation.js | 2 +- docs/Next/assets/search.js | 2 +- docs/Next/classes/GridFSBucketReadStream.html | 196 +++++++++--------- .../Next/classes/GridFSBucketWriteStream.html | 140 ++++++------- docs/Next/classes/HostAddress.html | 4 +- docs/Next/classes/MongoAPIError.html | 2 +- docs/Next/classes/MongoClient.html | 116 ++++++++--- docs/Next/classes/MongoClientClosedError.html | 30 +++ .../Next/classes/MongoCompatibilityError.html | 6 +- .../classes/MongoInvalidArgumentError.html | 6 +- .../classes/MongoMissingCredentialsError.html | 6 +- .../classes/MongoMissingDependencyError.html | 10 +- docs/Next/classes/MongoNetworkError.html | 6 +- .../classes/MongoNetworkTimeoutError.html | 6 +- docs/Next/classes/MongoParseError.html | 6 +- .../classes/MongoServerSelectionError.html | 8 +- docs/Next/classes/MongoSystemError.html | 8 +- docs/Next/classes/MongoWriteConcernError.html | 8 +- docs/Next/classes/ServerCapabilities.html | 4 +- docs/Next/hierarchy.html | 2 +- docs/Next/index.html | 1 + .../interfaces/AWSEncryptionKeyOptions.html | 8 +- docs/Next/interfaces/AggregateOptions.html | 22 +- .../interfaces/AggregationCursorOptions.html | 16 +- .../interfaces/AutoEncryptionOptions.html | 10 +- .../interfaces/AzureEncryptionKeyOptions.html | 8 +- docs/Next/interfaces/ChangeStreamOptions.html | 16 +- ...ncryptionCreateDataKeyProviderOptions.html | 6 +- .../interfaces/ClientEncryptionOptions.html | 10 +- ...ientEncryptionRewrapManyDataKeyResult.html | 4 +- docs/Next/interfaces/CloseOptions.html | 4 +- docs/Next/interfaces/ConnectionOptions.html | 30 +-- .../interfaces/ConnectionPoolOptions.html | 44 ++-- .../interfaces/CountDocumentsOptions.html | 20 +- .../interfaces/GCPEncryptionKeyOptions.html | 14 +- .../interfaces/KMIPEncryptionKeyOptions.html | 8 +- docs/Next/interfaces/MongoClientOptions.html | 38 ++-- .../interfaces/MongoNetworkErrorOptions.html | 4 +- docs/Next/interfaces/MongoOptions.html | 54 ++--- docs/Next/interfaces/MonitorOptions.html | 30 +-- docs/Next/interfaces/RangeOptions.html | 10 +- .../interfaces/WriteConcernErrorResult.html | 4 +- docs/Next/modules.html | 1 + .../types/AutoEncryptionExtraOptions.html | 2 +- .../Next/types/AutoEncryptionLoggerLevel.html | 2 +- docs/Next/types/ConnectionPoolEvents.html | 2 +- .../AutoEncryptionLoggerLevel-1.html | 2 +- docs/Next/variables/MONGO_CLIENT_EVENTS.html | 2 +- docs/categories/index.xml | 2 +- docs/index.html | 2 +- docs/index.xml | 2 +- docs/tags/index.xml | 2 +- 52 files changed, 524 insertions(+), 424 deletions(-) create mode 100644 docs/Next/classes/MongoClientClosedError.html diff --git a/docs/Next/assets/navigation.js b/docs/Next/assets/navigation.js index 5fe29e2b1d0..a3b936b7a98 100644 --- a/docs/Next/assets/navigation.js +++ b/docs/Next/assets/navigation.js @@ -1 +1 @@ -window.navigationData = "data:application/octet-stream;base64,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" \ No newline at end of file +window.navigationData = "data:application/octet-stream;base64,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" \ No newline at end of file diff --git a/docs/Next/assets/search.js b/docs/Next/assets/search.js index afa2c4b18b6..333350ba7df 100644 --- a/docs/Next/assets/search.js +++ b/docs/Next/assets/search.js @@ -1 +1 @@ -window.searchData = "data:application/octet-stream;base64,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"; \ No newline at end of file +window.searchData = "data:application/octet-stream;base64,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"; \ No newline at end of file diff --git a/docs/Next/classes/GridFSBucketReadStream.html b/docs/Next/classes/GridFSBucketReadStream.html index 66080a66623..85cd1fa7232 100644 --- a/docs/Next/classes/GridFSBucketReadStream.html +++ b/docs/Next/classes/GridFSBucketReadStream.html @@ -78,33 +78,33 @@ toWeb

Properties

closed: boolean

Is true after 'close' has been emitted.

v18.0.0

-
destroyed: boolean

Is true after readable.destroy() has been called.

+
destroyed: boolean

Is true after readable.destroy() has been called.

v8.0.0

-
errored: null | Error

Returns error if the stream has been destroyed with an error.

+
errored: null | Error

Returns error if the stream has been destroyed with an error.

v18.0.0

-
readable: boolean

Is true if it is safe to call read, which means +

readable: boolean

Is true if it is safe to call read, which means the stream has not been destroyed or emitted 'error' or 'end'.

v11.4.0

-
readableAborted: boolean

Returns whether the stream was destroyed or errored before emitting 'end'.

+
readableAborted: boolean

Returns whether the stream was destroyed or errored before emitting 'end'.

v16.8.0

-
readableDidRead: boolean

Returns whether 'data' has been emitted.

+
readableDidRead: boolean

Returns whether 'data' has been emitted.

v16.7.0, v14.18.0

-
readableEncoding: null | BufferEncoding

Getter for the property encoding of a given Readable stream. The encoding property can be set using the setEncoding method.

+
readableEncoding: null | BufferEncoding

Getter for the property encoding of a given Readable stream. The encoding property can be set using the setEncoding method.

v12.7.0

-
readableEnded: boolean

Becomes true when 'end' event is emitted.

+
readableEnded: boolean

Becomes true when 'end' event is emitted.

v12.9.0

-
readableFlowing: null | boolean

This property reflects the current state of a Readable stream as described +

readableFlowing: null | boolean

This property reflects the current state of a Readable stream as described in the Three states section.

v9.4.0

-
readableHighWaterMark: number

Returns the value of highWaterMark passed when creating this Readable.

+
readableHighWaterMark: number

Returns the value of highWaterMark passed when creating this Readable.

v9.3.0

-
readableLength: number

This property contains the number of bytes (or objects) in the queue +

readableLength: number

This property contains the number of bytes (or objects) in the queue ready to be read. The value provides introspection data regarding the status of the highWaterMark.

v9.4.0

-
readableObjectMode: boolean

Getter for the property objectMode of a given Readable stream.

+
readableObjectMode: boolean

Getter for the property objectMode of a given Readable stream.

v12.3.0

-
captureRejections: boolean

Value: boolean

+
captureRejections: boolean

Value: boolean

Change the default captureRejections option on all new EventEmitter objects.

v13.4.0, v12.16.0

captureRejectionSymbol: typeof captureRejectionSymbol

Value: Symbol.for('nodejs.rejection')

@@ -140,9 +140,9 @@ regular 'error' listener is installed.

v13.6.0, v12.17.0

FILE: "file" = ...

Fires when the stream loaded the file document corresponding to the provided id.

-

Methods

  • Parameters

    • callback: ((error?: null | Error) => void)
        • (error?): void
        • Parameters

          • Optionalerror: null | Error

          Returns void

    Returns void

  • Parameters

    • error: null | Error
    • callback: ((error?: null | Error) => void)
        • (error?): void
        • Parameters

          • Optionalerror: null | Error

          Returns void

    Returns void

  • Calls readable.destroy() with an AbortError and returns a promise that fulfills when the stream is finished.

    +

Methods

  • Parameters

    • callback: ((error?: null | Error) => void)
        • (error?): void
        • Parameters

          • Optionalerror: null | Error

          Returns void

    Returns void

  • Parameters

    • error: null | Error
    • callback: ((error?: null | Error) => void)
        • (error?): void
        • Parameters

          • Optionalerror: null | Error

          Returns void

    Returns void

  • Calls readable.destroy() with an AbortError and returns a promise that fulfills when the stream is finished.

    Returns Promise<void>

    v20.4.0

    -
  • Returns AsyncIterator<any, any, any>

  • Type Parameters

    • K

    Parameters

    • error: Error
    • event: string | symbol
    • Rest...args: AnyRest

    Returns void

  • Marks this stream as aborted (will never push another data event) +

  • Returns AsyncIterator<any, any, any>

  • Type Parameters

    • K

    Parameters

    • error: Error
    • event: string | symbol
    • Rest...args: AnyRest

    Returns void

  • Marks this stream as aborted (will never push another data event) and kills the underlying cursor. Will emit the 'end' event, and then the 'close' event once the cursor is successfully killed.

    Returns Promise<void>

  • Event emitter @@ -156,92 +156,92 @@

  • readable
  • resume
  • -

    Parameters

    • event: "close"
    • listener: (() => void)
        • (): void
        • Returns void

    Returns this

  • Alias for emitter.on(eventName, listener).

    +

    Parameters

    • event: "close"
    • listener: (() => void)
        • (): void
        • Returns void

    Returns this

  • Alias for emitter.on(eventName, listener).

    Parameters

    • event: "data"
    • listener: ((chunk: any) => void)
        • (chunk): void
        • Parameters

          • chunk: any

          Returns void

    Returns this

    v0.1.26

    -
  • Alias for emitter.on(eventName, listener).

    +
  • Alias for emitter.on(eventName, listener).

    Parameters

    • event: "end"
    • listener: (() => void)
        • (): void
        • Returns void

    Returns this

    v0.1.26

    -
  • Alias for emitter.on(eventName, listener).

    +
  • Alias for emitter.on(eventName, listener).

    Parameters

    • event: "error"
    • listener: ((err: Error) => void)
        • (err): void
        • Parameters

          • err: Error

          Returns void

    Returns this

    v0.1.26

    -
  • Alias for emitter.on(eventName, listener).

    +
  • Alias for emitter.on(eventName, listener).

    Parameters

    • event: "pause"
    • listener: (() => void)
        • (): void
        • Returns void

    Returns this

    v0.1.26

    -
  • Alias for emitter.on(eventName, listener).

    +
  • Alias for emitter.on(eventName, listener).

    Parameters

    • event: "readable"
    • listener: (() => void)
        • (): void
        • Returns void

    Returns this

    v0.1.26

    -
  • Alias for emitter.on(eventName, listener).

    +
  • Alias for emitter.on(eventName, listener).

    Parameters

    • event: "resume"
    • listener: (() => void)
        • (): void
        • Returns void

    Returns this

    v0.1.26

    -
  • Alias for emitter.on(eventName, listener).

    +
  • Alias for emitter.on(eventName, listener).

    Parameters

    • event: string | symbol
    • listener: ((...args: any[]) => void)
        • (...args): void
        • Parameters

          • Rest...args: any[]

          Returns void

    Returns this

    v0.1.26

    -
  • This method returns a new stream with chunks of the underlying stream paired with a counter +

  • This method returns a new stream with chunks of the underlying stream paired with a counter in the form [index, chunk]. The first index value is 0 and it increases by 1 for each chunk produced.

    Parameters

    • Optionaloptions: Pick<ArrayOptions, "signal">

    Returns Readable

    a stream of indexed pairs.

    v17.5.0

    -
  • Type Parameters

    • T extends ReadableStream

    Parameters

    • stream:
          | ComposeFnParam
          | T
          | Iterable<T>
          | AsyncIterable<T>
    • Optionaloptions: {
          signal: AbortSignal;
      }
      • signal: AbortSignal

    Returns T

  • Destroy the stream. Optionally emit an 'error' event, and emit a 'close' event (unless emitClose is set to false). After this call, the readable +

  • Type Parameters

    • T extends ReadableStream

    Parameters

    • stream:
          | ComposeFnParam
          | T
          | Iterable<T>
          | AsyncIterable<T>
    • Optionaloptions: {
          signal: AbortSignal;
      }
      • signal: AbortSignal

    Returns T

  • Destroy the stream. Optionally emit an 'error' event, and emit a 'close' event (unless emitClose is set to false). After this call, the readable stream will release any internal resources and subsequent calls to push() will be ignored.

    Once destroy() has been called any further calls will be a no-op and no further errors except from _destroy() may be emitted as 'error'.

    Implementors should not override this method, but instead implement readable._destroy().

    Parameters

    • Optionalerror: Error

      Error which will be passed as payload in 'error' event

    Returns this

    v8.0.0

    -
  • This method returns a new stream with the first limit chunks dropped from the start.

    +
  • This method returns a new stream with the first limit chunks dropped from the start.

    Parameters

    • limit: number

      the number of chunks to drop from the readable.

    • Optionaloptions: Pick<ArrayOptions, "signal">

    Returns Readable

    a stream with limit chunks dropped from the start.

    v17.5.0

    -
  • Synchronously calls each of the listeners registered for the event named eventName, in the order they were registered, passing the supplied arguments +

  • Synchronously calls each of the listeners registered for the event named eventName, in the order they were registered, passing the supplied arguments to each.

    Returns true if the event had listeners, false otherwise.

    import { EventEmitter } from 'node:events';
    const myEmitter = new EventEmitter();

    // First listener
    myEmitter.on('event', function firstListener() {
    console.log('Helloooo! first listener');
    });
    // Second listener
    myEmitter.on('event', function secondListener(arg1, arg2) {
    console.log(`event with parameters ${arg1}, ${arg2} in second listener`);
    });
    // Third listener
    myEmitter.on('event', function thirdListener(...args) {
    const parameters = args.join(', ');
    console.log(`event with parameters ${parameters} in third listener`);
    });

    console.log(myEmitter.listeners('event'));

    myEmitter.emit('event', 1, 2, 3, 4, 5);

    // Prints:
    // [
    // [Function: firstListener],
    // [Function: secondListener],
    // [Function: thirdListener]
    // ]
    // Helloooo! first listener
    // event with parameters 1, 2 in second listener
    // event with parameters 1, 2, 3, 4, 5 in third listener

    Parameters

    • event: "close"

    Returns boolean

    v0.1.26

    -
  • Synchronously calls each of the listeners registered for the event named eventName, in the order they were registered, passing the supplied arguments +

  • Synchronously calls each of the listeners registered for the event named eventName, in the order they were registered, passing the supplied arguments to each.

    Returns true if the event had listeners, false otherwise.

    import { EventEmitter } from 'node:events';
    const myEmitter = new EventEmitter();

    // First listener
    myEmitter.on('event', function firstListener() {
    console.log('Helloooo! first listener');
    });
    // Second listener
    myEmitter.on('event', function secondListener(arg1, arg2) {
    console.log(`event with parameters ${arg1}, ${arg2} in second listener`);
    });
    // Third listener
    myEmitter.on('event', function thirdListener(...args) {
    const parameters = args.join(', ');
    console.log(`event with parameters ${parameters} in third listener`);
    });

    console.log(myEmitter.listeners('event'));

    myEmitter.emit('event', 1, 2, 3, 4, 5);

    // Prints:
    // [
    // [Function: firstListener],
    // [Function: secondListener],
    // [Function: thirdListener]
    // ]
    // Helloooo! first listener
    // event with parameters 1, 2 in second listener
    // event with parameters 1, 2, 3, 4, 5 in third listener

    Parameters

    • event: "data"
    • chunk: any

    Returns boolean

    v0.1.26

    -
  • Synchronously calls each of the listeners registered for the event named eventName, in the order they were registered, passing the supplied arguments +

  • Synchronously calls each of the listeners registered for the event named eventName, in the order they were registered, passing the supplied arguments to each.

    Returns true if the event had listeners, false otherwise.

    import { EventEmitter } from 'node:events';
    const myEmitter = new EventEmitter();

    // First listener
    myEmitter.on('event', function firstListener() {
    console.log('Helloooo! first listener');
    });
    // Second listener
    myEmitter.on('event', function secondListener(arg1, arg2) {
    console.log(`event with parameters ${arg1}, ${arg2} in second listener`);
    });
    // Third listener
    myEmitter.on('event', function thirdListener(...args) {
    const parameters = args.join(', ');
    console.log(`event with parameters ${parameters} in third listener`);
    });

    console.log(myEmitter.listeners('event'));

    myEmitter.emit('event', 1, 2, 3, 4, 5);

    // Prints:
    // [
    // [Function: firstListener],
    // [Function: secondListener],
    // [Function: thirdListener]
    // ]
    // Helloooo! first listener
    // event with parameters 1, 2 in second listener
    // event with parameters 1, 2, 3, 4, 5 in third listener

    Parameters

    • event: "end"

    Returns boolean

    v0.1.26

    -
  • Synchronously calls each of the listeners registered for the event named eventName, in the order they were registered, passing the supplied arguments +

  • Synchronously calls each of the listeners registered for the event named eventName, in the order they were registered, passing the supplied arguments to each.

    Returns true if the event had listeners, false otherwise.

    import { EventEmitter } from 'node:events';
    const myEmitter = new EventEmitter();

    // First listener
    myEmitter.on('event', function firstListener() {
    console.log('Helloooo! first listener');
    });
    // Second listener
    myEmitter.on('event', function secondListener(arg1, arg2) {
    console.log(`event with parameters ${arg1}, ${arg2} in second listener`);
    });
    // Third listener
    myEmitter.on('event', function thirdListener(...args) {
    const parameters = args.join(', ');
    console.log(`event with parameters ${parameters} in third listener`);
    });

    console.log(myEmitter.listeners('event'));

    myEmitter.emit('event', 1, 2, 3, 4, 5);

    // Prints:
    // [
    // [Function: firstListener],
    // [Function: secondListener],
    // [Function: thirdListener]
    // ]
    // Helloooo! first listener
    // event with parameters 1, 2 in second listener
    // event with parameters 1, 2, 3, 4, 5 in third listener

    Parameters

    • event: "error"
    • err: Error

    Returns boolean

    v0.1.26

    -
  • Synchronously calls each of the listeners registered for the event named eventName, in the order they were registered, passing the supplied arguments +

  • Synchronously calls each of the listeners registered for the event named eventName, in the order they were registered, passing the supplied arguments to each.

    Returns true if the event had listeners, false otherwise.

    import { EventEmitter } from 'node:events';
    const myEmitter = new EventEmitter();

    // First listener
    myEmitter.on('event', function firstListener() {
    console.log('Helloooo! first listener');
    });
    // Second listener
    myEmitter.on('event', function secondListener(arg1, arg2) {
    console.log(`event with parameters ${arg1}, ${arg2} in second listener`);
    });
    // Third listener
    myEmitter.on('event', function thirdListener(...args) {
    const parameters = args.join(', ');
    console.log(`event with parameters ${parameters} in third listener`);
    });

    console.log(myEmitter.listeners('event'));

    myEmitter.emit('event', 1, 2, 3, 4, 5);

    // Prints:
    // [
    // [Function: firstListener],
    // [Function: secondListener],
    // [Function: thirdListener]
    // ]
    // Helloooo! first listener
    // event with parameters 1, 2 in second listener
    // event with parameters 1, 2, 3, 4, 5 in third listener

    Parameters

    • event: "pause"

    Returns boolean

    v0.1.26

    -
  • Synchronously calls each of the listeners registered for the event named eventName, in the order they were registered, passing the supplied arguments +

  • Synchronously calls each of the listeners registered for the event named eventName, in the order they were registered, passing the supplied arguments to each.

    Returns true if the event had listeners, false otherwise.

    import { EventEmitter } from 'node:events';
    const myEmitter = new EventEmitter();

    // First listener
    myEmitter.on('event', function firstListener() {
    console.log('Helloooo! first listener');
    });
    // Second listener
    myEmitter.on('event', function secondListener(arg1, arg2) {
    console.log(`event with parameters ${arg1}, ${arg2} in second listener`);
    });
    // Third listener
    myEmitter.on('event', function thirdListener(...args) {
    const parameters = args.join(', ');
    console.log(`event with parameters ${parameters} in third listener`);
    });

    console.log(myEmitter.listeners('event'));

    myEmitter.emit('event', 1, 2, 3, 4, 5);

    // Prints:
    // [
    // [Function: firstListener],
    // [Function: secondListener],
    // [Function: thirdListener]
    // ]
    // Helloooo! first listener
    // event with parameters 1, 2 in second listener
    // event with parameters 1, 2, 3, 4, 5 in third listener

    Parameters

    • event: "readable"

    Returns boolean

    v0.1.26

    -
  • Synchronously calls each of the listeners registered for the event named eventName, in the order they were registered, passing the supplied arguments +

  • Synchronously calls each of the listeners registered for the event named eventName, in the order they were registered, passing the supplied arguments to each.

    Returns true if the event had listeners, false otherwise.

    import { EventEmitter } from 'node:events';
    const myEmitter = new EventEmitter();

    // First listener
    myEmitter.on('event', function firstListener() {
    console.log('Helloooo! first listener');
    });
    // Second listener
    myEmitter.on('event', function secondListener(arg1, arg2) {
    console.log(`event with parameters ${arg1}, ${arg2} in second listener`);
    });
    // Third listener
    myEmitter.on('event', function thirdListener(...args) {
    const parameters = args.join(', ');
    console.log(`event with parameters ${parameters} in third listener`);
    });

    console.log(myEmitter.listeners('event'));

    myEmitter.emit('event', 1, 2, 3, 4, 5);

    // Prints:
    // [
    // [Function: firstListener],
    // [Function: secondListener],
    // [Function: thirdListener]
    // ]
    // Helloooo! first listener
    // event with parameters 1, 2 in second listener
    // event with parameters 1, 2, 3, 4, 5 in third listener

    Parameters

    • event: "resume"

    Returns boolean

    v0.1.26

    -
  • Synchronously calls each of the listeners registered for the event named eventName, in the order they were registered, passing the supplied arguments +

  • Synchronously calls each of the listeners registered for the event named eventName, in the order they were registered, passing the supplied arguments to each.

    Returns true if the event had listeners, false otherwise.

    import { EventEmitter } from 'node:events';
    const myEmitter = new EventEmitter();

    // First listener
    myEmitter.on('event', function firstListener() {
    console.log('Helloooo! first listener');
    });
    // Second listener
    myEmitter.on('event', function secondListener(arg1, arg2) {
    console.log(`event with parameters ${arg1}, ${arg2} in second listener`);
    });
    // Third listener
    myEmitter.on('event', function thirdListener(...args) {
    const parameters = args.join(', ');
    console.log(`event with parameters ${parameters} in third listener`);
    });

    console.log(myEmitter.listeners('event'));

    myEmitter.emit('event', 1, 2, 3, 4, 5);

    // Prints:
    // [
    // [Function: firstListener],
    // [Function: secondListener],
    // [Function: thirdListener]
    // ]
    // Helloooo! first listener
    // event with parameters 1, 2 in second listener
    // event with parameters 1, 2, 3, 4, 5 in third listener

    Parameters

    • event: string | symbol
    • Rest...args: any[]

    Returns boolean

    v0.1.26

    -
  • Sets the 0-based offset in bytes to start streaming from. Throws +

  • Sets the 0-based offset in bytes to start streaming from. Throws an error if this stream has entered flowing mode (e.g. if you've already called on('data'))

    Parameters

    • end: number = 0

      Offset in bytes to stop reading at

      @@ -258,13 +258,13 @@

      Parameters

      • fn: ((data: any, options?: Pick<ArrayOptions, "signal">) => boolean | Promise<boolean>)

        a function to call on each chunk of the stream. Async or not.

          • (data, options?): boolean | Promise<boolean>
          • Parameters

            • data: any
            • Optionaloptions: Pick<ArrayOptions, "signal">

            Returns boolean | Promise<boolean>

      • Optionaloptions: ArrayOptions

      Returns Promise<boolean>

      a promise evaluating to true if fn returned a truthy value for every one of the chunks.

      v17.5.0

      -
  • This method allows filtering the stream. For each chunk in the stream the fn function will be called +

  • This method allows filtering the stream. For each chunk in the stream the fn function will be called and if it returns a truthy value, the chunk will be passed to the result stream. If the fn function returns a promise - that promise will be awaited.

    Parameters

    • fn: ((data: any, options?: Pick<ArrayOptions, "signal">) => boolean | Promise<boolean>)

      a function to filter chunks from the stream. Async or not.

        • (data, options?): boolean | Promise<boolean>
        • Parameters

          • data: any
          • Optionaloptions: Pick<ArrayOptions, "signal">

          Returns boolean | Promise<boolean>

    • Optionaloptions: ArrayOptions

    Returns Readable

    a stream filtered with the predicate fn.

    v17.4.0, v16.14.0

    -
  • This method is similar to Array.prototype.find and calls fn on each chunk in the stream +

  • This method is similar to Array.prototype.find and calls fn on each chunk in the stream to find a chunk with a truthy value for fn. Once an fn call's awaited return value is truthy, the stream is destroyed and the promise is fulfilled with value for which fn returned a truthy value. If all of the fn calls on the chunks return a falsy value, the promise is fulfilled with undefined.

    @@ -272,14 +272,14 @@
      • (data, options?): data is T
      • Parameters

        • data: any
        • Optionaloptions: Pick<ArrayOptions, "signal">

        Returns data is T

  • Optionaloptions: ArrayOptions

Returns Promise<undefined | T>

a promise evaluating to the first chunk for which fn evaluated with a truthy value, or undefined if no element was found.

v17.5.0

-
  • Parameters

    • fn: ((data: any, options?: Pick<ArrayOptions, "signal">) => boolean | Promise<boolean>)
        • (data, options?): boolean | Promise<boolean>
        • Parameters

          • data: any
          • Optionaloptions: Pick<ArrayOptions, "signal">

          Returns boolean | Promise<boolean>

    • Optionaloptions: ArrayOptions

    Returns Promise<any>

    • This method returns a new stream by applying the given callback to each chunk of the stream +

    • Parameters

      • fn: ((data: any, options?: Pick<ArrayOptions, "signal">) => boolean | Promise<boolean>)
          • (data, options?): boolean | Promise<boolean>
          • Parameters

            • data: any
            • Optionaloptions: Pick<ArrayOptions, "signal">

            Returns boolean | Promise<boolean>

      • Optionaloptions: ArrayOptions

      Returns Promise<any>

    • This method returns a new stream by applying the given callback to each chunk of the stream and then flattening the result.

      It is possible to return a stream or another iterable or async iterable from fn and the result streams will be merged (flattened) into the returned stream.

      Parameters

      • fn: ((data: any, options?: Pick<ArrayOptions, "signal">) => any)

        a function to map over every chunk in the stream. May be async. May be a stream or generator.

          • (data, options?): any
          • Parameters

            • data: any
            • Optionaloptions: Pick<ArrayOptions, "signal">

            Returns any

      • Optionaloptions: ArrayOptions

      Returns Readable

      a stream flat-mapped with the function fn.

      v17.5.0

      -
    • This method allows iterating a stream. For each chunk in the stream the fn function will be called. +

    • This method allows iterating a stream. For each chunk in the stream the fn function will be called. If the fn function returns a promise - that promise will be awaited.

      This method is different from for await...of loops in that it can optionally process chunks concurrently. In addition, a forEach iteration can only be stopped by having passed a signal option @@ -290,7 +290,7 @@

      Parameters

      • fn: ((data: any, options?: Pick<ArrayOptions, "signal">) => void | Promise<void>)

        a function to call on each chunk of the stream. Async or not.

          • (data, options?): void | Promise<void>
          • Parameters

            • data: any
            • Optionaloptions: Pick<ArrayOptions, "signal">

            Returns void | Promise<void>

      • Optionaloptions: ArrayOptions

      Returns Promise<void>

      a promise for when the stream has finished.

      v17.5.0

      -
    • Returns the current max listener value for the EventEmitter which is either +

    • Returns the current max listener value for the EventEmitter which is either set by emitter.setMaxListeners(n) or defaults to EventEmitter.defaultMaxListeners.

      Returns number

      v1.0.0

    • The readable.isPaused() method returns the current operating state of the Readable. @@ -300,14 +300,14 @@

      Returns boolean

      v0.11.14

      -
    • The iterator created by this method gives users the option to cancel the destruction +

    • The iterator created by this method gives users the option to cancel the destruction of the stream if the for await...of loop is exited by return, break, or throw, or if the iterator should destroy the stream if the stream emitted an error during iteration.

      Parameters

      • Optionaloptions: {
            destroyOnReturn?: boolean;
        }
        • OptionaldestroyOnReturn?: boolean

          When set to false, calling return on the async iterator, or exiting a for await...of iteration using a break, return, or throw will not destroy the stream. Default: true.

      Returns AsyncIterator<any, any, any>

      v16.3.0

      -
    • Returns the number of listeners listening for the event named eventName. +

    • Returns the number of listeners listening for the event named eventName. If listener is provided, it will return how many times the listener is found in the list of the listeners of the event.

      Type Parameters

      • K

      Parameters

      • eventName: string | symbol

        The name of the event being listened for

        @@ -323,7 +323,7 @@

        Parameters

        • fn: ((data: any, options?: Pick<ArrayOptions, "signal">) => any)

          a function to map over every chunk in the stream. Async or not.

            • (data, options?): any
            • Parameters

              • data: any
              • Optionaloptions: Pick<ArrayOptions, "signal">

              Returns any

        • Optionaloptions: ArrayOptions

        Returns Readable

        a stream mapped with the function fn.

        v17.4.0, v16.14.0

        -
    • Alias for emitter.removeListener().

      +
    • Alias for emitter.removeListener().

      Type Parameters

      • K

      Parameters

      • eventName: string | symbol
      • listener: ((...args: any[]) => void)
          • (...args): void
          • Parameters

            • Rest...args: any[]

            Returns void

      Returns this

      v10.0.0

    • Adds the listener function to the end of the listeners array for the event named eventName. No checks are made to see if the listener has already @@ -340,7 +340,7 @@

      Parameters

      • event: "close"
      • listener: (() => void)

        The callback function

          • (): void
          • Returns void

      Returns this

      v0.1.101

      -
    • Adds the listener function to the end of the listeners array for the event +

    • Adds the listener function to the end of the listeners array for the event named eventName. No checks are made to see if the listener has already been added. Multiple calls passing the same combination of eventName and listener will result in the listener being added, and called, multiple times.

      @@ -355,7 +355,7 @@

      Parameters

      • event: "data"
      • listener: ((chunk: any) => void)

        The callback function

          • (chunk): void
          • Parameters

            • chunk: any

            Returns void

      Returns this

      v0.1.101

      -
    • Adds the listener function to the end of the listeners array for the event +

    • Adds the listener function to the end of the listeners array for the event named eventName. No checks are made to see if the listener has already been added. Multiple calls passing the same combination of eventName and listener will result in the listener being added, and called, multiple times.

      @@ -370,7 +370,7 @@

      Parameters

      • event: "end"
      • listener: (() => void)

        The callback function

          • (): void
          • Returns void

      Returns this

      v0.1.101

      -
    • Adds the listener function to the end of the listeners array for the event +

    • Adds the listener function to the end of the listeners array for the event named eventName. No checks are made to see if the listener has already been added. Multiple calls passing the same combination of eventName and listener will result in the listener being added, and called, multiple times.

      @@ -385,7 +385,7 @@

      Parameters

      • event: "error"
      • listener: ((err: Error) => void)

        The callback function

          • (err): void
          • Parameters

            • err: Error

            Returns void

      Returns this

      v0.1.101

      -
    • Adds the listener function to the end of the listeners array for the event +

    • Adds the listener function to the end of the listeners array for the event named eventName. No checks are made to see if the listener has already been added. Multiple calls passing the same combination of eventName and listener will result in the listener being added, and called, multiple times.

      @@ -400,7 +400,7 @@

      Parameters

      • event: "pause"
      • listener: (() => void)

        The callback function

          • (): void
          • Returns void

      Returns this

      v0.1.101

      -
    • Adds the listener function to the end of the listeners array for the event +

    • Adds the listener function to the end of the listeners array for the event named eventName. No checks are made to see if the listener has already been added. Multiple calls passing the same combination of eventName and listener will result in the listener being added, and called, multiple times.

      @@ -415,7 +415,7 @@

      Parameters

      • event: "readable"
      • listener: (() => void)

        The callback function

          • (): void
          • Returns void

      Returns this

      v0.1.101

      -
    • Adds the listener function to the end of the listeners array for the event +

    • Adds the listener function to the end of the listeners array for the event named eventName. No checks are made to see if the listener has already been added. Multiple calls passing the same combination of eventName and listener will result in the listener being added, and called, multiple times.

      @@ -430,7 +430,7 @@

      Parameters

      • event: "resume"
      • listener: (() => void)

        The callback function

          • (): void
          • Returns void

      Returns this

      v0.1.101

      -
    • Adds the listener function to the end of the listeners array for the event +

    • Adds the listener function to the end of the listeners array for the event named eventName. No checks are made to see if the listener has already been added. Multiple calls passing the same combination of eventName and listener will result in the listener being added, and called, multiple times.

      @@ -445,7 +445,7 @@

      Parameters

      • event: string | symbol
      • listener: ((...args: any[]) => void)

        The callback function

          • (...args): void
          • Parameters

            • Rest...args: any[]

            Returns void

      Returns this

      v0.1.101

      -
    • Adds a one-time listener function for the event named eventName. The +

    • Adds a one-time listener function for the event named eventName. The next time eventName is triggered, this listener is removed and then invoked.

      server.once('connection', (stream) => {
      console.log('Ah, we have our first user!');
      });
      @@ -458,7 +458,7 @@

      Parameters

      • event: "close"
      • listener: (() => void)

        The callback function

          • (): void
          • Returns void

      Returns this

      v0.3.0

      -
    • Adds a one-time listener function for the event named eventName. The +

    • Adds a one-time listener function for the event named eventName. The next time eventName is triggered, this listener is removed and then invoked.

      server.once('connection', (stream) => {
      console.log('Ah, we have our first user!');
      });
      @@ -471,7 +471,7 @@

      Parameters

      • event: "data"
      • listener: ((chunk: any) => void)

        The callback function

          • (chunk): void
          • Parameters

            • chunk: any

            Returns void

      Returns this

      v0.3.0

      -
    • Adds a one-time listener function for the event named eventName. The +

    • Adds a one-time listener function for the event named eventName. The next time eventName is triggered, this listener is removed and then invoked.

      server.once('connection', (stream) => {
      console.log('Ah, we have our first user!');
      });
      @@ -484,7 +484,7 @@

      Parameters

      • event: "end"
      • listener: (() => void)

        The callback function

          • (): void
          • Returns void

      Returns this

      v0.3.0

      -
    • Adds a one-time listener function for the event named eventName. The +

    • Adds a one-time listener function for the event named eventName. The next time eventName is triggered, this listener is removed and then invoked.

      server.once('connection', (stream) => {
      console.log('Ah, we have our first user!');
      });
      @@ -497,7 +497,7 @@

      Parameters

      • event: "error"
      • listener: ((err: Error) => void)

        The callback function

          • (err): void
          • Parameters

            • err: Error

            Returns void

      Returns this

      v0.3.0

      -
    • Adds a one-time listener function for the event named eventName. The +

    • Adds a one-time listener function for the event named eventName. The next time eventName is triggered, this listener is removed and then invoked.

      server.once('connection', (stream) => {
      console.log('Ah, we have our first user!');
      });
      @@ -510,7 +510,7 @@

      Parameters

      • event: "pause"
      • listener: (() => void)

        The callback function

          • (): void
          • Returns void

      Returns this

      v0.3.0

      -
    • Adds a one-time listener function for the event named eventName. The +

    • Adds a one-time listener function for the event named eventName. The next time eventName is triggered, this listener is removed and then invoked.

      server.once('connection', (stream) => {
      console.log('Ah, we have our first user!');
      });
      @@ -523,7 +523,7 @@

      Parameters

      • event: "readable"
      • listener: (() => void)

        The callback function

          • (): void
          • Returns void

      Returns this

      v0.3.0

      -
    • Adds a one-time listener function for the event named eventName. The +

    • Adds a one-time listener function for the event named eventName. The next time eventName is triggered, this listener is removed and then invoked.

      server.once('connection', (stream) => {
      console.log('Ah, we have our first user!');
      });
      @@ -536,7 +536,7 @@

      Parameters

      • event: "resume"
      • listener: (() => void)

        The callback function

          • (): void
          • Returns void

      Returns this

      v0.3.0

      -
    • Adds a one-time listener function for the event named eventName. The +

    • Adds a one-time listener function for the event named eventName. The next time eventName is triggered, this listener is removed and then invoked.

      server.once('connection', (stream) => {
      console.log('Ah, we have our first user!');
      });
      @@ -549,7 +549,7 @@

      Parameters

      • event: string | symbol
      • listener: ((...args: any[]) => void)

        The callback function

          • (...args): void
          • Parameters

            • Rest...args: any[]

            Returns void

      Returns this

      v0.3.0

      -
    • The readable.pause() method will cause a stream in flowing mode to stop +

    • The readable.pause() method will cause a stream in flowing mode to stop emitting 'data' events, switching out of flowing mode. Any data that becomes available will remain in the internal buffer.

      const readable = getReadableStreamSomehow();
      readable.on('data', (chunk) => {
      console.log(`Received ${chunk.length} bytes of data.`);
      readable.pause();
      console.log('There will be no additional data for 1 second.');
      setTimeout(() => {
      console.log('Now data will start flowing again.');
      readable.resume();
      }, 1000);
      }); @@ -557,7 +557,7 @@

      The readable.pause() method has no effect if there is a 'readable' event listener.

      Returns this

      v0.9.4

      -
    • Type Parameters

      • T extends WritableStream

      Parameters

      • destination: T
      • Optionaloptions: {
            end?: boolean;
        }
        • Optionalend?: boolean

      Returns T

    • Adds the listener function to the beginning of the listeners array for the +

    • Type Parameters

      • T extends WritableStream

      Parameters

      • destination: T
      • Optionaloptions: {
            end?: boolean;
        }
        • Optionalend?: boolean

      Returns T

    • Adds the listener function to the beginning of the listeners array for the event named eventName. No checks are made to see if the listener has already been added. Multiple calls passing the same combination of eventName and listener will result in the listener being added, and called, multiple times.

      @@ -567,7 +567,7 @@

      Returns a reference to the EventEmitter, so that calls can be chained.

      Parameters

      • event: "close"
      • listener: (() => void)

        The callback function

          • (): void
          • Returns void

      Returns this

      v6.0.0

      -
    • Adds the listener function to the beginning of the listeners array for the +

    • Adds the listener function to the beginning of the listeners array for the event named eventName. No checks are made to see if the listener has already been added. Multiple calls passing the same combination of eventName and listener will result in the listener being added, and called, multiple times.

      @@ -577,7 +577,7 @@

      Returns a reference to the EventEmitter, so that calls can be chained.

      Parameters

      • event: "data"
      • listener: ((chunk: any) => void)

        The callback function

          • (chunk): void
          • Parameters

            • chunk: any

            Returns void

      Returns this

      v6.0.0

      -
    • Adds the listener function to the beginning of the listeners array for the +

    • Adds the listener function to the beginning of the listeners array for the event named eventName. No checks are made to see if the listener has already been added. Multiple calls passing the same combination of eventName and listener will result in the listener being added, and called, multiple times.

      @@ -587,7 +587,7 @@

      Returns a reference to the EventEmitter, so that calls can be chained.

      Parameters

      • event: "end"
      • listener: (() => void)

        The callback function

          • (): void
          • Returns void

      Returns this

      v6.0.0

      -
    • Adds the listener function to the beginning of the listeners array for the +

    • Adds the listener function to the beginning of the listeners array for the event named eventName. No checks are made to see if the listener has already been added. Multiple calls passing the same combination of eventName and listener will result in the listener being added, and called, multiple times.

      @@ -597,7 +597,7 @@

      Returns a reference to the EventEmitter, so that calls can be chained.

      Parameters

      • event: "error"
      • listener: ((err: Error) => void)

        The callback function

          • (err): void
          • Parameters

            • err: Error

            Returns void

      Returns this

      v6.0.0

      -
    • Adds the listener function to the beginning of the listeners array for the +

    • Adds the listener function to the beginning of the listeners array for the event named eventName. No checks are made to see if the listener has already been added. Multiple calls passing the same combination of eventName and listener will result in the listener being added, and called, multiple times.

      @@ -607,7 +607,7 @@

      Returns a reference to the EventEmitter, so that calls can be chained.

      Parameters

      • event: "pause"
      • listener: (() => void)

        The callback function

          • (): void
          • Returns void

      Returns this

      v6.0.0

      -
    • Adds the listener function to the beginning of the listeners array for the +

    • Adds the listener function to the beginning of the listeners array for the event named eventName. No checks are made to see if the listener has already been added. Multiple calls passing the same combination of eventName and listener will result in the listener being added, and called, multiple times.

      @@ -617,7 +617,7 @@

      Returns a reference to the EventEmitter, so that calls can be chained.

      Parameters

      • event: "readable"
      • listener: (() => void)

        The callback function

          • (): void
          • Returns void

      Returns this

      v6.0.0

      -
    • Adds the listener function to the beginning of the listeners array for the +

    • Adds the listener function to the beginning of the listeners array for the event named eventName. No checks are made to see if the listener has already been added. Multiple calls passing the same combination of eventName and listener will result in the listener being added, and called, multiple times.

      @@ -627,7 +627,7 @@

      Returns a reference to the EventEmitter, so that calls can be chained.

      Parameters

      • event: "resume"
      • listener: (() => void)

        The callback function

          • (): void
          • Returns void

      Returns this

      v6.0.0

      -
    • Adds the listener function to the beginning of the listeners array for the +

    • Adds the listener function to the beginning of the listeners array for the event named eventName. No checks are made to see if the listener has already been added. Multiple calls passing the same combination of eventName and listener will result in the listener being added, and called, multiple times.

      @@ -637,7 +637,7 @@

      Returns a reference to the EventEmitter, so that calls can be chained.

      Parameters

      • event: string | symbol
      • listener: ((...args: any[]) => void)

        The callback function

          • (...args): void
          • Parameters

            • Rest...args: any[]

            Returns void

      Returns this

      v6.0.0

      -
    • Adds a one-timelistener function for the event named eventName to the beginning of the listeners array. The next time eventName is triggered, this +

    • Adds a one-timelistener function for the event named eventName to the beginning of the listeners array. The next time eventName is triggered, this listener is removed, and then invoked.

      server.prependOnceListener('connection', (stream) => {
      console.log('Ah, we have our first user!');
      });
      @@ -645,7 +645,7 @@

      Returns a reference to the EventEmitter, so that calls can be chained.

      Parameters

      • event: "close"
      • listener: (() => void)

        The callback function

          • (): void
          • Returns void

      Returns this

      v6.0.0

      -
    • Adds a one-timelistener function for the event named eventName to the beginning of the listeners array. The next time eventName is triggered, this +

    • Adds a one-timelistener function for the event named eventName to the beginning of the listeners array. The next time eventName is triggered, this listener is removed, and then invoked.

      server.prependOnceListener('connection', (stream) => {
      console.log('Ah, we have our first user!');
      });
      @@ -653,7 +653,7 @@

      Returns a reference to the EventEmitter, so that calls can be chained.

      Parameters

      • event: "data"
      • listener: ((chunk: any) => void)

        The callback function

          • (chunk): void
          • Parameters

            • chunk: any

            Returns void

      Returns this

      v6.0.0

      -
    • Adds a one-timelistener function for the event named eventName to the beginning of the listeners array. The next time eventName is triggered, this +

    • Adds a one-timelistener function for the event named eventName to the beginning of the listeners array. The next time eventName is triggered, this listener is removed, and then invoked.

      server.prependOnceListener('connection', (stream) => {
      console.log('Ah, we have our first user!');
      });
      @@ -661,7 +661,7 @@

      Returns a reference to the EventEmitter, so that calls can be chained.

      Parameters

      • event: "end"
      • listener: (() => void)

        The callback function

          • (): void
          • Returns void

      Returns this

      v6.0.0

      -
    • Adds a one-timelistener function for the event named eventName to the beginning of the listeners array. The next time eventName is triggered, this +

    • Adds a one-timelistener function for the event named eventName to the beginning of the listeners array. The next time eventName is triggered, this listener is removed, and then invoked.

      server.prependOnceListener('connection', (stream) => {
      console.log('Ah, we have our first user!');
      });
      @@ -669,7 +669,7 @@

      Returns a reference to the EventEmitter, so that calls can be chained.

      Parameters

      • event: "error"
      • listener: ((err: Error) => void)

        The callback function

          • (err): void
          • Parameters

            • err: Error

            Returns void

      Returns this

      v6.0.0

      -
    • Adds a one-timelistener function for the event named eventName to the beginning of the listeners array. The next time eventName is triggered, this +

    • Adds a one-timelistener function for the event named eventName to the beginning of the listeners array. The next time eventName is triggered, this listener is removed, and then invoked.

      server.prependOnceListener('connection', (stream) => {
      console.log('Ah, we have our first user!');
      });
      @@ -677,7 +677,7 @@

      Returns a reference to the EventEmitter, so that calls can be chained.

      Parameters

      • event: "pause"
      • listener: (() => void)

        The callback function

          • (): void
          • Returns void

      Returns this

      v6.0.0

      -
    • Adds a one-timelistener function for the event named eventName to the beginning of the listeners array. The next time eventName is triggered, this +

    • Adds a one-timelistener function for the event named eventName to the beginning of the listeners array. The next time eventName is triggered, this listener is removed, and then invoked.

      server.prependOnceListener('connection', (stream) => {
      console.log('Ah, we have our first user!');
      });
      @@ -685,7 +685,7 @@

      Returns a reference to the EventEmitter, so that calls can be chained.

      Parameters

      • event: "readable"
      • listener: (() => void)

        The callback function

          • (): void
          • Returns void

      Returns this

      v6.0.0

      -
    • Adds a one-timelistener function for the event named eventName to the beginning of the listeners array. The next time eventName is triggered, this +

    • Adds a one-timelistener function for the event named eventName to the beginning of the listeners array. The next time eventName is triggered, this listener is removed, and then invoked.

      server.prependOnceListener('connection', (stream) => {
      console.log('Ah, we have our first user!');
      });
      @@ -693,7 +693,7 @@

      Returns a reference to the EventEmitter, so that calls can be chained.

      Parameters

      • event: "resume"
      • listener: (() => void)

        The callback function

          • (): void
          • Returns void

      Returns this

      v6.0.0

      -
    • Adds a one-timelistener function for the event named eventName to the beginning of the listeners array. The next time eventName is triggered, this +

    • Adds a one-timelistener function for the event named eventName to the beginning of the listeners array. The next time eventName is triggered, this listener is removed, and then invoked.

      server.prependOnceListener('connection', (stream) => {
      console.log('Ah, we have our first user!');
      });
      @@ -701,7 +701,7 @@

      Returns a reference to the EventEmitter, so that calls can be chained.

      Parameters

      • event: string | symbol
      • listener: ((...args: any[]) => void)

        The callback function

          • (...args): void
          • Parameters

            • Rest...args: any[]

            Returns void

      Returns this

      v6.0.0

      -
    • Parameters

      • chunk: any
      • Optionalencoding: BufferEncoding

      Returns boolean

    • Returns a copy of the array of listeners for the event named eventName, +

    • Parameters

      • chunk: any
      • Optionalencoding: BufferEncoding

      Returns boolean

    • Returns a copy of the array of listeners for the event named eventName, including any wrappers (such as those created by .once()).

      import { EventEmitter } from 'node:events';
      const emitter = new EventEmitter();
      emitter.once('log', () => console.log('log once'));

      // Returns a new Array with a function `onceWrapper` which has a property
      // `listener` which contains the original listener bound above
      const listeners = emitter.rawListeners('log');
      const logFnWrapper = listeners[0];

      // Logs "log once" to the console and does not unbind the `once` event
      logFnWrapper.listener();

      // Logs "log once" to the console and removes the listener
      logFnWrapper();

      emitter.on('log', () => console.log('log persistently'));
      // Will return a new Array with a single function bound by `.on()` above
      const newListeners = emitter.rawListeners('log');

      // Logs "log persistently" twice
      newListeners[0]();
      emitter.emit('log');
      @@ -745,7 +745,7 @@ been emitted will return null. No runtime error will be raised.

      Parameters

      • Optionalsize: number

        Optional argument to specify how much data to read.

      Returns any

      v0.9.4

      -
    • This method calls fn on each chunk of the stream in order, passing it the result from the calculation +

    • This method calls fn on each chunk of the stream in order, passing it the result from the calculation on the previous element. It returns a promise for the final value of the reduction.

      If no initial value is supplied the first chunk of the stream is used as the initial value. If the stream is empty, the promise is rejected with a TypeError with the ERR_INVALID_ARGS code property.

      @@ -755,7 +755,7 @@
        • (previous, data, options?): T
        • Parameters

          • previous: any
          • data: any
          • Optionaloptions: Pick<ArrayOptions, "signal">

          Returns T

    • Optionalinitial: undefined

      the initial value to use in the reduction.

    • Optionaloptions: Pick<ArrayOptions, "signal">

    Returns Promise<T>

    a promise for the final value of the reduction.

    v17.5.0

    -
  • Type Parameters

    • T = any

    Parameters

    • fn: ((previous: T, data: any, options?: Pick<ArrayOptions, "signal">) => T)
        • (previous, data, options?): T
        • Parameters

          • previous: T
          • data: any
          • Optionaloptions: Pick<ArrayOptions, "signal">

          Returns T

    • initial: T
    • Optionaloptions: Pick<ArrayOptions, "signal">

    Returns Promise<T>

    • Removes all listeners, or those of the specified eventName.

      +
    • Type Parameters

      • T = any

      Parameters

      • fn: ((previous: T, data: any, options?: Pick<ArrayOptions, "signal">) => T)
          • (previous, data, options?): T
          • Parameters

            • previous: T
            • data: any
            • Optionaloptions: Pick<ArrayOptions, "signal">

            Returns T

      • initial: T
      • Optionaloptions: Pick<ArrayOptions, "signal">

      Returns Promise<T>

    • Removes all listeners, or those of the specified eventName.

      It is bad practice to remove listeners added elsewhere in the code, particularly when the EventEmitter instance was created by some other component or module (e.g. sockets or file streams).

      @@ -788,7 +788,7 @@

      Returns a reference to the EventEmitter, so that calls can be chained.

      Parameters

      • event: "close"
      • listener: (() => void)
          • (): void
          • Returns void

      Returns this

      v0.1.26

      -
    • Removes the specified listener from the listener array for the event named eventName.

      +
    • Removes the specified listener from the listener array for the event named eventName.

      const callback = (stream) => {
      console.log('someone connected!');
      };
      server.on('connection', callback);
      // ...
      server.removeListener('connection', callback);
      @@ -815,7 +815,7 @@

      Returns a reference to the EventEmitter, so that calls can be chained.

      Parameters

      • event: "data"
      • listener: ((chunk: any) => void)
          • (chunk): void
          • Parameters

            • chunk: any

            Returns void

      Returns this

      v0.1.26

      -
    • Removes the specified listener from the listener array for the event named eventName.

      +
    • Removes the specified listener from the listener array for the event named eventName.

      const callback = (stream) => {
      console.log('someone connected!');
      };
      server.on('connection', callback);
      // ...
      server.removeListener('connection', callback);
      @@ -842,7 +842,7 @@

      Returns a reference to the EventEmitter, so that calls can be chained.

      Parameters

      • event: "end"
      • listener: (() => void)
          • (): void
          • Returns void

      Returns this

      v0.1.26

      -
    • Removes the specified listener from the listener array for the event named eventName.

      +
    • Removes the specified listener from the listener array for the event named eventName.

      const callback = (stream) => {
      console.log('someone connected!');
      };
      server.on('connection', callback);
      // ...
      server.removeListener('connection', callback);
      @@ -869,7 +869,7 @@

      Returns a reference to the EventEmitter, so that calls can be chained.

      Parameters

      • event: "error"
      • listener: ((err: Error) => void)
          • (err): void
          • Parameters

            • err: Error

            Returns void

      Returns this

      v0.1.26

      -
    • Removes the specified listener from the listener array for the event named eventName.

      +
    • Removes the specified listener from the listener array for the event named eventName.

      const callback = (stream) => {
      console.log('someone connected!');
      };
      server.on('connection', callback);
      // ...
      server.removeListener('connection', callback);
      @@ -896,7 +896,7 @@

      Returns a reference to the EventEmitter, so that calls can be chained.

      Parameters

      • event: "pause"
      • listener: (() => void)
          • (): void
          • Returns void

      Returns this

      v0.1.26

      -
    • Removes the specified listener from the listener array for the event named eventName.

      +
    • Removes the specified listener from the listener array for the event named eventName.

      const callback = (stream) => {
      console.log('someone connected!');
      };
      server.on('connection', callback);
      // ...
      server.removeListener('connection', callback);
      @@ -923,7 +923,7 @@

      Returns a reference to the EventEmitter, so that calls can be chained.

      Parameters

      • event: "readable"
      • listener: (() => void)
          • (): void
          • Returns void

      Returns this

      v0.1.26

      -
    • Removes the specified listener from the listener array for the event named eventName.

      +
    • Removes the specified listener from the listener array for the event named eventName.

      const callback = (stream) => {
      console.log('someone connected!');
      };
      server.on('connection', callback);
      // ...
      server.removeListener('connection', callback);
      @@ -950,7 +950,7 @@

      Returns a reference to the EventEmitter, so that calls can be chained.

      Parameters

      • event: "resume"
      • listener: (() => void)
          • (): void
          • Returns void

      Returns this

      v0.1.26

      -
    • Removes the specified listener from the listener array for the event named eventName.

      +
    • Removes the specified listener from the listener array for the event named eventName.

      const callback = (stream) => {
      console.log('someone connected!');
      };
      server.on('connection', callback);
      // ...
      server.removeListener('connection', callback);
      @@ -977,7 +977,7 @@

      Returns a reference to the EventEmitter, so that calls can be chained.

      Parameters

      • event: string | symbol
      • listener: ((...args: any[]) => void)
          • (...args): void
          • Parameters

            • Rest...args: any[]

            Returns void

      Returns this

      v0.1.26

      -
    • The readable.resume() method causes an explicitly paused Readable stream to +

    • The readable.resume() method causes an explicitly paused Readable stream to resume emitting 'data' events, switching the stream into flowing mode.

      The readable.resume() method can be used to fully consume the data from a stream without actually processing any of that data:

      @@ -986,7 +986,7 @@

      The readable.resume() method has no effect if there is a 'readable' event listener.

      Returns this

      v0.9.4

      -
    • The readable.setEncoding() method sets the character encoding for +

    • The readable.setEncoding() method sets the character encoding for data read from the Readable stream.

      By default, no encoding is assigned and stream data will be returned as Buffer objects. Setting an encoding causes the stream data to be returned as strings of the specified encoding rather than as Buffer objects. For instance, calling readable.setEncoding('utf8') will cause the @@ -1000,7 +1000,7 @@

      Parameters

      • encoding: BufferEncoding

        The encoding to use.

      Returns this

      v0.9.4

      -
    • By default EventEmitters will print a warning if more than 10 listeners are +

    • By default EventEmitters will print a warning if more than 10 listeners are added for a particular event. This is a useful default that helps finding memory leaks. The emitter.setMaxListeners() method allows the limit to be modified for this specific EventEmitter instance. The value can be set to Infinity (or 0) to indicate an unlimited number of listeners.

      @@ -1013,7 +1013,7 @@

      Parameters

      • fn: ((data: any, options?: Pick<ArrayOptions, "signal">) => boolean | Promise<boolean>)

        a function to call on each chunk of the stream. Async or not.

          • (data, options?): boolean | Promise<boolean>
          • Parameters

            • data: any
            • Optionaloptions: Pick<ArrayOptions, "signal">

            Returns boolean | Promise<boolean>

      • Optionaloptions: ArrayOptions

      Returns Promise<boolean>

      a promise evaluating to true if fn returned a truthy value for at least one of the chunks.

      v17.5.0

      -
    • Sets the 0-based offset in bytes to start streaming from. Throws +

    • Sets the 0-based offset in bytes to start streaming from. Throws an error if this stream has entered flowing mode (e.g. if you've already called on('data'))

      Parameters

      • start: number = 0

        0-based offset in bytes to start streaming from

        @@ -1021,12 +1021,12 @@

        Parameters

        • limit: number

          the number of chunks to take from the readable.

        • Optionaloptions: Pick<ArrayOptions, "signal">

        Returns Readable

        a stream with limit chunks taken.

        v17.5.0

        -
    • This method allows easily obtaining the contents of a stream.

      +
    • This method allows easily obtaining the contents of a stream.

      As this method reads the entire stream into memory, it negates the benefits of streams. It's intended for interoperability and convenience, not as the primary way to consume streams.

      Parameters

      • Optionaloptions: Pick<ArrayOptions, "signal">

      Returns Promise<any[]>

      a promise containing an array with the contents of the stream.

      v17.5.0

      -
    • The readable.unpipe() method detaches a Writable stream previously attached +

    • The readable.unpipe() method detaches a Writable stream previously attached using the pipe method.

      If the destination is not specified, then all pipes are detached.

      If the destination is specified, but no pipe is set up for it, then @@ -1036,7 +1036,7 @@

      Parameters

      • Optionaldestination: WritableStream

        Optional specific stream to unpipe

      Returns this

      v0.9.4

      -
    • Passing chunk as null signals the end of the stream (EOF) and behaves the +

    • Passing chunk as null signals the end of the stream (EOF) and behaves the same as readable.push(null), after which no more data can be written. The EOF signal is put at the end of the buffer and any buffered data will still be flushed.

      @@ -1062,7 +1062,7 @@ be a {string}, {Buffer}, {TypedArray}, {DataView} or null. For object mode streams, chunk may be any JavaScript value.

    • Optionalencoding: BufferEncoding

      Encoding of string chunks. Must be a valid Buffer encoding, such as 'utf8' or 'ascii'.

    Returns void

    v0.9.11

    -
    • Prior to Node.js 0.10, streams did not implement the entire node:stream module API as it is currently defined. (See Compatibility for more +

    • Prior to Node.js 0.10, streams did not implement the entire node:stream module API as it is currently defined. (See Compatibility for more information.)

      When using an older Node.js library that emits 'data' events and has a pause method that is advisory only, the readable.wrap() method can be used to create a Readable stream that uses @@ -1075,7 +1075,7 @@

      Parameters

      • stream: ReadableStream

        An "old style" readable stream

      Returns this

      v0.9.4

      -
    • Experimental

      Listens once to the abort event on the provided signal.

      +
    • Experimental

      Listens once to the abort event on the provided signal.

      Listening to the abort event on abort signals is unsafe and may lead to resource leaks since another third party with the signal can call e.stopImmediatePropagation(). Unfortunately Node.js cannot change @@ -1092,11 +1092,11 @@

      v20.5.0

    • A utility method for creating Readable Streams out of iterators.

      Parameters

      • iterable: Iterable<any> | AsyncIterable<any>

        Object implementing the Symbol.asyncIterator or Symbol.iterator iterable protocol. Emits an 'error' event if a null value is passed.

        -
      • Optionaloptions: ReadableOptions

        Options provided to new stream.Readable([options]). By default, Readable.from() will set options.objectMode to true, unless this is explicitly opted out by setting options.objectMode to false.

        +
      • Optionaloptions: ReadableOptions<Readable>

        Options provided to new stream.Readable([options]). By default, Readable.from() will set options.objectMode to true, unless this is explicitly opted out by setting options.objectMode to false.

      Returns Readable

      v12.3.0, v10.17.0

      -
    • Experimental

      A utility method for creating a Readable from a web ReadableStream.

      -

      Parameters

      • readableStream: ReadableStream<any>
      • Optionaloptions: Pick<ReadableOptions,
            | "signal"
            | "objectMode"
            | "highWaterMark"
            | "encoding">

      Returns Readable

      v17.0.0

      -
    • Returns a copy of the array of listeners for the event named eventName.

      +
    • Experimental

      A utility method for creating a Readable from a web ReadableStream.

      +

      Parameters

      • readableStream: ReadableStream<any>
      • Optionaloptions: Pick<ReadableOptions<Readable>,
            | "signal"
            | "objectMode"
            | "highWaterMark"
            | "encoding">

      Returns Readable

      v17.0.0

      +
    • Returns a copy of the array of listeners for the event named eventName.

      For EventEmitters this behaves exactly the same as calling .listeners on the emitter.

      For EventTargets this is the only way to get the event listeners for the @@ -1117,7 +1117,7 @@

      Parameters

      • emitter: EventEmitter<DefaultEventMap> | EventTarget

      Returns number

      v19.9.0

    • Returns whether the stream has been read from or cancelled.

      Parameters

      • stream: Readable | ReadableStream

      Returns boolean

      v16.8.0

      -
    • A class method that returns the number of listeners for the given eventName registered on the given emitter.

      +
    • A class method that returns the number of listeners for the given eventName registered on the given emitter.

      import { EventEmitter, listenerCount } from 'node:events';

      const myEmitter = new EventEmitter();
      myEmitter.on('event', () => {});
      myEmitter.on('event', () => {});
      console.log(listenerCount(myEmitter, 'event'));
      // Prints: 2
      @@ -1171,4 +1171,4 @@

    Returns void

    v15.4.0

    • Experimental

      A utility method for creating a web ReadableStream from a Readable.

      Parameters

      • streamReadable: Readable
      • Optionaloptions: {
            strategy?: QueuingStrategy<any>;
        }
        • Optionalstrategy?: QueuingStrategy<any>

      Returns ReadableStream<any>

      v17.0.0

      -
    +
    diff --git a/docs/Next/classes/GridFSBucketWriteStream.html b/docs/Next/classes/GridFSBucketWriteStream.html index 296cf071007..eda3bec8d36 100644 --- a/docs/Next/classes/GridFSBucketWriteStream.html +++ b/docs/Next/classes/GridFSBucketWriteStream.html @@ -71,12 +71,12 @@
    chunkSizeBytes: number

    The number of bytes that each chunk will be limited to

    closed: boolean

    Is true after 'close' has been emitted.

    v18.0.0

    -
    destroyed: boolean

    Is true after writable.destroy() has been called.

    +
    destroyed: boolean

    Is true after writable.destroy() has been called.

    v8.0.0

    -
    done: boolean

    Indicates the stream is finished uploading

    +
    done: boolean

    Indicates the stream is finished uploading

    errored: null | Error

    Returns error if the stream has been destroyed with an error.

    v18.0.0

    -
    filename: string

    The name of the file

    +
    filename: string

    The name of the file

    A Collection instance where the file's GridFSFile document is stored

    gridFSFile: null | GridFSFile = null

    The document containing information about the inserted file. This property is defined after the finish event has been emitted. @@ -97,25 +97,25 @@

    writable: boolean

    Is true if it is safe to call writable.write(), which means the stream has not been destroyed, errored, or ended.

    v11.4.0

    -
    writableCorked: number

    Number of times writable.uncork() needs to be +

    writableCorked: number

    Number of times writable.uncork() needs to be called in order to fully uncork the stream.

    v13.2.0, v12.16.0

    -
    writableEnded: boolean

    Is true after writable.end() has been called. This property +

    writableEnded: boolean

    Is true after writable.end() has been called. This property does not indicate whether the data has been flushed, for this use writable.writableFinished instead.

    v12.9.0

    -
    writableFinished: boolean

    Is set to true immediately before the 'finish' event is emitted.

    +
    writableFinished: boolean

    Is set to true immediately before the 'finish' event is emitted.

    v12.6.0

    -
    writableHighWaterMark: number

    Return the value of highWaterMark passed when creating this Writable.

    +
    writableHighWaterMark: number

    Return the value of highWaterMark passed when creating this Writable.

    v9.3.0

    -
    writableLength: number

    This property contains the number of bytes (or objects) in the queue +

    writableLength: number

    This property contains the number of bytes (or objects) in the queue ready to be written. The value provides introspection data regarding the status of the highWaterMark.

    v9.4.0

    -
    writableNeedDrain: boolean

    Is true if the stream's buffer has been full and stream will emit 'drain'.

    +
    writableNeedDrain: boolean

    Is true if the stream's buffer has been full and stream will emit 'drain'.

    v15.2.0, v14.17.0

    -
    writableObjectMode: boolean

    Getter for the property objectMode of a given Writable stream.

    +
    writableObjectMode: boolean

    Getter for the property objectMode of a given Writable stream.

    v12.3.0

    -
    writeConcern?: WriteConcern

    The write concern setting to be used with every insert operation

    +
    writeConcern?: WriteConcern

    The write concern setting to be used with every insert operation

    captureRejections: boolean

    Value: boolean

    Change the default captureRejections option on all new EventEmitter objects.

    v13.4.0, v12.16.0

    @@ -151,7 +151,7 @@

    Installing a listener using this symbol does not change the behavior once an 'error' event is emitted. Therefore, the process will still crash if no regular 'error' listener is installed.

    v13.6.0, v12.17.0

    -

    Methods

    • Parameters

      • error: null | Error
      • callback: ((error?: null | Error) => void)
          • (error?): void
          • Parameters

            • Optionalerror: null | Error

            Returns void

      Returns void

    • Parameters

      • chunks: {
            chunk: any;
            encoding: BufferEncoding;
        }[]
      • callback: ((error?: null | Error) => void)
          • (error?): void
          • Parameters

            • Optionalerror: null | Error

            Returns void

      Returns void

    • Type Parameters

      • K

      Parameters

      • error: Error
      • event: string | symbol
      • Rest...args: AnyRest

      Returns void

    • Places this write stream into an aborted state (all future writes fail) +

    Methods

    • Parameters

      • error: null | Error
      • callback: ((error?: null | Error) => void)
          • (error?): void
          • Parameters

            • Optionalerror: null | Error

            Returns void

      Returns void

    • Parameters

      • chunks: {
            chunk: any;
            encoding: BufferEncoding;
        }[]
      • callback: ((error?: null | Error) => void)
          • (error?): void
          • Parameters

            • Optionalerror: null | Error

            Returns void

      Returns void

    • Type Parameters

      • K

      Parameters

      • error: Error
      • event: string | symbol
      • Rest...args: AnyRest

      Returns void

    • Places this write stream into an aborted state (all future writes fail) and deletes all chunks that have already been written.

      Returns Promise<void>

    • Event emitter The defined events on documents including:

      @@ -163,19 +163,19 @@
    • pipe
    • unpipe
    • -

      Parameters

      • event: "close"
      • listener: (() => void)
          • (): void
          • Returns void

      Returns this

    • Alias for emitter.on(eventName, listener).

      +

      Parameters

      • event: "close"
      • listener: (() => void)
          • (): void
          • Returns void

      Returns this

    • Alias for emitter.on(eventName, listener).

      Parameters

      • event: "drain"
      • listener: (() => void)
          • (): void
          • Returns void

      Returns this

      v0.1.26

      -
    • Alias for emitter.on(eventName, listener).

      +
    • Alias for emitter.on(eventName, listener).

      Parameters

      • event: "error"
      • listener: ((err: Error) => void)
          • (err): void
          • Parameters

            • err: Error

            Returns void

      Returns this

      v0.1.26

      -
    • Alias for emitter.on(eventName, listener).

      +
    • Alias for emitter.on(eventName, listener).

      Parameters

      • event: "finish"
      • listener: (() => void)
          • (): void
          • Returns void

      Returns this

      v0.1.26

      -
    • Alias for emitter.on(eventName, listener).

      +
    • Alias for emitter.on(eventName, listener).

      Parameters

      • event: "pipe"
      • listener: ((src: Readable) => void)
          • (src): void
          • Parameters

            • src: Readable

            Returns void

      Returns this

      v0.1.26

      -
    • Alias for emitter.on(eventName, listener).

      +
    • Alias for emitter.on(eventName, listener).

      Parameters

      • event: "unpipe"
      • listener: ((src: Readable) => void)
          • (src): void
          • Parameters

            • src: Readable

            Returns void

      Returns this

      v0.1.26

      -
    • Alias for emitter.on(eventName, listener).

      +
    • Alias for emitter.on(eventName, listener).

      Parameters

      • event: string | symbol
      • listener: ((...args: any[]) => void)
          • (...args): void
          • Parameters

            • Rest...args: any[]

            Returns void

      Returns this

      v0.1.26

      -
    • Type Parameters

      • T extends ReadableStream

      Parameters

      • stream:
            | ComposeFnParam
            | T
            | Iterable<T>
            | AsyncIterable<T>
      • Optionaloptions: {
            signal: AbortSignal;
        }
        • signal: AbortSignal

      Returns T

    • The writable.cork() method forces all written data to be buffered in memory. +

    • Type Parameters

      • T extends ReadableStream

      Parameters

      • stream:
            | ComposeFnParam
            | T
            | Iterable<T>
            | AsyncIterable<T>
      • Optionaloptions: {
            signal: AbortSignal;
        }
        • signal: AbortSignal

      Returns T

    • The writable.cork() method forces all written data to be buffered in memory. The buffered data will be flushed when either the uncork or end methods are called.

      The primary intent of writable.cork() is to accommodate a situation in which several small chunks are written to the stream in rapid succession. Instead of @@ -185,7 +185,7 @@ to be processed. However, use of writable.cork() without implementing writable._writev() may have an adverse effect on throughput.

      See also: writable.uncork(), writable._writev().

      Returns void

      v0.11.2

      -
    • Destroy the stream. Optionally emit an 'error' event, and emit a 'close' event (unless emitClose is set to false). After this call, the writable +

    • Destroy the stream. Optionally emit an 'error' event, and emit a 'close' event (unless emitClose is set to false). After this call, the writable stream has ended and subsequent calls to write() or end() will result in an ERR_STREAM_DESTROYED error. This is a destructive and immediate way to destroy a stream. Previous calls to write() may not have drained, and may trigger an ERR_STREAM_DESTROYED error. @@ -197,56 +197,56 @@ but instead implement writable._destroy().

      Parameters

      • Optionalerror: Error

        Optional, an error to emit with 'error' event.

      Returns this

      v8.0.0

      -
    • Synchronously calls each of the listeners registered for the event named eventName, in the order they were registered, passing the supplied arguments +

    • Synchronously calls each of the listeners registered for the event named eventName, in the order they were registered, passing the supplied arguments to each.

      Returns true if the event had listeners, false otherwise.

      import { EventEmitter } from 'node:events';
      const myEmitter = new EventEmitter();

      // First listener
      myEmitter.on('event', function firstListener() {
      console.log('Helloooo! first listener');
      });
      // Second listener
      myEmitter.on('event', function secondListener(arg1, arg2) {
      console.log(`event with parameters ${arg1}, ${arg2} in second listener`);
      });
      // Third listener
      myEmitter.on('event', function thirdListener(...args) {
      const parameters = args.join(', ');
      console.log(`event with parameters ${parameters} in third listener`);
      });

      console.log(myEmitter.listeners('event'));

      myEmitter.emit('event', 1, 2, 3, 4, 5);

      // Prints:
      // [
      // [Function: firstListener],
      // [Function: secondListener],
      // [Function: thirdListener]
      // ]
      // Helloooo! first listener
      // event with parameters 1, 2 in second listener
      // event with parameters 1, 2, 3, 4, 5 in third listener

      Parameters

      • event: "close"

      Returns boolean

      v0.1.26

      -
    • Synchronously calls each of the listeners registered for the event named eventName, in the order they were registered, passing the supplied arguments +

    • Synchronously calls each of the listeners registered for the event named eventName, in the order they were registered, passing the supplied arguments to each.

      Returns true if the event had listeners, false otherwise.

      import { EventEmitter } from 'node:events';
      const myEmitter = new EventEmitter();

      // First listener
      myEmitter.on('event', function firstListener() {
      console.log('Helloooo! first listener');
      });
      // Second listener
      myEmitter.on('event', function secondListener(arg1, arg2) {
      console.log(`event with parameters ${arg1}, ${arg2} in second listener`);
      });
      // Third listener
      myEmitter.on('event', function thirdListener(...args) {
      const parameters = args.join(', ');
      console.log(`event with parameters ${parameters} in third listener`);
      });

      console.log(myEmitter.listeners('event'));

      myEmitter.emit('event', 1, 2, 3, 4, 5);

      // Prints:
      // [
      // [Function: firstListener],
      // [Function: secondListener],
      // [Function: thirdListener]
      // ]
      // Helloooo! first listener
      // event with parameters 1, 2 in second listener
      // event with parameters 1, 2, 3, 4, 5 in third listener

      Parameters

      • event: "drain"

      Returns boolean

      v0.1.26

      -
    • Synchronously calls each of the listeners registered for the event named eventName, in the order they were registered, passing the supplied arguments +

    • Synchronously calls each of the listeners registered for the event named eventName, in the order they were registered, passing the supplied arguments to each.

      Returns true if the event had listeners, false otherwise.

      import { EventEmitter } from 'node:events';
      const myEmitter = new EventEmitter();

      // First listener
      myEmitter.on('event', function firstListener() {
      console.log('Helloooo! first listener');
      });
      // Second listener
      myEmitter.on('event', function secondListener(arg1, arg2) {
      console.log(`event with parameters ${arg1}, ${arg2} in second listener`);
      });
      // Third listener
      myEmitter.on('event', function thirdListener(...args) {
      const parameters = args.join(', ');
      console.log(`event with parameters ${parameters} in third listener`);
      });

      console.log(myEmitter.listeners('event'));

      myEmitter.emit('event', 1, 2, 3, 4, 5);

      // Prints:
      // [
      // [Function: firstListener],
      // [Function: secondListener],
      // [Function: thirdListener]
      // ]
      // Helloooo! first listener
      // event with parameters 1, 2 in second listener
      // event with parameters 1, 2, 3, 4, 5 in third listener

      Parameters

      • event: "error"
      • err: Error

      Returns boolean

      v0.1.26

      -
    • Synchronously calls each of the listeners registered for the event named eventName, in the order they were registered, passing the supplied arguments +

    • Synchronously calls each of the listeners registered for the event named eventName, in the order they were registered, passing the supplied arguments to each.

      Returns true if the event had listeners, false otherwise.

      import { EventEmitter } from 'node:events';
      const myEmitter = new EventEmitter();

      // First listener
      myEmitter.on('event', function firstListener() {
      console.log('Helloooo! first listener');
      });
      // Second listener
      myEmitter.on('event', function secondListener(arg1, arg2) {
      console.log(`event with parameters ${arg1}, ${arg2} in second listener`);
      });
      // Third listener
      myEmitter.on('event', function thirdListener(...args) {
      const parameters = args.join(', ');
      console.log(`event with parameters ${parameters} in third listener`);
      });

      console.log(myEmitter.listeners('event'));

      myEmitter.emit('event', 1, 2, 3, 4, 5);

      // Prints:
      // [
      // [Function: firstListener],
      // [Function: secondListener],
      // [Function: thirdListener]
      // ]
      // Helloooo! first listener
      // event with parameters 1, 2 in second listener
      // event with parameters 1, 2, 3, 4, 5 in third listener

      Parameters

      • event: "finish"

      Returns boolean

      v0.1.26

      -
    • Synchronously calls each of the listeners registered for the event named eventName, in the order they were registered, passing the supplied arguments +

    • Synchronously calls each of the listeners registered for the event named eventName, in the order they were registered, passing the supplied arguments to each.

      Returns true if the event had listeners, false otherwise.

      import { EventEmitter } from 'node:events';
      const myEmitter = new EventEmitter();

      // First listener
      myEmitter.on('event', function firstListener() {
      console.log('Helloooo! first listener');
      });
      // Second listener
      myEmitter.on('event', function secondListener(arg1, arg2) {
      console.log(`event with parameters ${arg1}, ${arg2} in second listener`);
      });
      // Third listener
      myEmitter.on('event', function thirdListener(...args) {
      const parameters = args.join(', ');
      console.log(`event with parameters ${parameters} in third listener`);
      });

      console.log(myEmitter.listeners('event'));

      myEmitter.emit('event', 1, 2, 3, 4, 5);

      // Prints:
      // [
      // [Function: firstListener],
      // [Function: secondListener],
      // [Function: thirdListener]
      // ]
      // Helloooo! first listener
      // event with parameters 1, 2 in second listener
      // event with parameters 1, 2, 3, 4, 5 in third listener

      Parameters

      • event: "pipe"
      • src: Readable

      Returns boolean

      v0.1.26

      -
    • Synchronously calls each of the listeners registered for the event named eventName, in the order they were registered, passing the supplied arguments +

    • Synchronously calls each of the listeners registered for the event named eventName, in the order they were registered, passing the supplied arguments to each.

      Returns true if the event had listeners, false otherwise.

      import { EventEmitter } from 'node:events';
      const myEmitter = new EventEmitter();

      // First listener
      myEmitter.on('event', function firstListener() {
      console.log('Helloooo! first listener');
      });
      // Second listener
      myEmitter.on('event', function secondListener(arg1, arg2) {
      console.log(`event with parameters ${arg1}, ${arg2} in second listener`);
      });
      // Third listener
      myEmitter.on('event', function thirdListener(...args) {
      const parameters = args.join(', ');
      console.log(`event with parameters ${parameters} in third listener`);
      });

      console.log(myEmitter.listeners('event'));

      myEmitter.emit('event', 1, 2, 3, 4, 5);

      // Prints:
      // [
      // [Function: firstListener],
      // [Function: secondListener],
      // [Function: thirdListener]
      // ]
      // Helloooo! first listener
      // event with parameters 1, 2 in second listener
      // event with parameters 1, 2, 3, 4, 5 in third listener

      Parameters

      • event: "unpipe"
      • src: Readable

      Returns boolean

      v0.1.26

      -
    • Synchronously calls each of the listeners registered for the event named eventName, in the order they were registered, passing the supplied arguments +

    • Synchronously calls each of the listeners registered for the event named eventName, in the order they were registered, passing the supplied arguments to each.

      Returns true if the event had listeners, false otherwise.

      import { EventEmitter } from 'node:events';
      const myEmitter = new EventEmitter();

      // First listener
      myEmitter.on('event', function firstListener() {
      console.log('Helloooo! first listener');
      });
      // Second listener
      myEmitter.on('event', function secondListener(arg1, arg2) {
      console.log(`event with parameters ${arg1}, ${arg2} in second listener`);
      });
      // Third listener
      myEmitter.on('event', function thirdListener(...args) {
      const parameters = args.join(', ');
      console.log(`event with parameters ${parameters} in third listener`);
      });

      console.log(myEmitter.listeners('event'));

      myEmitter.emit('event', 1, 2, 3, 4, 5);

      // Prints:
      // [
      // [Function: firstListener],
      // [Function: secondListener],
      // [Function: thirdListener]
      // ]
      // Helloooo! first listener
      // event with parameters 1, 2 in second listener
      // event with parameters 1, 2, 3, 4, 5 in third listener

      Parameters

      • event: string | symbol
      • Rest...args: any[]

      Returns boolean

      v0.1.26

      -
    • Calling the writable.end() method signals that no more data will be written +

    • Calling the writable.end() method signals that no more data will be written to the Writable. The optional chunk and encoding arguments allow one final additional chunk of data to be written immediately before closing the stream.

      @@ -255,7 +255,7 @@

      Parameters

      • Optionalcb: (() => void)
          • (): void
          • Returns void

      Returns this

      v0.9.4

      -
    • Parameters

      • chunk: any
      • Optionalcb: (() => void)
          • (): void
          • Returns void

      Returns this

    • Parameters

      • chunk: any
      • encoding: BufferEncoding
      • Optionalcb: (() => void)
          • (): void
          • Returns void

      Returns this

    • Returns an array listing the events for which the emitter has registered +

    • Parameters

      • chunk: any
      • Optionalcb: (() => void)
          • (): void
          • Returns void

      Returns this

    • Parameters

      • chunk: any
      • encoding: BufferEncoding
      • Optionalcb: (() => void)
          • (): void
          • Returns void

      Returns this

    • Returns an array listing the events for which the emitter has registered listeners. The values in the array are strings or Symbols.

      import { EventEmitter } from 'node:events';

      const myEE = new EventEmitter();
      myEE.on('foo', () => {});
      myEE.on('bar', () => {});

      const sym = Symbol('symbol');
      myEE.on(sym, () => {});

      console.log(myEE.eventNames());
      // Prints: [ 'foo', 'bar', Symbol(symbol) ]
      @@ -292,7 +292,7 @@

      Parameters

      • event: "close"
      • listener: (() => void)

        The callback function

          • (): void
          • Returns void

      Returns this

      v0.1.101

      -
    • Adds the listener function to the end of the listeners array for the event +

    • Adds the listener function to the end of the listeners array for the event named eventName. No checks are made to see if the listener has already been added. Multiple calls passing the same combination of eventName and listener will result in the listener being added, and called, multiple times.

      @@ -307,7 +307,7 @@

      Parameters

      • event: "drain"
      • listener: (() => void)

        The callback function

          • (): void
          • Returns void

      Returns this

      v0.1.101

      -
    • Adds the listener function to the end of the listeners array for the event +

    • Adds the listener function to the end of the listeners array for the event named eventName. No checks are made to see if the listener has already been added. Multiple calls passing the same combination of eventName and listener will result in the listener being added, and called, multiple times.

      @@ -322,7 +322,7 @@

      Parameters

      • event: "error"
      • listener: ((err: Error) => void)

        The callback function

          • (err): void
          • Parameters

            • err: Error

            Returns void

      Returns this

      v0.1.101

      -
    • Adds the listener function to the end of the listeners array for the event +

    • Adds the listener function to the end of the listeners array for the event named eventName. No checks are made to see if the listener has already been added. Multiple calls passing the same combination of eventName and listener will result in the listener being added, and called, multiple times.

      @@ -337,7 +337,7 @@

      Parameters

      • event: "finish"
      • listener: (() => void)

        The callback function

          • (): void
          • Returns void

      Returns this

      v0.1.101

      -
    • Adds the listener function to the end of the listeners array for the event +

    • Adds the listener function to the end of the listeners array for the event named eventName. No checks are made to see if the listener has already been added. Multiple calls passing the same combination of eventName and listener will result in the listener being added, and called, multiple times.

      @@ -352,7 +352,7 @@

      Parameters

      • event: "pipe"
      • listener: ((src: Readable) => void)

        The callback function

          • (src): void
          • Parameters

            • src: Readable

            Returns void

      Returns this

      v0.1.101

      -
    • Adds the listener function to the end of the listeners array for the event +

    • Adds the listener function to the end of the listeners array for the event named eventName. No checks are made to see if the listener has already been added. Multiple calls passing the same combination of eventName and listener will result in the listener being added, and called, multiple times.

      @@ -367,7 +367,7 @@

      Parameters

      • event: "unpipe"
      • listener: ((src: Readable) => void)

        The callback function

          • (src): void
          • Parameters

            • src: Readable

            Returns void

      Returns this

      v0.1.101

      -
    • Adds the listener function to the end of the listeners array for the event +

    • Adds the listener function to the end of the listeners array for the event named eventName. No checks are made to see if the listener has already been added. Multiple calls passing the same combination of eventName and listener will result in the listener being added, and called, multiple times.

      @@ -382,7 +382,7 @@

      Parameters

      • event: string | symbol
      • listener: ((...args: any[]) => void)

        The callback function

          • (...args): void
          • Parameters

            • Rest...args: any[]

            Returns void

      Returns this

      v0.1.101

      -
    • Adds a one-time listener function for the event named eventName. The +

    • Adds a one-time listener function for the event named eventName. The next time eventName is triggered, this listener is removed and then invoked.

      server.once('connection', (stream) => {
      console.log('Ah, we have our first user!');
      });
      @@ -395,7 +395,7 @@

      Parameters

      • event: "close"
      • listener: (() => void)

        The callback function

          • (): void
          • Returns void

      Returns this

      v0.3.0

      -
    • Adds a one-time listener function for the event named eventName. The +

    • Adds a one-time listener function for the event named eventName. The next time eventName is triggered, this listener is removed and then invoked.

      server.once('connection', (stream) => {
      console.log('Ah, we have our first user!');
      });
      @@ -408,7 +408,7 @@

      Parameters

      • event: "drain"
      • listener: (() => void)

        The callback function

          • (): void
          • Returns void

      Returns this

      v0.3.0

      -
    • Adds a one-time listener function for the event named eventName. The +

    • Adds a one-time listener function for the event named eventName. The next time eventName is triggered, this listener is removed and then invoked.

      server.once('connection', (stream) => {
      console.log('Ah, we have our first user!');
      });
      @@ -421,7 +421,7 @@

      Parameters

      • event: "error"
      • listener: ((err: Error) => void)

        The callback function

          • (err): void
          • Parameters

            • err: Error

            Returns void

      Returns this

      v0.3.0

      -
    • Adds a one-time listener function for the event named eventName. The +

    • Adds a one-time listener function for the event named eventName. The next time eventName is triggered, this listener is removed and then invoked.

      server.once('connection', (stream) => {
      console.log('Ah, we have our first user!');
      });
      @@ -434,7 +434,7 @@

      Parameters

      • event: "finish"
      • listener: (() => void)

        The callback function

          • (): void
          • Returns void

      Returns this

      v0.3.0

      -
    • Adds a one-time listener function for the event named eventName. The +

    • Adds a one-time listener function for the event named eventName. The next time eventName is triggered, this listener is removed and then invoked.

      server.once('connection', (stream) => {
      console.log('Ah, we have our first user!');
      });
      @@ -447,7 +447,7 @@

      Parameters

      • event: "pipe"
      • listener: ((src: Readable) => void)

        The callback function

          • (src): void
          • Parameters

            • src: Readable

            Returns void

      Returns this

      v0.3.0

      -
    • Adds a one-time listener function for the event named eventName. The +

    • Adds a one-time listener function for the event named eventName. The next time eventName is triggered, this listener is removed and then invoked.

      server.once('connection', (stream) => {
      console.log('Ah, we have our first user!');
      });
      @@ -460,7 +460,7 @@

      Parameters

      • event: "unpipe"
      • listener: ((src: Readable) => void)

        The callback function

          • (src): void
          • Parameters

            • src: Readable

            Returns void

      Returns this

      v0.3.0

      -
    • Adds a one-time listener function for the event named eventName. The +

    • Adds a one-time listener function for the event named eventName. The next time eventName is triggered, this listener is removed and then invoked.

      server.once('connection', (stream) => {
      console.log('Ah, we have our first user!');
      });
      @@ -473,7 +473,7 @@

      Parameters

      • event: string | symbol
      • listener: ((...args: any[]) => void)

        The callback function

          • (...args): void
          • Parameters

            • Rest...args: any[]

            Returns void

      Returns this

      v0.3.0

      -
    • Type Parameters

      • T extends WritableStream

      Parameters

      • destination: T
      • Optionaloptions: {
            end?: boolean;
        }
        • Optionalend?: boolean

      Returns T

    • Adds the listener function to the beginning of the listeners array for the +

    • Type Parameters

      • T extends WritableStream

      Parameters

      • destination: T
      • Optionaloptions: {
            end?: boolean;
        }
        • Optionalend?: boolean

      Returns T

    • Adds the listener function to the beginning of the listeners array for the event named eventName. No checks are made to see if the listener has already been added. Multiple calls passing the same combination of eventName and listener will result in the listener being added, and called, multiple times.

      @@ -483,7 +483,7 @@

      Returns a reference to the EventEmitter, so that calls can be chained.

      Parameters

      • event: "close"
      • listener: (() => void)

        The callback function

          • (): void
          • Returns void

      Returns this

      v6.0.0

      -
    • Adds the listener function to the beginning of the listeners array for the +

    • Adds the listener function to the beginning of the listeners array for the event named eventName. No checks are made to see if the listener has already been added. Multiple calls passing the same combination of eventName and listener will result in the listener being added, and called, multiple times.

      @@ -493,7 +493,7 @@

      Returns a reference to the EventEmitter, so that calls can be chained.

      Parameters

      • event: "drain"
      • listener: (() => void)

        The callback function

          • (): void
          • Returns void

      Returns this

      v6.0.0

      -
    • Adds the listener function to the beginning of the listeners array for the +

    • Adds the listener function to the beginning of the listeners array for the event named eventName. No checks are made to see if the listener has already been added. Multiple calls passing the same combination of eventName and listener will result in the listener being added, and called, multiple times.

      @@ -503,7 +503,7 @@

      Returns a reference to the EventEmitter, so that calls can be chained.

      Parameters

      • event: "error"
      • listener: ((err: Error) => void)

        The callback function

          • (err): void
          • Parameters

            • err: Error

            Returns void

      Returns this

      v6.0.0

      -
    • Adds the listener function to the beginning of the listeners array for the +

    • Adds the listener function to the beginning of the listeners array for the event named eventName. No checks are made to see if the listener has already been added. Multiple calls passing the same combination of eventName and listener will result in the listener being added, and called, multiple times.

      @@ -513,7 +513,7 @@

      Returns a reference to the EventEmitter, so that calls can be chained.

      Parameters

      • event: "finish"
      • listener: (() => void)

        The callback function

          • (): void
          • Returns void

      Returns this

      v6.0.0

      -
    • Adds the listener function to the beginning of the listeners array for the +

    • Adds the listener function to the beginning of the listeners array for the event named eventName. No checks are made to see if the listener has already been added. Multiple calls passing the same combination of eventName and listener will result in the listener being added, and called, multiple times.

      @@ -523,7 +523,7 @@

      Returns a reference to the EventEmitter, so that calls can be chained.

      Parameters

      • event: "pipe"
      • listener: ((src: Readable) => void)

        The callback function

          • (src): void
          • Parameters

            • src: Readable

            Returns void

      Returns this

      v6.0.0

      -
    • Adds the listener function to the beginning of the listeners array for the +

    • Adds the listener function to the beginning of the listeners array for the event named eventName. No checks are made to see if the listener has already been added. Multiple calls passing the same combination of eventName and listener will result in the listener being added, and called, multiple times.

      @@ -533,7 +533,7 @@

      Returns a reference to the EventEmitter, so that calls can be chained.

      Parameters

      • event: "unpipe"
      • listener: ((src: Readable) => void)

        The callback function

          • (src): void
          • Parameters

            • src: Readable

            Returns void

      Returns this

      v6.0.0

      -
    • Adds the listener function to the beginning of the listeners array for the +

    • Adds the listener function to the beginning of the listeners array for the event named eventName. No checks are made to see if the listener has already been added. Multiple calls passing the same combination of eventName and listener will result in the listener being added, and called, multiple times.

      @@ -543,7 +543,7 @@

      Returns a reference to the EventEmitter, so that calls can be chained.

      Parameters

      • event: string | symbol
      • listener: ((...args: any[]) => void)

        The callback function

          • (...args): void
          • Parameters

            • Rest...args: any[]

            Returns void

      Returns this

      v6.0.0

      -
    • Adds a one-timelistener function for the event named eventName to the beginning of the listeners array. The next time eventName is triggered, this +

    • Adds a one-timelistener function for the event named eventName to the beginning of the listeners array. The next time eventName is triggered, this listener is removed, and then invoked.

      server.prependOnceListener('connection', (stream) => {
      console.log('Ah, we have our first user!');
      });
      @@ -551,7 +551,7 @@

      Returns a reference to the EventEmitter, so that calls can be chained.

      Parameters

      • event: "close"
      • listener: (() => void)

        The callback function

          • (): void
          • Returns void

      Returns this

      v6.0.0

      -
    • Adds a one-timelistener function for the event named eventName to the beginning of the listeners array. The next time eventName is triggered, this +

    • Adds a one-timelistener function for the event named eventName to the beginning of the listeners array. The next time eventName is triggered, this listener is removed, and then invoked.

      server.prependOnceListener('connection', (stream) => {
      console.log('Ah, we have our first user!');
      });
      @@ -559,7 +559,7 @@

      Returns a reference to the EventEmitter, so that calls can be chained.

      Parameters

      • event: "drain"
      • listener: (() => void)

        The callback function

          • (): void
          • Returns void

      Returns this

      v6.0.0

      -
    • Adds a one-timelistener function for the event named eventName to the beginning of the listeners array. The next time eventName is triggered, this +

    • Adds a one-timelistener function for the event named eventName to the beginning of the listeners array. The next time eventName is triggered, this listener is removed, and then invoked.

      server.prependOnceListener('connection', (stream) => {
      console.log('Ah, we have our first user!');
      });
      @@ -567,7 +567,7 @@

      Returns a reference to the EventEmitter, so that calls can be chained.

      Parameters

      • event: "error"
      • listener: ((err: Error) => void)

        The callback function

          • (err): void
          • Parameters

            • err: Error

            Returns void

      Returns this

      v6.0.0

      -
    • Adds a one-timelistener function for the event named eventName to the beginning of the listeners array. The next time eventName is triggered, this +

    • Adds a one-timelistener function for the event named eventName to the beginning of the listeners array. The next time eventName is triggered, this listener is removed, and then invoked.

      server.prependOnceListener('connection', (stream) => {
      console.log('Ah, we have our first user!');
      });
      @@ -575,7 +575,7 @@

      Returns a reference to the EventEmitter, so that calls can be chained.

      Parameters

      • event: "finish"
      • listener: (() => void)

        The callback function

          • (): void
          • Returns void

      Returns this

      v6.0.0

      -
    • Adds a one-timelistener function for the event named eventName to the beginning of the listeners array. The next time eventName is triggered, this +

    • Adds a one-timelistener function for the event named eventName to the beginning of the listeners array. The next time eventName is triggered, this listener is removed, and then invoked.

      server.prependOnceListener('connection', (stream) => {
      console.log('Ah, we have our first user!');
      });
      @@ -583,7 +583,7 @@

      Returns a reference to the EventEmitter, so that calls can be chained.

      Parameters

      • event: "pipe"
      • listener: ((src: Readable) => void)

        The callback function

          • (src): void
          • Parameters

            • src: Readable

            Returns void

      Returns this

      v6.0.0

      -
    • Adds a one-timelistener function for the event named eventName to the beginning of the listeners array. The next time eventName is triggered, this +

    • Adds a one-timelistener function for the event named eventName to the beginning of the listeners array. The next time eventName is triggered, this listener is removed, and then invoked.

      server.prependOnceListener('connection', (stream) => {
      console.log('Ah, we have our first user!');
      });
      @@ -591,7 +591,7 @@

      Returns a reference to the EventEmitter, so that calls can be chained.

      Parameters

      • event: "unpipe"
      • listener: ((src: Readable) => void)

        The callback function

          • (src): void
          • Parameters

            • src: Readable

            Returns void

      Returns this

      v6.0.0

      -
    • Adds a one-timelistener function for the event named eventName to the beginning of the listeners array. The next time eventName is triggered, this +

    • Adds a one-timelistener function for the event named eventName to the beginning of the listeners array. The next time eventName is triggered, this listener is removed, and then invoked.

      server.prependOnceListener('connection', (stream) => {
      console.log('Ah, we have our first user!');
      });
      @@ -599,7 +599,7 @@

      Returns a reference to the EventEmitter, so that calls can be chained.

      Parameters

      • event: string | symbol
      • listener: ((...args: any[]) => void)

        The callback function

          • (...args): void
          • Parameters

            • Rest...args: any[]

            Returns void

      Returns this

      v6.0.0

      -
    • Returns a copy of the array of listeners for the event named eventName, +

    • Returns a copy of the array of listeners for the event named eventName, including any wrappers (such as those created by .once()).

      import { EventEmitter } from 'node:events';
      const emitter = new EventEmitter();
      emitter.once('log', () => console.log('log once'));

      // Returns a new Array with a function `onceWrapper` which has a property
      // `listener` which contains the original listener bound above
      const listeners = emitter.rawListeners('log');
      const logFnWrapper = listeners[0];

      // Logs "log once" to the console and does not unbind the `once` event
      logFnWrapper.listener();

      // Logs "log once" to the console and removes the listener
      logFnWrapper();

      emitter.on('log', () => console.log('log persistently'));
      // Will return a new Array with a single function bound by `.on()` above
      const newListeners = emitter.rawListeners('log');

      // Logs "log persistently" twice
      newListeners[0]();
      emitter.emit('log');
      @@ -638,7 +638,7 @@

      Returns a reference to the EventEmitter, so that calls can be chained.

      Parameters

      • event: "close"
      • listener: (() => void)
          • (): void
          • Returns void

      Returns this

      v0.1.26

      -
    • Removes the specified listener from the listener array for the event named eventName.

      +
    • Removes the specified listener from the listener array for the event named eventName.

      const callback = (stream) => {
      console.log('someone connected!');
      };
      server.on('connection', callback);
      // ...
      server.removeListener('connection', callback);
      @@ -665,7 +665,7 @@

      Returns a reference to the EventEmitter, so that calls can be chained.

      Parameters

      • event: "drain"
      • listener: (() => void)
          • (): void
          • Returns void

      Returns this

      v0.1.26

      -
    • Removes the specified listener from the listener array for the event named eventName.

      +
    • Removes the specified listener from the listener array for the event named eventName.

      const callback = (stream) => {
      console.log('someone connected!');
      };
      server.on('connection', callback);
      // ...
      server.removeListener('connection', callback);
      @@ -692,7 +692,7 @@

      Returns a reference to the EventEmitter, so that calls can be chained.

      Parameters

      • event: "error"
      • listener: ((err: Error) => void)
          • (err): void
          • Parameters

            • err: Error

            Returns void

      Returns this

      v0.1.26

      -
    • Removes the specified listener from the listener array for the event named eventName.

      +
    • Removes the specified listener from the listener array for the event named eventName.

      const callback = (stream) => {
      console.log('someone connected!');
      };
      server.on('connection', callback);
      // ...
      server.removeListener('connection', callback);
      @@ -719,7 +719,7 @@

      Returns a reference to the EventEmitter, so that calls can be chained.

      Parameters

      • event: "finish"
      • listener: (() => void)
          • (): void
          • Returns void

      Returns this

      v0.1.26

      -
    • Removes the specified listener from the listener array for the event named eventName.

      +
    • Removes the specified listener from the listener array for the event named eventName.

      const callback = (stream) => {
      console.log('someone connected!');
      };
      server.on('connection', callback);
      // ...
      server.removeListener('connection', callback);
      @@ -746,7 +746,7 @@

      Returns a reference to the EventEmitter, so that calls can be chained.

      Parameters

      • event: "pipe"
      • listener: ((src: Readable) => void)
          • (src): void
          • Parameters

            • src: Readable

            Returns void

      Returns this

      v0.1.26

      -
    • Removes the specified listener from the listener array for the event named eventName.

      +
    • Removes the specified listener from the listener array for the event named eventName.

      const callback = (stream) => {
      console.log('someone connected!');
      };
      server.on('connection', callback);
      // ...
      server.removeListener('connection', callback);
      @@ -773,7 +773,7 @@

      Returns a reference to the EventEmitter, so that calls can be chained.

      Parameters

      • event: "unpipe"
      • listener: ((src: Readable) => void)
          • (src): void
          • Parameters

            • src: Readable

            Returns void

      Returns this

      v0.1.26

      -
    • Removes the specified listener from the listener array for the event named eventName.

      +
    • Removes the specified listener from the listener array for the event named eventName.

      const callback = (stream) => {
      console.log('someone connected!');
      };
      server.on('connection', callback);
      // ...
      server.removeListener('connection', callback);
      @@ -800,10 +800,10 @@

      Returns a reference to the EventEmitter, so that calls can be chained.

      Parameters

      • event: string | symbol
      • listener: ((...args: any[]) => void)
          • (...args): void
          • Parameters

            • Rest...args: any[]

            Returns void

      Returns this

      v0.1.26

      -
    • The writable.setDefaultEncoding() method sets the default encoding for a Writable stream.

      +
    • The writable.setDefaultEncoding() method sets the default encoding for a Writable stream.

      Parameters

      • encoding: BufferEncoding

        The new default encoding

      Returns this

      v0.11.15

      -
    • By default EventEmitters will print a warning if more than 10 listeners are +

    • By default EventEmitters will print a warning if more than 10 listeners are added for a particular event. This is a useful default that helps finding memory leaks. The emitter.setMaxListeners() method allows the limit to be modified for this specific EventEmitter instance. The value can be set to Infinity (or 0) to indicate an unlimited number of listeners.

      @@ -824,7 +824,7 @@

      See also: writable.cork().

      Returns void

      v0.11.2

      -
    • The writable.write() method writes some data to the stream, and calls the +

    • The writable.write() method writes some data to the stream, and calls the supplied callback once the data has been fully handled. If an error occurs, the callback will be called with the error as its first argument. The callback is called asynchronously and before 'error' is @@ -860,7 +860,7 @@

    • Optionalcallback: ((error: undefined | null | Error) => void)

      Callback for when this chunk of data is flushed.

        • (error): void
        • Parameters

          • error: undefined | null | Error

          Returns void

    Returns boolean

    false if the stream wishes for the calling code to wait for the 'drain' event to be emitted before continuing to write additional data; otherwise true.

    v0.9.4

    -
  • Parameters

    • chunk: any
    • encoding: BufferEncoding
    • Optionalcallback: ((error: undefined | null | Error) => void)
        • (error): void
        • Parameters

          • error: undefined | null | Error

          Returns void

    Returns boolean

    • Experimental

      Listens once to the abort event on the provided signal.

      +
    • Parameters

      • chunk: any
      • encoding: BufferEncoding
      • Optionalcallback: ((error: undefined | null | Error) => void)
          • (error): void
          • Parameters

            • error: undefined | null | Error

            Returns void

      Returns boolean

    • Experimental

      Listens once to the abort event on the provided signal.

      Listening to the abort event on abort signals is unsafe and may lead to resource leaks since another third party with the signal can call e.stopImmediatePropagation(). Unfortunately Node.js cannot change @@ -876,8 +876,8 @@

      Parameters

      • signal: AbortSignal
      • resource: ((event: Event) => void)
          • (event): void
          • Parameters

            • event: Event

            Returns void

      Returns Disposable

      Disposable that removes the abort listener.

      v20.5.0

    • Experimental

      A utility method for creating a Writable from a web WritableStream.

      -

      Parameters

      • writableStream: WritableStream<any>
      • Optionaloptions: Pick<WritableOptions,
            | "signal"
            | "objectMode"
            | "highWaterMark"
            | "decodeStrings">

      Returns Writable

      v17.0.0

      -
    • Returns a copy of the array of listeners for the event named eventName.

      +

      Parameters

      • writableStream: WritableStream<any>
      • Optionaloptions: Pick<WritableOptions<Writable>,
            | "signal"
            | "objectMode"
            | "highWaterMark"
            | "decodeStrings">

      Returns Writable

      v17.0.0

      +
    • Returns a copy of the array of listeners for the event named eventName.

      For EventEmitters this behaves exactly the same as calling .listeners on the emitter.

      For EventTargets this is the only way to get the event listeners for the @@ -950,4 +950,4 @@

    Returns void

    v15.4.0

    • Experimental

      A utility method for creating a web WritableStream from a Writable.

      Parameters

      • streamWritable: Writable

      Returns WritableStream<any>

      v17.0.0

      -
    +
    diff --git a/docs/Next/classes/HostAddress.html b/docs/Next/classes/HostAddress.html index 7c4a62677e7..c6bc7539fc7 100644 --- a/docs/Next/classes/HostAddress.html +++ b/docs/Next/classes/HostAddress.html @@ -1,4 +1,4 @@ -HostAddress | mongodb

    Class HostAddress

    Constructors

    constructor +HostAddress | mongodb

    Class HostAddress

    Constructors

    Properties

    Constructors

    Properties

    host: undefined | string = undefined
    isIPv6: boolean = false
    port: undefined | number = undefined
    socketPath: undefined | string = undefined

    Methods

    • Returns {
          host: string;
          port: number;
      }

      • host: string
      • port: number
    +

    Constructors

    Properties

    host: undefined | string = undefined
    isIPv6: boolean = false
    port: undefined | number = undefined
    socketPath: undefined | string = undefined

    Methods

    • Returns {
          host: string;
          port: number;
      }

      • host: string
      • port: number
    diff --git a/docs/Next/classes/MongoAPIError.html b/docs/Next/classes/MongoAPIError.html index 4f7b9434c2e..3c340556d88 100644 --- a/docs/Next/classes/MongoAPIError.html +++ b/docs/Next/classes/MongoAPIError.html @@ -1,5 +1,5 @@ MongoAPIError | mongodb

    Class MongoAPIError

    An error generated when the driver API is used incorrectly

    -

    Hierarchy (view full)

    Constructors

    Hierarchy (view full)

    Constructors

    Properties

    cause? code? connectionGeneration? diff --git a/docs/Next/classes/MongoClient.html b/docs/Next/classes/MongoClient.html index 9add53fe999..daae32701ec 100644 --- a/docs/Next/classes/MongoClient.html +++ b/docs/Next/classes/MongoClient.html @@ -1,9 +1,23 @@ MongoClient | mongodb

    Class MongoClient

    The MongoClient class is a class that allows for making Connections to MongoDB.

    -

    The programmatically provided options take precedence over the URI options.

    -
    import { MongoClient } from 'mongodb';

    // Enable command monitoring for debugging
    const client = new MongoClient('mongodb://localhost:27017', { monitorCommands: true });

    client.on('commandStarted', started => console.log(started));
    client.db().collection('pets');
    await client.insertOne({ name: 'spot', kind: 'dog' }); +

    NOTE: The programmatically provided options take precedence over the URI options.

    +

    A MongoClient is the entry point to connecting to a MongoDB server.

    +

    It handles a multitude of features on your application's behalf:

    +
      +
    • Server Host Connection Configuration: A MongoClient is responsible for reading TLS cert, ca, and crl files if provided.
    • +
    • SRV Record Polling: A "mongodb+srv" style connection string is used to have the MongoClient resolve DNS SRV records of all server hostnames which the driver periodically monitors for changes and adjusts its current view of hosts correspondingly.
    • +
    • Server Monitoring: The MongoClient automatically keeps monitoring the health of server nodes in your cluster to reach out to the correct and lowest latency one available.
    • +
    • Connection Pooling: To avoid paying the cost of rebuilding a connection to the server on every operation the MongoClient keeps idle connections preserved for reuse.
    • +
    • Session Pooling: The MongoClient creates logical sessions that enable retryable writes, causal consistency, and transactions. It handles pooling these sessions for reuse in subsequent operations.
    • +
    • Cursor Operations: A MongoClient's cursors use the health monitoring system to send the request for more documents to the same server the query began on.
    • +
    • Mongocryptd process: When using auto encryption, a MongoClient will launch a mongocryptd instance for handling encryption if the mongocrypt shared library isn't in use.
    • +
    +

    There are many more features of a MongoClient that are not listed above.

    +

    In order to enable these features, a number of asynchronous Node.js resources are established by the driver: Timers, FS Requests, Sockets, etc. +For details on cleanup, please refer to the MongoClient close() documentation.

    +
    import { MongoClient } from 'mongodb';
    // Enable command monitoring for debugging
    const client = new MongoClient('mongodb://localhost:27017?appName=mflix', { monitorCommands: true });
    -

    Hierarchy (view full)

    Implements

    Constructors

    Hierarchy (view full)

    Implements

    Constructors

    Properties

    Constructors

    Properties

    [asyncDispose]: (() => Promise<void>)

    An alias for MongoClient.close().

    -
    options: Readonly<Omit<MongoOptions,
        | "ca"
        | "cert"
        | "crl"
        | "key"
        | "monitorCommands">> & Pick<MongoOptions,
        | "ca"
        | "cert"
        | "crl"
        | "key"
        | "monitorCommands">

    The consolidate, parsed, transformed and merged options.

    -
    captureRejections: boolean

    Value: boolean

    +

    Constructors

    Properties

    [asyncDispose]: (() => Promise<void>)

    An alias for MongoClient.close().

    +
    options: Readonly<Omit<MongoOptions,
        | "ca"
        | "cert"
        | "crl"
        | "key"
        | "monitorCommands">> & Pick<MongoOptions,
        | "ca"
        | "cert"
        | "crl"
        | "key"
        | "monitorCommands">

    The consolidate, parsed, transformed and merged options.

    +
    captureRejections: boolean

    Value: boolean

    Change the default captureRejections option on all new EventEmitter objects.

    v13.4.0, v12.16.0

    captureRejectionSymbol: typeof captureRejectionSymbol

    v13.6.0, v12.17.0

    -

    Accessors

    Methods

    • Type Parameters

      • K

      Parameters

      • error: Error
      • event: string | symbol
      • Rest...args: AnyRest

      Returns void

    Accessors

    Methods

    • Type Parameters

      • K

      Parameters

      • error: Error
      • event: string | symbol
      • Rest...args: AnyRest

      Returns void

    • Alias for emitter.on(eventName, listener).

      Type Parameters

      • EventKey extends
            | "error"
            | "timeout"
            | "close"
            | "open"
            | "serverOpening"
            | "serverClosed"
            | "serverDescriptionChanged"
            | "topologyOpening"
            | "topologyClosed"
            | "topologyDescriptionChanged"
            | "connectionPoolCreated"
            | "connectionPoolClosed"
            | "connectionPoolCleared"
            | "connectionPoolReady"
            | "connectionCreated"
            | "connectionReady"
            | "connectionClosed"
            | "connectionCheckOutStarted"
            | "connectionCheckOutFailed"
            | "connectionCheckedOut"
            | "connectionCheckedIn"
            | "commandStarted"
            | "commandSucceeded"
            | "commandFailed"
            | "serverHeartbeatStarted"
            | "serverHeartbeatSucceeded"
            | "serverHeartbeatFailed"

      Parameters

      Returns this

      v0.1.26

    • Alias for emitter.on(eventName, listener).

      Parameters

      Returns this

      v0.1.26

      @@ -95,27 +109,77 @@

      Returns Promise<ClientBulkWriteResult>

      A ClientBulkWriteResult for acknowledged writes and ok: 1 for unacknowledged writes.

      -
    • Cleans up client-side resources used by the MongoCLient and . This includes:

      +
    • Cleans up resources managed by the MongoClient.

      +

      The close method clears and closes all resources whose lifetimes are managed by the MongoClient. +Please refer to the MongoClient class documentation for a high level overview of the client's key features and responsibilities.

      +

      However, the close method does not handle the cleanup of resources explicitly created by the user. +Any user-created driver resource with its own close() method should be explicitly closed by the user before calling MongoClient.close(). +This method is written as a "best effort" attempt to leave behind the least amount of resources server-side when possible.

      +

      The following list defines ideal preconditions and consequent pitfalls if they are not met. +The MongoClient, ClientSession, Cursors and ChangeStreams all support explicit resource management. +By using explicit resource management to manage the lifetime of driver resources instead of manually managing their lifetimes, the pitfalls outlined below can be avoided.

      +

      The close method performs the following in the order listed:

      +
        +
      • Client-side: +
          +
        • Close in-use connections: Any connections that are currently waiting on a response from the server will be closed. +This is performed first to avoid reaching the next step (server-side clean up) and having no available connections to check out. +
            +
          • Ideal: All operations have been awaited or cancelled, and the outcomes, regardless of success or failure, have been processed before closing the client servicing the operation.
          • +
          • Pitfall: When client.close() is called and all connections are in use, after closing them, the client must create new connections for cleanup operations, which comes at the cost of new TLS/TCP handshakes and authentication steps.
          • +
          +
        • +
        +
      • +
      • Server-side: +
          +
        • Close active cursors: All cursors that haven't been completed will have a killCursor operation sent to the server they were initialized on, freeing the server-side resource. +
            +
          • Ideal: Cursors are explicitly closed or completed before client.close() is called.
          • +
          • Pitfall: killCursors may have to build a new connection if the in-use closure ended all pooled connections.
          • +
          +
        • +
        • End active sessions: In-use sessions created with client.startSession() or client.withSession() or implicitly by the driver will have their .endSession() method called. +Contrary to the name of the method, endSession() returns the session to the client's pool of sessions rather than end them on the server. +
            +
          • Ideal: Transaction outcomes are awaited and their corresponding explicit sessions are ended before client.close() is called.
          • +
          • Pitfall: This step aborts in-progress transactions. It is advisable to observe the outcome of a transaction before closing your client.
          • +
          +
        • +
        • End all pooled sessions: The endSessions command with all session IDs the client has pooled is sent to the server to inform the cluster it can clean them up.
            -
          • Closes all open, unused connections (see note).
          • -
          • Ends all in-use sessions with ClientSession.endSession().
          • -
          • Ends all unused sessions server-side.
          • -
          • Cleans up any resources being used for auto encryption if auto encryption is enabled.
          • +
          • Ideal: No user intervention is expected.
          • +
          • Pitfall: None.
          • +
          +
        • +
        +
      • +
      +

      The remaining shutdown is of the MongoClient resources that are intended to be entirely internal but is documented here as their existence relates to the JS event loop.

      +
        +
      • Client-side (again): +
          +
        • Stop all server monitoring: Connections kept live for detecting cluster changes and roundtrip time measurements are shutdown.
        • +
        • Close all pooled connections: Each server node in the cluster has a corresponding connection pool and all connections in the pool are closed. Any operations waiting to check out a connection will have an error thrown instead of a connection returned.
        • +
        • Clear out server selection queue: Any operations that are in the process of waiting for a server to be selected will have an error thrown instead of a server returned.
        • +
        • Close encryption-related resources: An internal MongoClient created for communicating with mongocryptd or other encryption purposes is closed. (Using this same method of course!)
        • +
        +
      -

      Parameters

      • force: boolean = false

        Force close, emitting no events

        -

      Returns Promise<void>

      Any in-progress operations are not killed and any connections used by in progress operations -will be cleaned up lazily as operations finish.

      -
    • Connect to MongoDB using a url

      -

      Returns Promise<MongoClient>

      Calling connect is optional since the first operation you perform will call connect if it's needed. +

      After the close method completes there should be no MongoClient related resources ref-ed in Node.js' event loop. +This should allow Node.js to exit gracefully if MongoClient resources were the only active handles in the event loop.

      +

      Parameters

      • _force: boolean = false

        currently an unused flag that has no effect. Defaults to false.

        +

      Returns Promise<void>

    • Connect to MongoDB using a url

      +

      Returns Promise<MongoClient>

      Calling connect is optional since the first operation you perform will call connect if it's needed. timeoutMS will bound the time any operation can take before throwing a timeout error. However, when the operation being run is automatically connecting your MongoClient the timeoutMS will not apply to the time taken to connect the MongoClient. This means the time to setup the MongoClient does not count against timeoutMS. If you are using timeoutMS we recommend connecting your client explicitly in advance of any operation to avoid this inconsistent execution time.

      docs.mongodb.org/manual/reference/connection-string/

      -
    • Create a new Db instance sharing the current socket connections.

      +
    • Create a new Db instance sharing the current socket connections.

      Parameters

      • OptionaldbName: string

        The name of the database we want to use. If not provided, use database name from connection string.

      • Optionaloptions: DbOptions

        Optional settings for Db construction

        -

      Returns Db

    • Synchronously calls each of the listeners registered for the event named eventName, in the order they were registered, passing the supplied arguments +

    Returns Db

    • Synchronously calls each of the listeners registered for the event named eventName, in the order they were registered, passing the supplied arguments to each.

      Returns true if the event had listeners, false otherwise.

      import { EventEmitter } from 'node:events';
      const myEmitter = new EventEmitter();

      // First listener
      myEmitter.on('event', function firstListener() {
      console.log('Helloooo! first listener');
      });
      // Second listener
      myEmitter.on('event', function secondListener(arg1, arg2) {
      console.log(`event with parameters ${arg1}, ${arg2} in second listener`);
      });
      // Third listener
      myEmitter.on('event', function thirdListener(...args) {
      const parameters = args.join(', ');
      console.log(`event with parameters ${parameters} in third listener`);
      });

      console.log(myEmitter.listeners('event'));

      myEmitter.emit('event', 1, 2, 3, 4, 5);

      // Prints:
      // [
      // [Function: firstListener],
      // [Function: secondListener],
      // [Function: thirdListener]
      // ]
      // Helloooo! first listener
      // event with parameters 1, 2 in second listener
      // event with parameters 1, 2, 3, 4, 5 in third listener @@ -385,16 +449,16 @@
    • Creates a new ClientSession. When using the returned session in an operation a corresponding ServerSession will be created.

      -

      Parameters

      Returns ClientSession

      A ClientSession instance may only be passed to operations being performed on the same +

      Parameters

      Returns ClientSession

      A ClientSession instance may only be passed to operations being performed on the same MongoClient it was started from.

      -
    • Create a new Change Stream, watching for new changes (insertions, updates, replacements, deletions, and invalidations) in this cluster. Will ignore all changes to system collections, as well as the local, admin, and config databases.

      Type Parameters

      Parameters

      • pipeline: Document[] = []

        An array of pipeline stages through which to pass change stream documents. This allows for filtering (using $match) and manipulating the change stream documents.

      • options: ChangeStreamOptions = {}

        Optional settings for the command

        -

      Returns ChangeStream<TSchema, TChange>

      watch() accepts two generic arguments for distinct use cases:

      +

    Returns ChangeStream<TSchema, TChange>

    watch() accepts two generic arguments for distinct use cases:

    • A convenience method for creating and handling the clean up of a ClientSession. +

    • A convenience method for creating and handling the clean up of a ClientSession. The session will always be ended when the executor finishes.

      Type Parameters

      • T = any

      Parameters

      • executor: WithSessionCallback<T>

        An executor function that all operations using the provided session must be invoked in

        -

      Returns Promise<T>

    • Type Parameters

      • T = any

      Parameters

      Returns Promise<T>

    • Experimental

      Listens once to the abort event on the provided signal.

      +

    Returns Promise<T>

  • Type Parameters

    • T = any

    Parameters

    Returns Promise<T>

    • Connect to MongoDB using a url

      -

      Parameters

      Returns Promise<MongoClient>

      Calling connect is optional since the first operation you perform will call connect if it's needed. +

      Parameters

      Returns Promise<MongoClient>

      Calling connect is optional since the first operation you perform will call connect if it's needed. timeoutMS will bound the time any operation can take before throwing a timeout error. However, when the operation being run is automatically connecting your MongoClient the timeoutMS will not apply to the time taken to connect the MongoClient. This means the time to setup the MongoClient does not count against timeoutMS. If you are using timeoutMS we recommend connecting your client explicitly in advance of any operation to avoid this inconsistent execution time.

      https://www.mongodb.com/docs/manual/reference/connection-string/

      -
    • Returns a copy of the array of listeners for the event named eventName.

      +

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    +

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    prepareStackTrace?: ((err: Error, stackTraces: CallSite[]) => any)

    Optional override for formatting stack traces

    stackTraceLimit: number

    Accessors

    • get errmsg(): string
    • Legacy name for server error responses

      -

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      +

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      Parameters

      • label: string

        The error label to check for

      Returns boolean

      returns true if the error has the provided error label

    • Create .stack property on a target object

      diff --git a/docs/Next/classes/MongoInvalidArgumentError.html b/docs/Next/classes/MongoInvalidArgumentError.html index 5871e17a9b4..0dc69a2662a 100644 --- a/docs/Next/classes/MongoInvalidArgumentError.html +++ b/docs/Next/classes/MongoInvalidArgumentError.html @@ -1,6 +1,6 @@ MongoInvalidArgumentError | mongodb

      Class MongoInvalidArgumentError

      An error generated when the user supplies malformed or unexpected arguments or when a required argument or field is not provided.

      -

      Hierarchy (view full)

      Constructors

      Hierarchy (view full)

      Constructors

      Properties

      cause? code? connectionGeneration? @@ -19,11 +19,11 @@

      Meant for internal use only.

      Parameters

      • message: string
      • Optionaloptions: {
            cause?: Error;
        }
        • Optionalcause?: Error

      Returns MongoInvalidArgumentError

      This class is only meant to be constructed within the driver. This constructor is not subject to semantic versioning compatibility guarantees and may change at any time.

      -

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    +

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    prepareStackTrace?: ((err: Error, stackTraces: CallSite[]) => any)

    Optional override for formatting stack traces

    stackTraceLimit: number

    Accessors

    • get errmsg(): string
    • Legacy name for server error responses

      -

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      +

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      Parameters

      • label: string

        The error label to check for

      Returns boolean

      returns true if the error has the provided error label

    • Create .stack property on a target object

      diff --git a/docs/Next/classes/MongoMissingCredentialsError.html b/docs/Next/classes/MongoMissingCredentialsError.html index 4673c6f70b9..919f8064fde 100644 --- a/docs/Next/classes/MongoMissingCredentialsError.html +++ b/docs/Next/classes/MongoMissingCredentialsError.html @@ -1,6 +1,6 @@ MongoMissingCredentialsError | mongodb

      Class MongoMissingCredentialsError

      An error generated when the user fails to provide authentication credentials before attempting to connect to a mongo server instance.

      -

      Hierarchy (view full)

      Constructors

      Hierarchy (view full)

      Constructors

      Properties

      cause? code? connectionGeneration? @@ -19,11 +19,11 @@

      Meant for internal use only.

      Parameters

      • message: string

      Returns MongoMissingCredentialsError

      This class is only meant to be constructed within the driver. This constructor is not subject to semantic versioning compatibility guarantees and may change at any time.

      -

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    +

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    prepareStackTrace?: ((err: Error, stackTraces: CallSite[]) => any)

    Optional override for formatting stack traces

    stackTraceLimit: number

    Accessors

    • get errmsg(): string
    • Legacy name for server error responses

      -

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      +

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      Parameters

      • label: string

        The error label to check for

      Returns boolean

      returns true if the error has the provided error label

    • Create .stack property on a target object

      diff --git a/docs/Next/classes/MongoMissingDependencyError.html b/docs/Next/classes/MongoMissingDependencyError.html index 61e1c0cf855..33866487fa4 100644 --- a/docs/Next/classes/MongoMissingDependencyError.html +++ b/docs/Next/classes/MongoMissingDependencyError.html @@ -1,5 +1,5 @@ MongoMissingDependencyError | mongodb

      Class MongoMissingDependencyError

      An error generated when a required module or dependency is not present in the local environment

      -

      Hierarchy (view full)

      Constructors

      Hierarchy (view full)

      Constructors

      Properties

      cause code? connectionGeneration? @@ -19,12 +19,12 @@

      Meant for internal use only.

      Parameters

      • message: string
      • options: {
            cause: Error;
            dependencyName: string;
        }
        • cause: Error
        • dependencyName: string

      Returns MongoMissingDependencyError

      This class is only meant to be constructed within the driver. This constructor is not subject to semantic versioning compatibility guarantees and may change at any time.

      -

    Properties

    cause: Error

    This property is assigned in the Error constructor.

    -
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    -
    connectionGeneration?: number
    dependencyName: string
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    prepareStackTrace?: ((err: Error, stackTraces: CallSite[]) => any)

    Optional override for formatting stack traces

    +

    Properties

    cause: Error

    This property is assigned in the Error constructor.

    +
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    +
    connectionGeneration?: number
    dependencyName: string
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    prepareStackTrace?: ((err: Error, stackTraces: CallSite[]) => any)

    Optional override for formatting stack traces

    stackTraceLimit: number

    Accessors

    • get errmsg(): string
    • Legacy name for server error responses

      -

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      +

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      Parameters

      • label: string

        The error label to check for

      Returns boolean

      returns true if the error has the provided error label

    • Create .stack property on a target object

      diff --git a/docs/Next/classes/MongoNetworkError.html b/docs/Next/classes/MongoNetworkError.html index bea806da4c5..1746318d85f 100644 --- a/docs/Next/classes/MongoNetworkError.html +++ b/docs/Next/classes/MongoNetworkError.html @@ -1,5 +1,5 @@ MongoNetworkError | mongodb

      Class MongoNetworkError

      An error indicating an issue with the network, including TCP errors and timeouts.

      -

      Hierarchy (view full)

      Constructors

      Hierarchy (view full)

      Constructors

      Properties

      cause? code? connectionGeneration? @@ -18,11 +18,11 @@

      Meant for internal use only.

      Parameters

      Returns MongoNetworkError

      This class is only meant to be constructed within the driver. This constructor is not subject to semantic versioning compatibility guarantees and may change at any time.

      -

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    +

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    prepareStackTrace?: ((err: Error, stackTraces: CallSite[]) => any)

    Optional override for formatting stack traces

    stackTraceLimit: number

    Accessors

    • get errmsg(): string
    • Legacy name for server error responses

      -

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      +

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      Parameters

      • label: string

        The error label to check for

      Returns boolean

      returns true if the error has the provided error label

    • Create .stack property on a target object

      diff --git a/docs/Next/classes/MongoNetworkTimeoutError.html b/docs/Next/classes/MongoNetworkTimeoutError.html index 008bd2fe34d..90b1b131eda 100644 --- a/docs/Next/classes/MongoNetworkTimeoutError.html +++ b/docs/Next/classes/MongoNetworkTimeoutError.html @@ -1,5 +1,5 @@ MongoNetworkTimeoutError | mongodb

      Class MongoNetworkTimeoutError

      An error indicating a network timeout occurred

      -

      Hierarchy (view full)

      Constructors

      Hierarchy (view full)

      Constructors

      Properties

      cause? code? connectionGeneration? @@ -18,11 +18,11 @@

      Meant for internal use only.

      Parameters

      Returns MongoNetworkTimeoutError

      This class is only meant to be constructed within the driver. This constructor is not subject to semantic versioning compatibility guarantees and may change at any time.

      -

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    +

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    prepareStackTrace?: ((err: Error, stackTraces: CallSite[]) => any)

    Optional override for formatting stack traces

    stackTraceLimit: number

    Accessors

    • get errmsg(): string
    • Legacy name for server error responses

      -

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      +

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      Parameters

      • label: string

        The error label to check for

      Returns boolean

      returns true if the error has the provided error label

    • Create .stack property on a target object

      diff --git a/docs/Next/classes/MongoParseError.html b/docs/Next/classes/MongoParseError.html index efbd1052f86..eb18fabf120 100644 --- a/docs/Next/classes/MongoParseError.html +++ b/docs/Next/classes/MongoParseError.html @@ -1,5 +1,5 @@ MongoParseError | mongodb

      Class MongoParseError

      An error used when attempting to parse a value (like a connection string)

      -

      Hierarchy (view full)

      Constructors

      Hierarchy (view full)

      Constructors

      Properties

      cause? code? connectionGeneration? @@ -18,11 +18,11 @@

      Meant for internal use only.

      Parameters

      • message: string

      Returns MongoParseError

      This class is only meant to be constructed within the driver. This constructor is not subject to semantic versioning compatibility guarantees and may change at any time.

      -

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    +

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    prepareStackTrace?: ((err: Error, stackTraces: CallSite[]) => any)

    Optional override for formatting stack traces

    stackTraceLimit: number

    Accessors

    • get errmsg(): string
    • Legacy name for server error responses

      -

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      +

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      Parameters

      • label: string

        The error label to check for

      Returns boolean

      returns true if the error has the provided error label

    • Create .stack property on a target object

      diff --git a/docs/Next/classes/MongoServerSelectionError.html b/docs/Next/classes/MongoServerSelectionError.html index eda084f4123..46a89af772f 100644 --- a/docs/Next/classes/MongoServerSelectionError.html +++ b/docs/Next/classes/MongoServerSelectionError.html @@ -1,5 +1,5 @@ MongoServerSelectionError | mongodb

      Class MongoServerSelectionError

      An error signifying a client-side server selection error

      -

      Hierarchy (view full)

      Constructors

      Hierarchy (view full)

      Constructors

      Properties

      cause? code? connectionGeneration? @@ -19,12 +19,12 @@

      Meant for internal use only.

      Parameters

      Returns MongoServerSelectionError

      This class is only meant to be constructed within the driver. This constructor is not subject to semantic versioning compatibility guarantees and may change at any time.

      -

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    +

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    connectionGeneration?: number
    message: string

    An optional reason context, such as an error saved during flow of monitoring and selecting servers

    -
    stack?: string
    topologyVersion?: TopologyVersion
    prepareStackTrace?: ((err: Error, stackTraces: CallSite[]) => any)

    Optional override for formatting stack traces

    +
    stack?: string
    topologyVersion?: TopologyVersion
    prepareStackTrace?: ((err: Error, stackTraces: CallSite[]) => any)

    Optional override for formatting stack traces

    stackTraceLimit: number

    Accessors

    • get errmsg(): string
    • Legacy name for server error responses

      -

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      +

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      Parameters

      • label: string

        The error label to check for

      Returns boolean

      returns true if the error has the provided error label

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    +

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    connectionGeneration?: number
    message: string

    An optional reason context, such as an error saved during flow of monitoring and selecting servers

    -
    stack?: string
    topologyVersion?: TopologyVersion
    prepareStackTrace?: ((err: Error, stackTraces: CallSite[]) => any)

    Optional override for formatting stack traces

    +
    stack?: string
    topologyVersion?: TopologyVersion
    prepareStackTrace?: ((err: Error, stackTraces: CallSite[]) => any)

    Optional override for formatting stack traces

    stackTraceLimit: number

    Accessors

    • get errmsg(): string
    • Legacy name for server error responses

      -

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      +

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      Parameters

      • label: string

        The error label to check for

      Returns boolean

      returns true if the error has the provided error label

    • Create .stack property on a target object

      diff --git a/docs/Next/classes/MongoWriteConcernError.html b/docs/Next/classes/MongoWriteConcernError.html index 33f90954824..399cdf5340a 100644 --- a/docs/Next/classes/MongoWriteConcernError.html +++ b/docs/Next/classes/MongoWriteConcernError.html @@ -1,5 +1,5 @@ MongoWriteConcernError | mongodb

      Class MongoWriteConcernError

      An error thrown when the server reports a writeConcernError

      -

      Hierarchy (view full)

      Constructors

      Hierarchy (view full)

      Constructors

      Properties

      cause? code? codeName? @@ -24,13 +24,13 @@

      Meant for internal use only.

      Parameters

      Returns MongoWriteConcernError

      This class is only meant to be constructed within the driver. This constructor is not subject to semantic versioning compatibility guarantees and may change at any time.

      -

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    +

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    codeName?: string
    connectionGeneration?: number
    errInfo?: Document
    errorResponse: ErrorDescription

    Raw error result document returned by server.

    message: string
    ok?: number
    result: Document

    The result document

    -
    stack?: string
    topologyVersion?: TopologyVersion
    writeConcernError?: Document
    prepareStackTrace?: ((err: Error, stackTraces: CallSite[]) => any)

    Optional override for formatting stack traces

    +
    stack?: string
    topologyVersion?: TopologyVersion
    writeConcernError?: Document
    prepareStackTrace?: ((err: Error, stackTraces: CallSite[]) => any)

    Optional override for formatting stack traces

    stackTraceLimit: number

    Accessors

    • get errmsg(): string
    • Legacy name for server error responses

      -

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      +

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      Parameters

      • label: string

        The error label to check for

      Returns boolean

      returns true if the error has the provided error label

    key: string

    The Amazon Resource Name (ARN) to the AWS customer master key (CMK)

    +
    region: string

    The AWS region of the KMS

    +
    diff --git a/docs/Next/interfaces/AggregateOptions.html b/docs/Next/interfaces/AggregateOptions.html index 2d91bf418e5..f5705230602 100644 --- a/docs/Next/interfaces/AggregateOptions.html +++ b/docs/Next/interfaces/AggregateOptions.html @@ -1,4 +1,4 @@ -AggregateOptions | mongodb

    Interface AggregateOptions

    interface AggregateOptions {
        allowDiskUse?: boolean;
        authdb?: string;
        batchSize?: number;
        bsonRegExp?: boolean;
        bypassDocumentValidation?: boolean;
        checkKeys?: boolean;
        collation?: CollationOptions;
        comment?: unknown;
        cursor?: Document;
        dbName?: string;
        enableUtf8Validation?: boolean;
        explain?: ExplainVerbosityLike | ExplainCommandOptions;
        fieldsAsRaw?: Document;
        hint?: Hint;
        ignoreUndefined?: boolean;
        let?: Document;
        maxAwaitTimeMS?: number;
        maxTimeMS?: number;
        noResponse?: boolean;
        omitReadPreference?: boolean;
        out?: string;
        promoteBuffers?: boolean;
        promoteLongs?: boolean;
        promoteValues?: boolean;
        raw?: boolean;
        readConcern?: ReadConcernLike;
        readPreference?: ReadPreferenceLike;
        retryWrites?: boolean;
        serializeFunctions?: boolean;
        session?: ClientSession;
        timeoutMS?: number;
        useBigInt64?: boolean;
        willRetryWrite?: boolean;
        writeConcern?: WriteConcern | WriteConcernSettings;
    }

    Hierarchy (view full)

    Properties

    allowDiskUse? +AggregateOptions | mongodb

    Interface AggregateOptions

    interface AggregateOptions {
        allowDiskUse?: boolean;
        authdb?: string;
        batchSize?: number;
        bsonRegExp?: boolean;
        bypassDocumentValidation?: boolean;
        checkKeys?: boolean;
        collation?: CollationOptions;
        comment?: unknown;
        cursor?: Document;
        dbName?: string;
        enableUtf8Validation?: boolean;
        explain?: ExplainVerbosityLike | ExplainCommandOptions;
        fieldsAsRaw?: Document;
        hint?: Hint;
        ignoreUndefined?: boolean;
        let?: Document;
        maxAwaitTimeMS?: number;
        maxTimeMS?: number;
        noResponse?: boolean;
        omitReadPreference?: boolean;
        out?: string;
        promoteBuffers?: boolean;
        promoteLongs?: boolean;
        promoteValues?: boolean;
        raw?: boolean;
        readConcern?: ReadConcernLike;
        readPreference?: ReadPreferenceLike;
        retryWrites?: boolean;
        serializeFunctions?: boolean;
        session?: ClientSession;
        timeoutMS?: number;
        useBigInt64?: boolean;
        willRetryWrite?: boolean;
        writeConcern?: WriteConcern | WriteConcernSettings;
    }

    Hierarchy (view full)

    Properties

    allowDiskUse?: boolean

    allowDiskUse lets the server know if it can use disk to store temporary results for the aggregation (requires mongodb 2.6 >).

    -
    authdb?: string
    batchSize?: number

    The number of documents to return per batch. See aggregation documentation.

    -
    bsonRegExp?: boolean

    return BSON regular expressions as BSONRegExp instances.

    +
    authdb?: string
    batchSize?: number

    The number of documents to return per batch. See aggregation documentation.

    +
    bsonRegExp?: boolean

    return BSON regular expressions as BSONRegExp instances.

    false

    bypassDocumentValidation?: boolean

    Allow driver to bypass schema validation.

    -
    checkKeys?: boolean

    the serializer will check if keys are valid.

    +
    checkKeys?: boolean

    the serializer will check if keys are valid.

    false

    collation?: CollationOptions

    Specify collation.

    -
    comment?: unknown

    Comment to apply to the operation.

    +
    comment?: unknown

    Comment to apply to the operation.

    In server versions pre-4.4, 'comment' must be string. A server error will be thrown if any other type is provided.

    In server versions 4.4 and above, 'comment' can be any valid BSON type.

    cursor?: Document

    Return the query as cursor, on 2.6 > it returns as a real cursor on pre 2.6 it returns as an emulated cursor.

    -
    dbName?: string
    enableUtf8Validation?: boolean

    Enable utf8 validation when deserializing BSON documents. Defaults to true.

    +
    dbName?: string
    enableUtf8Validation?: boolean

    Enable utf8 validation when deserializing BSON documents. Defaults to true.

    Specifies the verbosity mode for the explain output.

    This API is deprecated in favor of collection.aggregate().explain() or db.aggregate().explain().

    -
    fieldsAsRaw?: Document

    allow to specify if there what fields we wish to return as unserialized raw buffer.

    +
    fieldsAsRaw?: Document

    allow to specify if there what fields we wish to return as unserialized raw buffer.

    null

    hint?: Hint

    Add an index selection hint to an aggregation command

    -
    ignoreUndefined?: boolean

    serialize will not emit undefined fields +

    ignoreUndefined?: boolean

    serialize will not emit undefined fields note that the driver sets this to false

    true

    let?: Document

    Map of parameter names and values that can be accessed using $$var (requires MongoDB 5.0).

    -
    maxAwaitTimeMS?: number

    The maximum amount of time for the server to wait on new documents to satisfy a tailable cursor query.

    -
    maxTimeMS?: number

    Specifies a cumulative time limit in milliseconds for processing operations on the cursor. MongoDB interrupts the operation at the earliest following interrupt point.

    -
    noResponse?: boolean
    omitReadPreference?: boolean
    out?: string
    promoteBuffers?: boolean

    when deserializing a Binary will return it as a node.js Buffer instance.

    +
    maxAwaitTimeMS?: number

    The maximum amount of time for the server to wait on new documents to satisfy a tailable cursor query.

    +
    maxTimeMS?: number

    Specifies a cumulative time limit in milliseconds for processing operations on the cursor. MongoDB interrupts the operation at the earliest following interrupt point.

    +
    noResponse?: boolean
    omitReadPreference?: boolean
    out?: string
    promoteBuffers?: boolean

    when deserializing a Binary will return it as a node.js Buffer instance.

    false

    promoteLongs?: boolean

    when deserializing a Long will fit it into a Number if it's smaller than 53 bits.

    true

    diff --git a/docs/Next/interfaces/AggregationCursorOptions.html b/docs/Next/interfaces/AggregationCursorOptions.html index eb9ea84d14c..465d2f6fed3 100644 --- a/docs/Next/interfaces/AggregationCursorOptions.html +++ b/docs/Next/interfaces/AggregationCursorOptions.html @@ -37,7 +37,7 @@ willRetryWrite? writeConcern?

    Properties

    allowDiskUse?: boolean

    allowDiskUse lets the server know if it can use disk to store temporary results for the aggregation (requires mongodb 2.6 >).

    -
    authdb?: string
    awaitData?: boolean

    If awaitData is set to true, when the cursor reaches the end of the capped collection, +

    authdb?: string
    awaitData?: boolean

    If awaitData is set to true, when the cursor reaches the end of the capped collection, MongoDB blocks the query thread for a period of time waiting for new data to arrive. When new data is inserted into the capped collection, the blocked thread is signaled to wake up and return the next batch to the client.

    @@ -45,30 +45,30 @@
    bsonRegExp?: boolean

    return BSON regular expressions as BSONRegExp instances.

    false

    bypassDocumentValidation?: boolean

    Allow driver to bypass schema validation.

    -
    checkKeys?: boolean

    the serializer will check if keys are valid.

    +
    checkKeys?: boolean

    the serializer will check if keys are valid.

    false

    collation?: CollationOptions

    Specify collation.

    -
    comment?: unknown

    Comment to apply to the operation.

    +
    comment?: unknown

    Comment to apply to the operation.

    In server versions pre-4.4, 'comment' must be string. A server error will be thrown if any other type is provided.

    In server versions 4.4 and above, 'comment' can be any valid BSON type.

    cursor?: Document

    Return the query as cursor, on 2.6 > it returns as a real cursor on pre 2.6 it returns as an emulated cursor.

    -
    dbName?: string
    enableUtf8Validation?: boolean

    Enable utf8 validation when deserializing BSON documents. Defaults to true.

    +
    dbName?: string
    enableUtf8Validation?: boolean

    Enable utf8 validation when deserializing BSON documents. Defaults to true.

    Specifies the verbosity mode for the explain output.

    This API is deprecated in favor of collection.aggregate().explain() or db.aggregate().explain().

    -
    fieldsAsRaw?: Document

    allow to specify if there what fields we wish to return as unserialized raw buffer.

    +
    fieldsAsRaw?: Document

    allow to specify if there what fields we wish to return as unserialized raw buffer.

    null

    hint?: Hint

    Add an index selection hint to an aggregation command

    -
    ignoreUndefined?: boolean

    serialize will not emit undefined fields +

    ignoreUndefined?: boolean

    serialize will not emit undefined fields note that the driver sets this to false

    true

    let?: Document

    Map of parameter names and values that can be accessed using $$var (requires MongoDB 5.0).

    -
    maxAwaitTimeMS?: number

    When applicable maxAwaitTimeMS controls the amount of time subsequent getMores +

    maxAwaitTimeMS?: number

    When applicable maxAwaitTimeMS controls the amount of time subsequent getMores that a cursor uses to fetch more data should take. (ex. cursor.next())

    maxTimeMS?: number

    When applicable maxTimeMS controls the amount of time the initial command that constructs a cursor should take. (ex. find, aggregate, listCollections)

    -
    noCursorTimeout?: boolean
    noResponse?: boolean
    omitReadPreference?: boolean
    out?: string
    promoteBuffers?: boolean

    when deserializing a Binary will return it as a node.js Buffer instance.

    +
    noCursorTimeout?: boolean
    noResponse?: boolean
    omitReadPreference?: boolean
    out?: string
    promoteBuffers?: boolean

    when deserializing a Binary will return it as a node.js Buffer instance.

    false

    promoteLongs?: boolean

    when deserializing a Long will fit it into a Number if it's smaller than 53 bits.

    true

    diff --git a/docs/Next/interfaces/AutoEncryptionOptions.html b/docs/Next/interfaces/AutoEncryptionOptions.html index 74705711dbb..7dc6233718b 100644 --- a/docs/Next/interfaces/AutoEncryptionOptions.html +++ b/docs/Next/interfaces/AutoEncryptionOptions.html @@ -1,8 +1,9 @@ -AutoEncryptionOptions | mongodb

    Interface AutoEncryptionOptions

    interface AutoEncryptionOptions {
        bypassAutoEncryption?: boolean;
        bypassQueryAnalysis?: boolean;
        credentialProviders?: CredentialProviders;
        encryptedFieldsMap?: Document;
        extraOptions?: {
            cryptSharedLibPath?: string;
            cryptSharedLibRequired?: boolean;
            mongocryptdBypassSpawn?: boolean;
            mongocryptdSpawnArgs?: string[];
            mongocryptdSpawnPath?: string;
            mongocryptdURI?: string;
        };
        keyVaultClient?: MongoClient;
        keyVaultNamespace?: string;
        kmsProviders?: KMSProviders;
        options?: {
            logger?: ((level: AutoEncryptionLoggerLevel, message: string) => void);
        };
        proxyOptions?: ProxyOptions;
        schemaMap?: Document;
        tlsOptions?: CSFLEKMSTlsOptions;
    }

    Properties

    bypassAutoEncryption? +AutoEncryptionOptions | mongodb

    Interface AutoEncryptionOptions

    interface AutoEncryptionOptions {
        bypassAutoEncryption?: boolean;
        bypassQueryAnalysis?: boolean;
        credentialProviders?: CredentialProviders;
        encryptedFieldsMap?: Document;
        extraOptions?: {
            cryptSharedLibPath?: string;
            cryptSharedLibRequired?: boolean;
            mongocryptdBypassSpawn?: boolean;
            mongocryptdSpawnArgs?: string[];
            mongocryptdSpawnPath?: string;
            mongocryptdURI?: string;
        };
        keyExpirationMS?: number;
        keyVaultClient?: MongoClient;
        keyVaultNamespace?: string;
        kmsProviders?: KMSProviders;
        options?: {
            logger?: ((level: AutoEncryptionLoggerLevel, message: string) => void);
        };
        proxyOptions?: ProxyOptions;
        schemaMap?: Document;
        tlsOptions?: CSFLEKMSTlsOptions;
    }

    Properties

  • OptionalmongocryptdSpawnPath?: string

    The path to the mongocryptd executable on the system

  • OptionalmongocryptdURI?: string

    A local process the driver communicates with to determine how to encrypt values in a command. Defaults to "mongodb://%2Fvar%2Fmongocryptd.sock" if domain sockets are available or "mongodb://localhost:27020" otherwise

    -
  • keyVaultClient?: MongoClient

    A MongoClient used to fetch keys from a key vault

    +
    keyExpirationMS?: number

    Sets the expiration time for the DEK in the cache in milliseconds. Defaults to 60000. 0 means no timeout.

    +
    keyVaultClient?: MongoClient

    A MongoClient used to fetch keys from a key vault

    keyVaultNamespace?: string

    The namespace where keys are stored in the key vault

    kmsProviders?: KMSProviders

    Configuration options that are used by specific KMS providers during key generation, encryption, and decryption.

    options?: {
        logger?: ((level: AutoEncryptionLoggerLevel, message: string) => void);
    }

    Type declaration

    • Optionallogger?: ((level: AutoEncryptionLoggerLevel, message: string) => void)

      An optional hook to catch logging messages from the underlying encryption engine

      -
    proxyOptions?: ProxyOptions
    schemaMap?: Document

    A map of namespaces to a local JSON schema for encryption

    +
    proxyOptions?: ProxyOptions
    schemaMap?: Document

    A map of namespaces to a local JSON schema for encryption

    NOTE: Supplying options.schemaMap provides more security than relying on JSON Schemas obtained from the server. It protects against a malicious server advertising a false JSON Schema, which could trick the client into sending decrypted data that should be encrypted. Schemas supplied in the schemaMap only apply to configuring automatic encryption for Client-Side Field Level Encryption. Other validation rules in the JSON schema will not be enforced by the driver and will result in an error.

    tlsOptions?: CSFLEKMSTlsOptions

    The TLS options to use connecting to the KMS provider

    -
    +
    diff --git a/docs/Next/interfaces/AzureEncryptionKeyOptions.html b/docs/Next/interfaces/AzureEncryptionKeyOptions.html index 000c3610a32..c30053078d1 100644 --- a/docs/Next/interfaces/AzureEncryptionKeyOptions.html +++ b/docs/Next/interfaces/AzureEncryptionKeyOptions.html @@ -1,8 +1,8 @@ AzureEncryptionKeyOptions | mongodb

    Interface AzureEncryptionKeyOptions

    Configuration options for making an Azure encryption key

    -
    interface AzureEncryptionKeyOptions {
        keyName: string;
        keyVaultEndpoint: string;
        keyVersion?: string;
    }

    Properties

    interface AzureEncryptionKeyOptions {
        keyName: string;
        keyVaultEndpoint: string;
        keyVersion?: string;
    }

    Properties

    keyName: string

    Key name

    -
    keyVaultEndpoint: string

    Key vault URL, typically <name>.vault.azure.net

    -
    keyVersion?: string

    Key version

    -
    +
    keyVaultEndpoint: string

    Key vault URL, typically <name>.vault.azure.net

    +
    keyVersion?: string

    Key version

    +
    diff --git a/docs/Next/interfaces/ChangeStreamOptions.html b/docs/Next/interfaces/ChangeStreamOptions.html index 8cb07ccc5ce..3c3a2327423 100644 --- a/docs/Next/interfaces/ChangeStreamOptions.html +++ b/docs/Next/interfaces/ChangeStreamOptions.html @@ -39,24 +39,24 @@ useBigInt64? willRetryWrite?

    Properties

    allowDiskUse?: boolean

    allowDiskUse lets the server know if it can use disk to store temporary results for the aggregation (requires mongodb 2.6 >).

    -
    authdb?: string
    batchSize?: number

    The number of documents to return per batch.

    +
    authdb?: string
    batchSize?: number

    The number of documents to return per batch.

    bsonRegExp?: boolean

    return BSON regular expressions as BSONRegExp instances.

    false

    bypassDocumentValidation?: boolean

    Allow driver to bypass schema validation.

    -
    checkKeys?: boolean

    the serializer will check if keys are valid.

    +
    checkKeys?: boolean

    the serializer will check if keys are valid.

    false

    collation?: CollationOptions

    Specify collation.

    -
    comment?: unknown

    Comment to apply to the operation.

    +
    comment?: unknown

    Comment to apply to the operation.

    In server versions pre-4.4, 'comment' must be string. A server error will be thrown if any other type is provided.

    In server versions 4.4 and above, 'comment' can be any valid BSON type.

    cursor?: Document

    Return the query as cursor, on 2.6 > it returns as a real cursor on pre 2.6 it returns as an emulated cursor.

    -
    dbName?: string
    enableUtf8Validation?: boolean

    Enable utf8 validation when deserializing BSON documents. Defaults to true.

    +
    dbName?: string
    enableUtf8Validation?: boolean

    Enable utf8 validation when deserializing BSON documents. Defaults to true.

    Specifies the verbosity mode for the explain output.

    This API is deprecated in favor of collection.aggregate().explain() or db.aggregate().explain().

    -
    fieldsAsRaw?: Document

    allow to specify if there what fields we wish to return as unserialized raw buffer.

    +
    fieldsAsRaw?: Document

    allow to specify if there what fields we wish to return as unserialized raw buffer.

    null

    fullDocument?: string

    Allowed values: 'updateLookup', 'whenAvailable', 'required'.

    When set to 'updateLookup', the change notification for partial updates @@ -76,13 +76,13 @@

    When set to 'required', the same behavior as 'whenAvailable' except that an error is raised if the pre-image is not available.

    hint?: Hint

    Add an index selection hint to an aggregation command

    -
    ignoreUndefined?: boolean

    serialize will not emit undefined fields +

    ignoreUndefined?: boolean

    serialize will not emit undefined fields note that the driver sets this to false

    true

    let?: Document

    Map of parameter names and values that can be accessed using $$var (requires MongoDB 5.0).

    -
    maxAwaitTimeMS?: number

    The maximum amount of time for the server to wait on new documents to satisfy a change stream query.

    +
    maxAwaitTimeMS?: number

    The maximum amount of time for the server to wait on new documents to satisfy a change stream query.

    maxTimeMS?: number

    Specifies a cumulative time limit in milliseconds for processing operations on the cursor. MongoDB interrupts the operation at the earliest following interrupt point.

    -
    noResponse?: boolean
    omitReadPreference?: boolean
    out?: string
    promoteBuffers?: boolean

    when deserializing a Binary will return it as a node.js Buffer instance.

    +
    noResponse?: boolean
    omitReadPreference?: boolean
    out?: string
    promoteBuffers?: boolean

    when deserializing a Binary will return it as a node.js Buffer instance.

    false

    promoteLongs?: boolean

    when deserializing a Long will fit it into a Number if it's smaller than 53 bits.

    true

    diff --git a/docs/Next/interfaces/ClientEncryptionCreateDataKeyProviderOptions.html b/docs/Next/interfaces/ClientEncryptionCreateDataKeyProviderOptions.html index b04544f9557..b2528000435 100644 --- a/docs/Next/interfaces/ClientEncryptionCreateDataKeyProviderOptions.html +++ b/docs/Next/interfaces/ClientEncryptionCreateDataKeyProviderOptions.html @@ -1,8 +1,8 @@ ClientEncryptionCreateDataKeyProviderOptions | mongodb

    Interface ClientEncryptionCreateDataKeyProviderOptions

    Options to provide when creating a new data key.

    -
    interface ClientEncryptionCreateDataKeyProviderOptions {
        keyAltNames?: string[];
        keyMaterial?: Buffer | Binary;
        masterKey?:
            | AWSEncryptionKeyOptions
            | AzureEncryptionKeyOptions
            | GCPEncryptionKeyOptions
            | KMIPEncryptionKeyOptions;
    }

    Properties

    interface ClientEncryptionCreateDataKeyProviderOptions {
        keyAltNames?: string[];
        keyMaterial?: Buffer | Binary;
        masterKey?:
            | AWSEncryptionKeyOptions
            | AzureEncryptionKeyOptions
            | GCPEncryptionKeyOptions
            | KMIPEncryptionKeyOptions;
    }

    Properties

    keyAltNames?: string[]

    An optional list of string alternate names used to reference a key. If a key is created with alternate names, then encryption may refer to the key by the unique alternate name instead of by _id.

    -
    keyMaterial?: Buffer | Binary

    Identifies a new KMS-specific key used to encrypt the new data key

    -
    +
    keyMaterial?: Buffer | Binary

    Identifies a new KMS-specific key used to encrypt the new data key

    +
    diff --git a/docs/Next/interfaces/ClientEncryptionOptions.html b/docs/Next/interfaces/ClientEncryptionOptions.html index c5f71cf8c3f..c0c69bd14a1 100644 --- a/docs/Next/interfaces/ClientEncryptionOptions.html +++ b/docs/Next/interfaces/ClientEncryptionOptions.html @@ -1,5 +1,6 @@ ClientEncryptionOptions | mongodb

    Interface ClientEncryptionOptions

    Additional settings to provide when creating a new ClientEncryption instance.

    -
    interface ClientEncryptionOptions {
        credentialProviders?: CredentialProviders;
        keyVaultClient?: MongoClient;
        keyVaultNamespace: string;
        kmsProviders?: KMSProviders;
        proxyOptions?: ProxyOptions;
        timeoutMS?: number;
        tlsOptions?: CSFLEKMSTlsOptions;
    }

    Properties

    interface ClientEncryptionOptions {
        credentialProviders?: CredentialProviders;
        keyExpirationMS?: number;
        keyVaultClient?: MongoClient;
        keyVaultNamespace: string;
        kmsProviders?: KMSProviders;
        proxyOptions?: ProxyOptions;
        timeoutMS?: number;
        tlsOptions?: CSFLEKMSTlsOptions;
    }

    Properties

    credentialProviders?: CredentialProviders

    Options for user provided custom credential providers.

    -
    keyVaultClient?: MongoClient

    A MongoClient used to fetch keys from a key vault. Defaults to client.

    +
    keyExpirationMS?: number

    Sets the expiration time for the DEK in the cache in milliseconds. Defaults to 60000. 0 means no timeout.

    +
    keyVaultClient?: MongoClient

    A MongoClient used to fetch keys from a key vault. Defaults to client.

    keyVaultNamespace: string

    The namespace of the key vault, used to store encryption keys

    kmsProviders?: KMSProviders

    Options for specific KMS providers to use

    proxyOptions?: ProxyOptions

    Options for specifying a Socks5 proxy to use for connecting to the KMS.

    @@ -22,5 +24,5 @@
    const client = new MongoClient('<uri>', { timeoutMS: 2_000 });

    // timeoutMS is set to 1_000 on clientEncryption
    const clientEncryption = new ClientEncryption(client, {
    timeoutMS: 1_000
    kmsProviders: { local: { key: '<KEY>' } }
    });
    -
    tlsOptions?: CSFLEKMSTlsOptions

    TLS options for kms providers to use.

    -
    +
    tlsOptions?: CSFLEKMSTlsOptions

    TLS options for kms providers to use.

    +
    diff --git a/docs/Next/interfaces/ClientEncryptionRewrapManyDataKeyResult.html b/docs/Next/interfaces/ClientEncryptionRewrapManyDataKeyResult.html index 7a58fdd6ba3..857ee997c3d 100644 --- a/docs/Next/interfaces/ClientEncryptionRewrapManyDataKeyResult.html +++ b/docs/Next/interfaces/ClientEncryptionRewrapManyDataKeyResult.html @@ -1,3 +1,3 @@ -ClientEncryptionRewrapManyDataKeyResult | mongodb

    Interface ClientEncryptionRewrapManyDataKeyResultExperimental

    interface ClientEncryptionRewrapManyDataKeyResult {
        bulkWriteResult?: BulkWriteResult;
    }

    Properties

    bulkWriteResult? +ClientEncryptionRewrapManyDataKeyResult | mongodb

    Interface ClientEncryptionRewrapManyDataKeyResultExperimental

    interface ClientEncryptionRewrapManyDataKeyResult {
        bulkWriteResult?: BulkWriteResult;
    }

    Properties

    Properties

    bulkWriteResult?: BulkWriteResult

    The result of rewrapping data keys. If unset, no keys matched the filter.

    -
    +
    diff --git a/docs/Next/interfaces/CloseOptions.html b/docs/Next/interfaces/CloseOptions.html index c285a6dc226..a125e46ddee 100644 --- a/docs/Next/interfaces/CloseOptions.html +++ b/docs/Next/interfaces/CloseOptions.html @@ -1,4 +1,4 @@ CloseOptions | mongodb

    Interface CloseOptions

    This interface is deprecated and will be removed in a future release as it is not used in the driver

    -
    interface CloseOptions {
        force?: boolean;
    }

    Properties

    Properties

    force?: boolean
    +
    interface CloseOptions {
        force?: boolean;
    }

    Properties

    Properties

    force?: boolean
    diff --git a/docs/Next/interfaces/ConnectionOptions.html b/docs/Next/interfaces/ConnectionOptions.html index 8e47eeaf471..1a28ead6cea 100644 --- a/docs/Next/interfaces/ConnectionOptions.html +++ b/docs/Next/interfaces/ConnectionOptions.html @@ -45,14 +45,14 @@

    Properties

    allowPartialTrustChain?: boolean

    Treat intermediate (non-self-signed) certificates in the trust CA certificate list as trusted.

    v22.9.0, v20.18.0

    -
    ALPNProtocols?: Uint8Array | string[] | Uint8Array[]

    An array of strings or a Buffer naming possible ALPN protocols. +

    ALPNProtocols?: Uint8Array | string[] | Uint8Array[]

    An array of strings or a Buffer naming possible ALPN protocols. (Protocols should be ordered by their priority.)

    -
    autoSelectFamily?: boolean

    v18.13.0

    +
    autoSelectFamily?: boolean

    v18.13.0

    autoSelectFamilyAttemptTimeout?: number

    v18.13.0

    ca?: string | Buffer | (string | Buffer)[]

    Optionally override the trusted CA certificates. Default is to trust the well-known CAs curated by Mozilla. Mozilla's CAs are completely replaced when CAs are explicitly specified using this option.

    -
    cancellationToken?: CancellationToken
    cert?: string | Buffer | (string | Buffer)[]

    Cert chains in PEM format. One cert chain should be provided per +

    cancellationToken?: CancellationToken
    cert?: string | Buffer | (string | Buffer)[]

    Cert chains in PEM format. One cert chain should be provided per private key. Each cert chain should consist of the PEM formatted certificate for a provided private key, followed by the PEM formatted intermediate certificates (if any), in order, and not @@ -61,7 +61,7 @@ be in the same order as their private keys in key. If the intermediate certificates are not provided, the peer will not be able to validate the certificate, and the handshake will fail.

    -
    checkServerIdentity?: ((hostname: string, cert: PeerCertificate) => Error | undefined)

    Type declaration

      • (hostname, cert): Error | undefined
      • Verifies the certificate cert is issued to hostname.

        +
    checkServerIdentity?: ((hostname: string, cert: PeerCertificate) => Error | undefined)

    Type declaration

      • (hostname, cert): Error | undefined
      • Verifies the certificate cert is issued to hostname.

        Returns Error object, populating it with reason, host, and cert on failure. On success, returns undefined.

        This function is intended to be used in combination with thecheckServerIdentity option that can be passed to connect and as @@ -77,19 +77,19 @@

        Parameters

        • hostname: string

          The host name or IP address to verify the certificate against.

        • cert: PeerCertificate

          A certificate object representing the peer's certificate.

        Returns Error | undefined

        v0.8.4

        -
    ciphers?: string

    Cipher suite specification, replacing the default. For more +

    ciphers?: string

    Cipher suite specification, replacing the default. For more information, see modifying the default cipher suite. Permitted ciphers can be obtained via tls.getCiphers(). Cipher names must be uppercased in order for OpenSSL to accept them.

    -
    compressors?: (
        | "none"
        | "snappy"
        | "zlib"
        | "zstd")[]
    connectTimeoutMS?: number
    credentials?: MongoCredentials
    crl?: string | Buffer | (string | Buffer)[]

    PEM formatted CRLs (Certificate Revocation Lists).

    -
    ecdhCurve?: string

    A string describing a named curve or a colon separated list of curve +

    compressors?: (
        | "none"
        | "snappy"
        | "zlib"
        | "zstd")[]
    connectTimeoutMS?: number
    credentials?: MongoCredentials
    crl?: string | Buffer | (string | Buffer)[]

    PEM formatted CRLs (Certificate Revocation Lists).

    +
    ecdhCurve?: string

    A string describing a named curve or a colon separated list of curve NIDs or names, for example P-521:P-384:P-256, to use for ECDH key agreement. Set to auto to select the curve automatically. Use crypto.getCurves() to obtain a list of available curve names. On recent releases, openssl ecparam -list_curves will also display the name and description of each available elliptic curve. Default: tls.DEFAULT_ECDH_CURVE.

    -
    family?: number
    generation: number
    hints?: number
    hostAddress: HostAddress
    id: number | "<monitor>"
    keepAliveInitialDelay?: number

    Node.JS socket option to set the time the first keepalive probe is sent on an idle socket. Defaults to 120000ms

    +
    family?: number
    generation: number
    hints?: number
    hostAddress: HostAddress
    id: number | "<monitor>"
    keepAliveInitialDelay?: number

    Node.JS socket option to set the time the first keepalive probe is sent on an idle socket. Defaults to 120000ms

    key?: string | Buffer | (string | Buffer | KeyObject)[]

    Private keys in PEM format. PEM allows the option of private keys being encrypted. Encrypted keys will be decrypted with options.passphrase. Multiple keys using different algorithms can be @@ -98,8 +98,8 @@ passphrase: ]}. The object form can only occur in an array. object.passphrase is optional. Encrypted keys will be decrypted with object.passphrase if provided, or options.passphrase if it is not.

    -
    loadBalanced: boolean
    localAddress?: string
    localPort?: number
    logicalSessionTimeoutMinutes?: number
    lookup?: LookupFunction
    metadata: ClientMetadata
    minDHSize?: number
    monitorCommands: boolean
    noDelay?: boolean
    passphrase?: string

    Shared passphrase used for a single private key and/or a PFX.

    -
    pfx?: string | Buffer | (string | Buffer | PxfObject)[]

    PFX or PKCS12 encoded private key and certificate chain. pfx is an +

    loadBalanced: boolean
    localAddress?: string
    localPort?: number
    logicalSessionTimeoutMinutes?: number
    lookup?: LookupFunction
    metadata: ClientMetadata
    minDHSize?: number
    monitorCommands: boolean
    noDelay?: boolean
    passphrase?: string

    Shared passphrase used for a single private key and/or a PFX.

    +
    pfx?: string | Buffer | (string | Buffer | PxfObject)[]

    PFX or PKCS12 encoded private key and certificate chain. pfx is an alternative to providing key and cert individually. PFX is usually encrypted, if it is, passphrase will be used to decrypt it. Multiple PFX can be provided either as an array of unencrypted PFX buffers, @@ -107,14 +107,14 @@ passphrase: ]}. The object form can only occur in an array. object.passphrase is optional. Encrypted PFX will be decrypted with object.passphrase if provided, or options.passphrase if it is not.

    -
    proxyHost?: string
    proxyPassword?: string
    proxyPort?: number
    proxyUsername?: string
    rejectUnauthorized?: boolean

    If true the server will reject any connection which is not +

    proxyHost?: string
    proxyPassword?: string
    proxyPort?: number
    proxyUsername?: string
    rejectUnauthorized?: boolean

    If true the server will reject any connection which is not authorized with the list of supplied CAs. This option only has an effect if requestCert is true.

    true
     
    -
    secureContext?: SecureContext

    An optional TLS context object from tls.createSecureContext()

    -
    secureProtocol?: string

    Legacy mechanism to select the TLS protocol version to use, it does +

    secureContext?: SecureContext

    An optional TLS context object from tls.createSecureContext()

    +
    secureProtocol?: string

    Legacy mechanism to select the TLS protocol version to use, it does not support independent control of the minimum and maximum version, and does not support limiting the protocol to TLSv1.3. Use minVersion and maxVersion instead. The possible values are listed as @@ -123,5 +123,5 @@ any TLS protocol version up to TLSv1.3. It is not recommended to use TLS versions less than 1.2, but it may be required for interoperability. Default: none, see minVersion.

    -
    serverApi?: ServerApi
    servername?: string
    session?: Buffer

    An optional Buffer instance containing a TLS session.

    -
    socketTimeoutMS?: number
    tls: boolean
    +
    serverApi?: ServerApi
    servername?: string
    session?: Buffer

    An optional Buffer instance containing a TLS session.

    +
    socketTimeoutMS?: number
    tls: boolean
    diff --git a/docs/Next/interfaces/ConnectionPoolOptions.html b/docs/Next/interfaces/ConnectionPoolOptions.html index 15b2f12a029..b9c2a4bf819 100644 --- a/docs/Next/interfaces/ConnectionPoolOptions.html +++ b/docs/Next/interfaces/ConnectionPoolOptions.html @@ -1,4 +1,4 @@ -ConnectionPoolOptions | mongodb

    Interface ConnectionPoolOptions

    interface ConnectionPoolOptions {
        allowPartialTrustChain?: boolean;
        ALPNProtocols?: Uint8Array | string[] | Uint8Array[];
        autoSelectFamily?: boolean;
        autoSelectFamilyAttemptTimeout?: number;
        ca?: string | Buffer | (string | Buffer)[];
        cancellationToken?: CancellationToken;
        cert?: string | Buffer | (string | Buffer)[];
        checkServerIdentity?: ((hostname: string, cert: PeerCertificate) => Error | undefined);
        ciphers?: string;
        compressors?: (
            | "none"
            | "snappy"
            | "zlib"
            | "zstd")[];
        connectTimeoutMS?: number;
        credentials?: MongoCredentials;
        crl?: string | Buffer | (string | Buffer)[];
        ecdhCurve?: string;
        family?: number;
        hints?: number;
        hostAddress: HostAddress;
        keepAliveInitialDelay?: number;
        key?: string | Buffer | (string | Buffer | KeyObject)[];
        loadBalanced: boolean;
        localAddress?: string;
        localPort?: number;
        logicalSessionTimeoutMinutes?: number;
        lookup?: LookupFunction;
        maxConnecting: number;
        maxIdleTimeMS: number;
        maxPoolSize: number;
        metadata: ClientMetadata;
        minDHSize?: number;
        minPoolSize: number;
        monitorCommands: boolean;
        noDelay?: boolean;
        passphrase?: string;
        pfx?: string | Buffer | (string | Buffer | PxfObject)[];
        proxyHost?: string;
        proxyPassword?: string;
        proxyPort?: number;
        proxyUsername?: string;
        rejectUnauthorized?: boolean;
        secureContext?: SecureContext;
        secureProtocol?: string;
        serverApi?: ServerApi;
        servername?: string;
        session?: Buffer;
        socketTimeoutMS?: number;
        tls: boolean;
        waitQueueTimeoutMS: number;
    }

    Hierarchy

    Properties

    allowPartialTrustChain? +ConnectionPoolOptions | mongodb

    Interface ConnectionPoolOptions

    interface ConnectionPoolOptions {
        allowPartialTrustChain?: boolean;
        ALPNProtocols?: Uint8Array | string[] | Uint8Array[];
        autoSelectFamily?: boolean;
        autoSelectFamilyAttemptTimeout?: number;
        ca?: string | Buffer | (string | Buffer)[];
        cancellationToken?: CancellationToken;
        cert?: string | Buffer | (string | Buffer)[];
        checkServerIdentity?: ((hostname: string, cert: PeerCertificate) => Error | undefined);
        ciphers?: string;
        compressors?: (
            | "none"
            | "snappy"
            | "zlib"
            | "zstd")[];
        connectTimeoutMS?: number;
        credentials?: MongoCredentials;
        crl?: string | Buffer | (string | Buffer)[];
        ecdhCurve?: string;
        family?: number;
        hints?: number;
        hostAddress: HostAddress;
        keepAliveInitialDelay?: number;
        key?: string | Buffer | (string | Buffer | KeyObject)[];
        loadBalanced: boolean;
        localAddress?: string;
        localPort?: number;
        logicalSessionTimeoutMinutes?: number;
        lookup?: LookupFunction;
        maxConnecting: number;
        maxIdleTimeMS: number;
        maxPoolSize: number;
        metadata: ClientMetadata;
        minDHSize?: number;
        minPoolSize: number;
        monitorCommands: boolean;
        noDelay?: boolean;
        passphrase?: string;
        pfx?: string | Buffer | (string | Buffer | PxfObject)[];
        proxyHost?: string;
        proxyPassword?: string;
        proxyPort?: number;
        proxyUsername?: string;
        rejectUnauthorized?: boolean;
        secureContext?: SecureContext;
        secureProtocol?: string;
        serverApi?: ServerApi;
        servername?: string;
        session?: Buffer;
        socketTimeoutMS?: number;
        tls: boolean;
        waitQueueTimeoutMS: number;
    }

    Hierarchy

    Properties

    allowPartialTrustChain?: boolean

    Treat intermediate (non-self-signed) certificates in the trust CA certificate list as trusted.

    v22.9.0, v20.18.0

    -
    ALPNProtocols?: Uint8Array | string[] | Uint8Array[]

    An array of strings or a Buffer naming possible ALPN protocols. +

    ALPNProtocols?: Uint8Array | string[] | Uint8Array[]

    An array of strings or a Buffer naming possible ALPN protocols. (Protocols should be ordered by their priority.)

    -
    autoSelectFamily?: boolean

    v18.13.0

    +
    autoSelectFamily?: boolean

    v18.13.0

    autoSelectFamilyAttemptTimeout?: number

    v18.13.0

    ca?: string | Buffer | (string | Buffer)[]

    Optionally override the trusted CA certificates. Default is to trust the well-known CAs curated by Mozilla. Mozilla's CAs are completely replaced when CAs are explicitly specified using this option.

    -
    cancellationToken?: CancellationToken
    cert?: string | Buffer | (string | Buffer)[]

    Cert chains in PEM format. One cert chain should be provided per +

    cancellationToken?: CancellationToken
    cert?: string | Buffer | (string | Buffer)[]

    Cert chains in PEM format. One cert chain should be provided per private key. Each cert chain should consist of the PEM formatted certificate for a provided private key, followed by the PEM formatted intermediate certificates (if any), in order, and not @@ -64,7 +64,7 @@ be in the same order as their private keys in key. If the intermediate certificates are not provided, the peer will not be able to validate the certificate, and the handshake will fail.

    -
    checkServerIdentity?: ((hostname: string, cert: PeerCertificate) => Error | undefined)

    Type declaration

      • (hostname, cert): Error | undefined
      • Verifies the certificate cert is issued to hostname.

        +
    checkServerIdentity?: ((hostname: string, cert: PeerCertificate) => Error | undefined)

    Type declaration

      • (hostname, cert): Error | undefined
      • Verifies the certificate cert is issued to hostname.

        Returns Error object, populating it with reason, host, and cert on failure. On success, returns undefined.

        This function is intended to be used in combination with thecheckServerIdentity option that can be passed to connect and as @@ -80,19 +80,19 @@

        Parameters

        • hostname: string

          The host name or IP address to verify the certificate against.

        • cert: PeerCertificate

          A certificate object representing the peer's certificate.

        Returns Error | undefined

        v0.8.4

        -
    ciphers?: string

    Cipher suite specification, replacing the default. For more +

    ciphers?: string

    Cipher suite specification, replacing the default. For more information, see modifying the default cipher suite. Permitted ciphers can be obtained via tls.getCiphers(). Cipher names must be uppercased in order for OpenSSL to accept them.

    -
    compressors?: (
        | "none"
        | "snappy"
        | "zlib"
        | "zstd")[]
    connectTimeoutMS?: number
    credentials?: MongoCredentials
    crl?: string | Buffer | (string | Buffer)[]

    PEM formatted CRLs (Certificate Revocation Lists).

    -
    ecdhCurve?: string

    A string describing a named curve or a colon separated list of curve +

    compressors?: (
        | "none"
        | "snappy"
        | "zlib"
        | "zstd")[]
    connectTimeoutMS?: number
    credentials?: MongoCredentials
    crl?: string | Buffer | (string | Buffer)[]

    PEM formatted CRLs (Certificate Revocation Lists).

    +
    ecdhCurve?: string

    A string describing a named curve or a colon separated list of curve NIDs or names, for example P-521:P-384:P-256, to use for ECDH key agreement. Set to auto to select the curve automatically. Use crypto.getCurves() to obtain a list of available curve names. On recent releases, openssl ecparam -list_curves will also display the name and description of each available elliptic curve. Default: tls.DEFAULT_ECDH_CURVE.

    -
    family?: number
    hints?: number
    hostAddress: HostAddress
    keepAliveInitialDelay?: number

    Node.JS socket option to set the time the first keepalive probe is sent on an idle socket. Defaults to 120000ms

    +
    family?: number
    hints?: number
    hostAddress: HostAddress
    keepAliveInitialDelay?: number

    Node.JS socket option to set the time the first keepalive probe is sent on an idle socket. Defaults to 120000ms

    key?: string | Buffer | (string | Buffer | KeyObject)[]

    Private keys in PEM format. PEM allows the option of private keys being encrypted. Encrypted keys will be decrypted with options.passphrase. Multiple keys using different algorithms can be @@ -101,13 +101,13 @@ passphrase: ]}. The object form can only occur in an array. object.passphrase is optional. Encrypted keys will be decrypted with object.passphrase if provided, or options.passphrase if it is not.

    -
    loadBalanced: boolean

    If we are in load balancer mode.

    -
    localAddress?: string
    localPort?: number
    logicalSessionTimeoutMinutes?: number
    lookup?: LookupFunction
    maxConnecting: number

    The maximum number of connections that may be in the process of being established concurrently by the connection pool.

    -
    maxIdleTimeMS: number

    The maximum amount of time a connection should remain idle in the connection pool before being marked idle.

    -
    maxPoolSize: number

    The maximum number of connections that may be associated with a pool at a given time. This includes in use and available connections.

    -
    metadata: ClientMetadata
    minDHSize?: number
    minPoolSize: number

    The minimum number of connections that MUST exist at any moment in a single connection pool.

    -
    monitorCommands: boolean
    noDelay?: boolean
    passphrase?: string

    Shared passphrase used for a single private key and/or a PFX.

    -
    pfx?: string | Buffer | (string | Buffer | PxfObject)[]

    PFX or PKCS12 encoded private key and certificate chain. pfx is an +

    loadBalanced: boolean

    If we are in load balancer mode.

    +
    localAddress?: string
    localPort?: number
    logicalSessionTimeoutMinutes?: number
    lookup?: LookupFunction
    maxConnecting: number

    The maximum number of connections that may be in the process of being established concurrently by the connection pool.

    +
    maxIdleTimeMS: number

    The maximum amount of time a connection should remain idle in the connection pool before being marked idle.

    +
    maxPoolSize: number

    The maximum number of connections that may be associated with a pool at a given time. This includes in use and available connections.

    +
    metadata: ClientMetadata
    minDHSize?: number
    minPoolSize: number

    The minimum number of connections that MUST exist at any moment in a single connection pool.

    +
    monitorCommands: boolean
    noDelay?: boolean
    passphrase?: string

    Shared passphrase used for a single private key and/or a PFX.

    +
    pfx?: string | Buffer | (string | Buffer | PxfObject)[]

    PFX or PKCS12 encoded private key and certificate chain. pfx is an alternative to providing key and cert individually. PFX is usually encrypted, if it is, passphrase will be used to decrypt it. Multiple PFX can be provided either as an array of unencrypted PFX buffers, @@ -115,14 +115,14 @@ passphrase: ]}. The object form can only occur in an array. object.passphrase is optional. Encrypted PFX will be decrypted with object.passphrase if provided, or options.passphrase if it is not.

    -
    proxyHost?: string
    proxyPassword?: string
    proxyPort?: number
    proxyUsername?: string
    rejectUnauthorized?: boolean

    If true the server will reject any connection which is not +

    proxyHost?: string
    proxyPassword?: string
    proxyPort?: number
    proxyUsername?: string
    rejectUnauthorized?: boolean

    If true the server will reject any connection which is not authorized with the list of supplied CAs. This option only has an effect if requestCert is true.

    true
     
    -
    secureContext?: SecureContext

    An optional TLS context object from tls.createSecureContext()

    -
    secureProtocol?: string

    Legacy mechanism to select the TLS protocol version to use, it does +

    secureContext?: SecureContext

    An optional TLS context object from tls.createSecureContext()

    +
    secureProtocol?: string

    Legacy mechanism to select the TLS protocol version to use, it does not support independent control of the minimum and maximum version, and does not support limiting the protocol to TLSv1.3. Use minVersion and maxVersion instead. The possible values are listed as @@ -131,6 +131,6 @@ any TLS protocol version up to TLSv1.3. It is not recommended to use TLS versions less than 1.2, but it may be required for interoperability. Default: none, see minVersion.

    -
    serverApi?: ServerApi
    servername?: string
    session?: Buffer

    An optional Buffer instance containing a TLS session.

    -
    socketTimeoutMS?: number
    tls: boolean
    waitQueueTimeoutMS: number

    The maximum amount of time operation execution should wait for a connection to become available. The default is 0 which means there is no limit.

    -
    +
    serverApi?: ServerApi
    servername?: string
    session?: Buffer

    An optional Buffer instance containing a TLS session.

    +
    socketTimeoutMS?: number
    tls: boolean
    waitQueueTimeoutMS: number

    The maximum amount of time operation execution should wait for a connection to become available. The default is 0 which means there is no limit.

    +
    diff --git a/docs/Next/interfaces/CountDocumentsOptions.html b/docs/Next/interfaces/CountDocumentsOptions.html index 7f6e3d7ef51..ffe7aee46f4 100644 --- a/docs/Next/interfaces/CountDocumentsOptions.html +++ b/docs/Next/interfaces/CountDocumentsOptions.html @@ -35,33 +35,33 @@ willRetryWrite? writeConcern?

    Properties

    allowDiskUse?: boolean

    allowDiskUse lets the server know if it can use disk to store temporary results for the aggregation (requires mongodb 2.6 >).

    -
    authdb?: string
    batchSize?: number

    The number of documents to return per batch. See aggregation documentation.

    -
    bsonRegExp?: boolean

    return BSON regular expressions as BSONRegExp instances.

    +
    authdb?: string
    batchSize?: number

    The number of documents to return per batch. See aggregation documentation.

    +
    bsonRegExp?: boolean

    return BSON regular expressions as BSONRegExp instances.

    false

    bypassDocumentValidation?: boolean

    Allow driver to bypass schema validation.

    -
    checkKeys?: boolean

    the serializer will check if keys are valid.

    +
    checkKeys?: boolean

    the serializer will check if keys are valid.

    false

    collation?: CollationOptions

    Specify collation.

    -
    comment?: unknown

    Comment to apply to the operation.

    +
    comment?: unknown

    Comment to apply to the operation.

    In server versions pre-4.4, 'comment' must be string. A server error will be thrown if any other type is provided.

    In server versions 4.4 and above, 'comment' can be any valid BSON type.

    cursor?: Document

    Return the query as cursor, on 2.6 > it returns as a real cursor on pre 2.6 it returns as an emulated cursor.

    -
    dbName?: string
    enableUtf8Validation?: boolean

    Enable utf8 validation when deserializing BSON documents. Defaults to true.

    +
    dbName?: string
    enableUtf8Validation?: boolean

    Enable utf8 validation when deserializing BSON documents. Defaults to true.

    Specifies the verbosity mode for the explain output.

    This API is deprecated in favor of collection.aggregate().explain() or db.aggregate().explain().

    -
    fieldsAsRaw?: Document

    allow to specify if there what fields we wish to return as unserialized raw buffer.

    +
    fieldsAsRaw?: Document

    allow to specify if there what fields we wish to return as unserialized raw buffer.

    null

    hint?: Hint

    Add an index selection hint to an aggregation command

    -
    ignoreUndefined?: boolean

    serialize will not emit undefined fields +

    ignoreUndefined?: boolean

    serialize will not emit undefined fields note that the driver sets this to false

    true

    let?: Document

    Map of parameter names and values that can be accessed using $$var (requires MongoDB 5.0).

    -
    limit?: number

    The maximum amount of documents to consider.

    +
    limit?: number

    The maximum amount of documents to consider.

    maxAwaitTimeMS?: number

    The maximum amount of time for the server to wait on new documents to satisfy a tailable cursor query.

    -
    maxTimeMS?: number

    Specifies a cumulative time limit in milliseconds for processing operations on the cursor. MongoDB interrupts the operation at the earliest following interrupt point.

    -
    noResponse?: boolean
    omitReadPreference?: boolean
    out?: string
    promoteBuffers?: boolean

    when deserializing a Binary will return it as a node.js Buffer instance.

    +
    maxTimeMS?: number

    Specifies a cumulative time limit in milliseconds for processing operations on the cursor. MongoDB interrupts the operation at the earliest following interrupt point.

    +
    noResponse?: boolean
    omitReadPreference?: boolean
    out?: string
    promoteBuffers?: boolean

    when deserializing a Binary will return it as a node.js Buffer instance.

    false

    promoteLongs?: boolean

    when deserializing a Long will fit it into a Number if it's smaller than 53 bits.

    true

    diff --git a/docs/Next/interfaces/GCPEncryptionKeyOptions.html b/docs/Next/interfaces/GCPEncryptionKeyOptions.html index 8bc47660012..d023375ed98 100644 --- a/docs/Next/interfaces/GCPEncryptionKeyOptions.html +++ b/docs/Next/interfaces/GCPEncryptionKeyOptions.html @@ -1,14 +1,14 @@ GCPEncryptionKeyOptions | mongodb

    Interface GCPEncryptionKeyOptions

    Configuration options for making an AWS encryption key

    -
    interface GCPEncryptionKeyOptions {
        endpoint?: string;
        keyName: string;
        keyRing: string;
        keyVersion?: string;
        location: string;
        projectId: string;
    }

    Properties

    interface GCPEncryptionKeyOptions {
        endpoint?: string;
        keyName: string;
        keyRing: string;
        keyVersion?: string;
        location: string;
        projectId: string;
    }

    Properties

    endpoint?: string

    KMS URL, defaults to https://www.googleapis.com/auth/cloudkms

    -
    keyName: string

    Key name

    -
    keyRing: string

    Key ring name

    -
    keyVersion?: string

    Key version

    -
    location: string

    Location name (e.g. "global")

    -
    projectId: string

    GCP project ID

    -
    +
    keyName: string

    Key name

    +
    keyRing: string

    Key ring name

    +
    keyVersion?: string

    Key version

    +
    location: string

    Location name (e.g. "global")

    +
    projectId: string

    GCP project ID

    +
    diff --git a/docs/Next/interfaces/KMIPEncryptionKeyOptions.html b/docs/Next/interfaces/KMIPEncryptionKeyOptions.html index 7c1f351c018..1b0ee3fa810 100644 --- a/docs/Next/interfaces/KMIPEncryptionKeyOptions.html +++ b/docs/Next/interfaces/KMIPEncryptionKeyOptions.html @@ -1,10 +1,10 @@ KMIPEncryptionKeyOptions | mongodb

    Interface KMIPEncryptionKeyOptions

    Configuration options for making a KMIP encryption key

    -
    interface KMIPEncryptionKeyOptions {
        delegated?: boolean;
        endpoint?: string;
        keyId?: string;
    }

    Properties

    interface KMIPEncryptionKeyOptions {
        delegated?: boolean;
        endpoint?: string;
        keyId?: string;
    }

    Properties

    delegated?: boolean

    If true, this key should be decrypted by the KMIP server.

    Requires mongodb-client-encryption>=6.0.1.

    -
    endpoint?: string

    Host with optional port.

    -
    keyId?: string

    keyId is the KMIP Unique Identifier to a 96 byte KMIP Secret Data managed object.

    +
    endpoint?: string

    Host with optional port.

    +
    keyId?: string

    keyId is the KMIP Unique Identifier to a 96 byte KMIP Secret Data managed object.

    If keyId is omitted, a random 96 byte KMIP Secret Data managed object will be created.

    -
    +
    diff --git a/docs/Next/interfaces/MongoClientOptions.html b/docs/Next/interfaces/MongoClientOptions.html index 2a4c20e0946..4af02e68e60 100644 --- a/docs/Next/interfaces/MongoClientOptions.html +++ b/docs/Next/interfaces/MongoClientOptions.html @@ -1,6 +1,6 @@ MongoClientOptions | mongodb

    Interface MongoClientOptions

    Describes all possible URI query options for the mongo client

    interface MongoClientOptions {
        allowPartialTrustChain?: boolean;
        ALPNProtocols?: Uint8Array | string[] | Uint8Array[];
        appName?: string;
        auth?: Auth;
        authMechanism?: AuthMechanism;
        authMechanismProperties?: AuthMechanismProperties;
        authSource?: string;
        autoEncryption?: AutoEncryptionOptions;
        autoSelectFamily?: boolean;
        autoSelectFamilyAttemptTimeout?: number;
        bsonRegExp?: boolean;
        ca?: string | Buffer | (string | Buffer)[];
        cert?: string | Buffer | (string | Buffer)[];
        checkKeys?: boolean;
        checkServerIdentity?: ((hostname: string, cert: PeerCertificate) => Error | undefined);
        ciphers?: string;
        compressors?: string | (
            | "none"
            | "snappy"
            | "zlib"
            | "zstd")[];
        connectTimeoutMS?: number;
        crl?: string | Buffer | (string | Buffer)[];
        directConnection?: boolean;
        driverInfo?: DriverInfo;
        ecdhCurve?: string;
        enableUtf8Validation?: boolean;
        family?: number;
        fieldsAsRaw?: Document;
        forceServerObjectId?: boolean;
        heartbeatFrequencyMS?: number;
        hints?: number;
        ignoreUndefined?: boolean;
        journal?: boolean;
        keepAliveInitialDelay?: number;
        key?: string | Buffer | (string | Buffer | KeyObject)[];
        loadBalanced?: boolean;
        localAddress?: string;
        localPort?: number;
        localThresholdMS?: number;
        lookup?: LookupFunction;
        maxConnecting?: number;
        maxIdleTimeMS?: number;
        maxPoolSize?: number;
        maxStalenessSeconds?: number;
        minDHSize?: number;
        minHeartbeatFrequencyMS?: number;
        minPoolSize?: number;
        mongodbLogComponentSeverities?: LogComponentSeveritiesClientOptions;
        mongodbLogMaxDocumentLength?: number;
        mongodbLogPath?: MongoDBLogWritable | "stdout" | "stderr";
        monitorCommands?: boolean;
        noDelay?: boolean;
        passphrase?: string;
        pfx?: string | Buffer | (string | Buffer | PxfObject)[];
        pkFactory?: PkFactory;
        promoteBuffers?: boolean;
        promoteLongs?: boolean;
        promoteValues?: boolean;
        proxyHost?: string;
        proxyPassword?: string;
        proxyPort?: number;
        proxyUsername?: string;
        raw?: boolean;
        readConcern?: ReadConcernLike;
        readConcernLevel?: ReadConcernLevel;
        readPreference?: ReadPreference | ReadPreferenceMode;
        readPreferenceTags?: TagSet[];
        rejectUnauthorized?: boolean;
        replicaSet?: string;
        retryReads?: boolean;
        retryWrites?: boolean;
        secureContext?: SecureContext;
        secureProtocol?: string;
        serializeFunctions?: boolean;
        serverApi?: "1" | ServerApi;
        serverMonitoringMode?: ServerMonitoringMode;
        servername?: string;
        serverSelectionTimeoutMS?: number;
        session?: Buffer;
        socketTimeoutMS?: number;
        srvMaxHosts?: number;
        srvServiceName?: string;
        ssl?: boolean;
        timeoutMS?: number;
        tls?: boolean;
        tlsAllowInvalidCertificates?: boolean;
        tlsAllowInvalidHostnames?: boolean;
        tlsCAFile?: string;
        tlsCertificateKeyFile?: string;
        tlsCertificateKeyFilePassword?: string;
        tlsCRLFile?: string;
        tlsInsecure?: boolean;
        useBigInt64?: boolean;
        w?: W;
        waitQueueTimeoutMS?: number;
        writeConcern?: WriteConcern | WriteConcernSettings;
        wtimeoutMS?: number;
        zlibCompressionLevel?:
            | 0
            | 5
            | 1
            | 3
            | 9
            | 4
            | 2
            | 8
            | 7
            | 6;
    }

    Hierarchy (view full)

    Properties

    interface MongoClientOptions {
        allowPartialTrustChain?: boolean;
        ALPNProtocols?: Uint8Array | string[] | Uint8Array[];
        appName?: string;
        auth?: Auth;
        authMechanism?: AuthMechanism;
        authMechanismProperties?: AuthMechanismProperties;
        authSource?: string;
        autoEncryption?: AutoEncryptionOptions;
        autoSelectFamily?: boolean;
        autoSelectFamilyAttemptTimeout?: number;
        bsonRegExp?: boolean;
        ca?: string | Buffer | (string | Buffer)[];
        cert?: string | Buffer | (string | Buffer)[];
        checkKeys?: boolean;
        checkServerIdentity?: ((hostname: string, cert: PeerCertificate) => Error | undefined);
        ciphers?: string;
        compressors?: string | (
            | "none"
            | "snappy"
            | "zlib"
            | "zstd")[];
        connectTimeoutMS?: number;
        crl?: string | Buffer | (string | Buffer)[];
        directConnection?: boolean;
        driverInfo?: DriverInfo;
        ecdhCurve?: string;
        enableUtf8Validation?: boolean;
        family?: number;
        fieldsAsRaw?: Document;
        forceServerObjectId?: boolean;
        heartbeatFrequencyMS?: number;
        hints?: number;
        ignoreUndefined?: boolean;
        journal?: boolean;
        keepAliveInitialDelay?: number;
        key?: string | Buffer | (string | Buffer | KeyObject)[];
        loadBalanced?: boolean;
        localAddress?: string;
        localPort?: number;
        localThresholdMS?: number;
        lookup?: LookupFunction;
        maxConnecting?: number;
        maxIdleTimeMS?: number;
        maxPoolSize?: number;
        maxStalenessSeconds?: number;
        minDHSize?: number;
        minHeartbeatFrequencyMS?: number;
        minPoolSize?: number;
        mongodbLogComponentSeverities?: LogComponentSeveritiesClientOptions;
        mongodbLogMaxDocumentLength?: number;
        mongodbLogPath?: MongoDBLogWritable | "stdout" | "stderr";
        monitorCommands?: boolean;
        noDelay?: boolean;
        passphrase?: string;
        pfx?: string | Buffer | (string | Buffer | PxfObject)[];
        pkFactory?: PkFactory;
        promoteBuffers?: boolean;
        promoteLongs?: boolean;
        promoteValues?: boolean;
        proxyHost?: string;
        proxyPassword?: string;
        proxyPort?: number;
        proxyUsername?: string;
        raw?: boolean;
        readConcern?: ReadConcernLike;
        readConcernLevel?: ReadConcernLevel;
        readPreference?: ReadPreference | ReadPreferenceMode;
        readPreferenceTags?: TagSet[];
        rejectUnauthorized?: boolean;
        replicaSet?: string;
        retryReads?: boolean;
        retryWrites?: boolean;
        secureContext?: SecureContext;
        secureProtocol?: string;
        serializeFunctions?: boolean;
        serverApi?: "1" | ServerApi;
        serverMonitoringMode?: ServerMonitoringMode;
        servername?: string;
        serverSelectionTimeoutMS?: number;
        session?: Buffer;
        socketTimeoutMS?: number;
        srvMaxHosts?: number;
        srvServiceName?: string;
        ssl?: boolean;
        timeoutMS?: number;
        tls?: boolean;
        tlsAllowInvalidCertificates?: boolean;
        tlsAllowInvalidHostnames?: boolean;
        tlsCAFile?: string;
        tlsCertificateKeyFile?: string;
        tlsCertificateKeyFilePassword?: string;
        tlsCRLFile?: string;
        tlsInsecure?: boolean;
        useBigInt64?: boolean;
        w?: W;
        waitQueueTimeoutMS?: number;
        writeConcern?: WriteConcern | WriteConcernSettings;
        wtimeoutMS?: number;
        zlibCompressionLevel?:
            | 0
            | 5
            | 1
            | 3
            | 9
            | 4
            | 2
            | 8
            | 6
            | 7;
    }

    Hierarchy (view full)

    Properties

    allowPartialTrustChain?: boolean

    Treat intermediate (non-self-signed) certificates in the trust CA certificate list as trusted.

    v22.9.0, v20.18.0

    -
    ALPNProtocols?: Uint8Array | string[] | Uint8Array[]

    An array of strings or a Buffer naming possible ALPN protocols. +

    ALPNProtocols?: Uint8Array | string[] | Uint8Array[]

    An array of strings or a Buffer naming possible ALPN protocols. (Protocols should be ordered by their priority.)

    -
    appName?: string

    The name of the application that created this MongoClient instance. MongoDB 3.4 and newer will print this value in the server log upon establishing each connection. It is also recorded in the slow query log and profile collections

    +
    appName?: string

    The name of the application that created this MongoClient instance. MongoDB 3.4 and newer will print this value in the server log upon establishing each connection. It is also recorded in the slow query log and profile collections

    auth?: Auth

    The auth settings for when connection to server.

    authMechanism?: AuthMechanism

    Specify the authentication mechanism that MongoDB will use to authenticate the connection.

    authMechanismProperties?: AuthMechanismProperties

    Specify properties for the specified authMechanism as a comma-separated list of colon-separated key-value pairs.

    @@ -122,7 +122,7 @@
    ca?: string | Buffer | (string | Buffer)[]

    Optionally override the trusted CA certificates. Default is to trust the well-known CAs curated by Mozilla. Mozilla's CAs are completely replaced when CAs are explicitly specified using this option.

    -
    cert?: string | Buffer | (string | Buffer)[]

    Cert chains in PEM format. One cert chain should be provided per +

    cert?: string | Buffer | (string | Buffer)[]

    Cert chains in PEM format. One cert chain should be provided per private key. Each cert chain should consist of the PEM formatted certificate for a provided private key, followed by the PEM formatted intermediate certificates (if any), in order, and not @@ -131,7 +131,7 @@ be in the same order as their private keys in key. If the intermediate certificates are not provided, the peer will not be able to validate the certificate, and the handshake will fail.

    -
    checkKeys?: boolean

    the serializer will check if keys are valid.

    +
    checkKeys?: boolean

    the serializer will check if keys are valid.

    false

    checkServerIdentity?: ((hostname: string, cert: PeerCertificate) => Error | undefined)

    Type declaration

      • (hostname, cert): Error | undefined
      • Verifies the certificate cert is issued to hostname.

        Returns Error object, populating it with reason, host, and cert on @@ -149,14 +149,14 @@

        Parameters

        • hostname: string

          The host name or IP address to verify the certificate against.

        • cert: PeerCertificate

          A certificate object representing the peer's certificate.

        Returns Error | undefined

        v0.8.4

        -
    ciphers?: string

    Cipher suite specification, replacing the default. For more +

    ciphers?: string

    Cipher suite specification, replacing the default. For more information, see modifying the default cipher suite. Permitted ciphers can be obtained via tls.getCiphers(). Cipher names must be uppercased in order for OpenSSL to accept them.

    -
    compressors?: string | (
        | "none"
        | "snappy"
        | "zlib"
        | "zstd")[]

    An array or comma-delimited string of compressors to enable network compression for communication between this client and a mongod/mongos instance.

    +
    compressors?: string | (
        | "none"
        | "snappy"
        | "zlib"
        | "zstd")[]

    An array or comma-delimited string of compressors to enable network compression for communication between this client and a mongod/mongos instance.

    connectTimeoutMS?: number

    The time in milliseconds to attempt a connection before timing out.

    crl?: string | Buffer | (string | Buffer)[]

    PEM formatted CRLs (Certificate Revocation Lists).

    -
    directConnection?: boolean

    Allow a driver to force a Single topology type with a connection string containing one host

    +
    directConnection?: boolean

    Allow a driver to force a Single topology type with a connection string containing one host

    driverInfo?: DriverInfo

    Allows a wrapping driver to amend the client metadata generated by the driver to include information about the wrapping driver

    ecdhCurve?: string

    A string describing a named curve or a colon separated list of curve NIDs or names, for example P-521:P-384:P-256, to use for ECDH key @@ -165,7 +165,7 @@ recent releases, openssl ecparam -list_curves will also display the name and description of each available elliptic curve. Default: tls.DEFAULT_ECDH_CURVE.

    -
    enableUtf8Validation?: boolean

    Enable utf8 validation when deserializing BSON documents. Defaults to true.

    +
    enableUtf8Validation?: boolean

    Enable utf8 validation when deserializing BSON documents. Defaults to true.

    family?: number
    fieldsAsRaw?: Document

    allow to specify if there what fields we wish to return as unserialized raw buffer.

    null

    forceServerObjectId?: boolean

    Force server to assign _id values instead of driver

    @@ -184,13 +184,13 @@ passphrase: ]}. The object form can only occur in an array. object.passphrase is optional. Encrypted keys will be decrypted with object.passphrase if provided, or options.passphrase if it is not.

    -
    loadBalanced?: boolean

    Instruct the driver it is connecting to a load balancer fronting a mongos like service

    +
    loadBalanced?: boolean

    Instruct the driver it is connecting to a load balancer fronting a mongos like service

    localAddress?: string
    localPort?: number
    localThresholdMS?: number

    The size (in milliseconds) of the latency window for selecting among multiple suitable MongoDB instances.

    lookup?: LookupFunction
    maxConnecting?: number

    The maximum number of connections that may be in the process of being established concurrently by the connection pool.

    maxIdleTimeMS?: number

    The maximum number of milliseconds that a connection can remain idle in the pool before being removed and closed.

    maxPoolSize?: number

    The maximum number of connections in the connection pool.

    maxStalenessSeconds?: number

    Specifies, in seconds, how stale a secondary can be before the client stops using it for read operations.

    -
    minDHSize?: number
    minHeartbeatFrequencyMS?: number

    Sets the minimum heartbeat frequency. In the event that the driver has to frequently re-check a server's availability, it will wait at least this long since the previous check to avoid wasted effort.

    +
    minDHSize?: number
    minHeartbeatFrequencyMS?: number

    Sets the minimum heartbeat frequency. In the event that the driver has to frequently re-check a server's availability, it will wait at least this long since the previous check to avoid wasted effort.

    minPoolSize?: number

    The minimum number of connections in the connection pool.

    mongodbLogComponentSeverities?: LogComponentSeveritiesClientOptions

    Enable logging level per component or use default to control any unset components.

    mongodbLogMaxDocumentLength?: number

    All BSON documents are stringified to EJSON. This controls the maximum length of those strings. @@ -199,7 +199,7 @@

    monitorCommands?: boolean

    Enable command monitoring for this client

    noDelay?: boolean

    TCP Connection no delay

    passphrase?: string

    Shared passphrase used for a single private key and/or a PFX.

    -
    pfx?: string | Buffer | (string | Buffer | PxfObject)[]

    PFX or PKCS12 encoded private key and certificate chain. pfx is an +

    pfx?: string | Buffer | (string | Buffer | PxfObject)[]

    PFX or PKCS12 encoded private key and certificate chain. pfx is an alternative to providing key and cert individually. PFX is usually encrypted, if it is, passphrase will be used to decrypt it. Multiple PFX can be provided either as an array of unencrypted PFX buffers, @@ -207,7 +207,7 @@ passphrase: ]}. The object form can only occur in an array. object.passphrase is optional. Encrypted PFX will be decrypted with object.passphrase if provided, or options.passphrase if it is not.

    -
    pkFactory?: PkFactory

    A primary key factory function for generation of custom _id keys

    +
    pkFactory?: PkFactory

    A primary key factory function for generation of custom _id keys

    promoteBuffers?: boolean

    when deserializing a Binary will return it as a node.js Buffer instance.

    false

    promoteLongs?: boolean

    when deserializing a Long will fit it into a Number if it's smaller than 53 bits.

    @@ -239,11 +239,11 @@
    replicaSet?: string

    Specifies the name of the replica set, if the mongod is a member of a replica set.

    +
    replicaSet?: string

    Specifies the name of the replica set, if the mongod is a member of a replica set.

    retryReads?: boolean

    Enables retryable reads.

    retryWrites?: boolean

    Enable retryable writes.

    secureContext?: SecureContext

    An optional TLS context object from tls.createSecureContext()

    -
    secureProtocol?: string

    Legacy mechanism to select the TLS protocol version to use, it does +

    secureProtocol?: string

    Legacy mechanism to select the TLS protocol version to use, it does not support independent control of the minimum and maximum version, and does not support limiting the protocol to TLSv1.3. Use minVersion and maxVersion instead. The possible values are listed as @@ -252,13 +252,13 @@

    serializeFunctions?: boolean

    serialize the javascript functions

    +
    serializeFunctions?: boolean

    serialize the javascript functions

    false

    serverApi?: "1" | ServerApi

    Server API version

    serverMonitoringMode?: ServerMonitoringMode

    Instructs the driver monitors to use a specific monitoring mode

    -
    servername?: string
    serverSelectionTimeoutMS?: number

    Specifies how long (in milliseconds) to block for server selection before throwing an exception.

    +
    servername?: string
    serverSelectionTimeoutMS?: number

    Specifies how long (in milliseconds) to block for server selection before throwing an exception.

    session?: Buffer

    An optional Buffer instance containing a TLS session.

    -
    socketTimeoutMS?: number

    The time in milliseconds to attempt a send or receive on a socket before the attempt times out.

    +
    socketTimeoutMS?: number

    The time in milliseconds to attempt a send or receive on a socket before the attempt times out.

    srvMaxHosts?: number

    The maximum number of hosts to connect to when using an srv connection string, a setting of 0 means unlimited hosts

    srvServiceName?: string

    Modifies the srv URI to look like:

    _{srvServiceName}._tcp.{hostname}.{domainname}

    @@ -283,5 +283,5 @@
    wtimeoutMS?: number

    The write concern timeout

    Please use the writeConcern option instead

    -
    zlibCompressionLevel?:
        | 0
        | 5
        | 1
        | 3
        | 9
        | 4
        | 2
        | 8
        | 7
        | 6

    An integer that specifies the compression level if using zlib for network compression.

    +
    zlibCompressionLevel?:
        | 0
        | 5
        | 1
        | 3
        | 9
        | 4
        | 2
        | 8
        | 6
        | 7

    An integer that specifies the compression level if using zlib for network compression.

    diff --git a/docs/Next/interfaces/MongoNetworkErrorOptions.html b/docs/Next/interfaces/MongoNetworkErrorOptions.html index 7373abfc252..b688bc725c3 100644 --- a/docs/Next/interfaces/MongoNetworkErrorOptions.html +++ b/docs/Next/interfaces/MongoNetworkErrorOptions.html @@ -1,4 +1,4 @@ -MongoNetworkErrorOptions | mongodb

    Interface MongoNetworkErrorOptions

    interface MongoNetworkErrorOptions {
        beforeHandshake?: boolean;
        cause?: Error;
    }

    Properties

    beforeHandshake? +MongoNetworkErrorOptions | mongodb

    Interface MongoNetworkErrorOptions

    interface MongoNetworkErrorOptions {
        beforeHandshake?: boolean;
        cause?: Error;
    }

    Properties

    beforeHandshake?: boolean

    Indicates the timeout happened before a connection handshake completed

    -
    cause?: Error
    +
    cause?: Error
    diff --git a/docs/Next/interfaces/MongoOptions.html b/docs/Next/interfaces/MongoOptions.html index 82c5b3ee108..12379d00bdf 100644 --- a/docs/Next/interfaces/MongoOptions.html +++ b/docs/Next/interfaces/MongoOptions.html @@ -11,7 +11,7 @@
  • DNS SRV records and TXT records
  • Not all options may be present after client construction as some are obtained from asynchronous operations.

    -
    interface MongoOptions {
        allowPartialTrustChain?: boolean;
        ALPNProtocols?: Uint8Array | string[] | Uint8Array[];
        appName?: string;
        autoEncryption: AutoEncryptionOptions;
        autoSelectFamily?: boolean;
        autoSelectFamilyAttemptTimeout?: number;
        ca?: string | Buffer | (string | Buffer)[];
        cert?: string | Buffer | (string | Buffer)[];
        checkServerIdentity?: ((hostname: string, cert: PeerCertificate) => Error | undefined);
        ciphers?: string;
        compressors: (
            | "none"
            | "snappy"
            | "zlib"
            | "zstd")[];
        connectTimeoutMS: number;
        credentials?: MongoCredentials;
        crl?: string | Buffer | (string | Buffer)[];
        dbName: string;
        directConnection: boolean;
        driverInfo: DriverInfo;
        ecdhCurve?: string;
        family?: number;
        forceServerObjectId: boolean;
        heartbeatFrequencyMS: number;
        hints?: number;
        hosts: HostAddress[];
        keepAliveInitialDelay?: number;
        key?: string | Buffer | (string | Buffer | KeyObject)[];
        loadBalanced: boolean;
        localAddress?: string;
        localPort?: number;
        localThresholdMS: number;
        lookup?: LookupFunction;
        maxConnecting: number;
        maxIdleTimeMS: number;
        maxPoolSize: number;
        metadata: ClientMetadata;
        minDHSize?: number;
        minHeartbeatFrequencyMS: number;
        minPoolSize: number;
        monitorCommands: boolean;
        noDelay: boolean;
        passphrase?: string;
        pfx?: string | Buffer | (string | Buffer | PxfObject)[];
        pkFactory: PkFactory;
        proxyHost?: string;
        proxyPassword?: string;
        proxyPort?: number;
        proxyUsername?: string;
        raw: boolean;
        readConcern: ReadConcern;
        readPreference: ReadPreference;
        rejectUnauthorized?: boolean;
        replicaSet: string;
        retryReads: boolean;
        retryWrites: boolean;
        secureContext?: SecureContext;
        secureProtocol?: string;
        serverApi: ServerApi;
        serverMonitoringMode: ServerMonitoringMode;
        servername?: string;
        serverSelectionTimeoutMS: number;
        session?: Buffer;
        socketTimeoutMS: number;
        srvHost?: string;
        srvMaxHosts: number;
        srvServiceName: string;
        timeoutMS?: number;
        tls: boolean;
        tlsAllowInvalidCertificates: boolean;
        tlsAllowInvalidHostnames: boolean;
        tlsCAFile?: string;
        tlsCertificateKeyFile?: string;
        tlsCRLFile?: string;
        tlsInsecure: boolean;
        waitQueueTimeoutMS: number;
        writeConcern: WriteConcern;
        zlibCompressionLevel:
            | 0
            | 1
            | 2
            | 3
            | 4
            | 5
            | 6
            | 7
            | 8
            | 9;
    }

    Hierarchy (view full)

    • Required<Pick<MongoClientOptions,
          | "autoEncryption"
          | "connectTimeoutMS"
          | "directConnection"
          | "driverInfo"
          | "forceServerObjectId"
          | "minHeartbeatFrequencyMS"
          | "heartbeatFrequencyMS"
          | "localThresholdMS"
          | "maxConnecting"
          | "maxIdleTimeMS"
          | "maxPoolSize"
          | "minPoolSize"
          | "monitorCommands"
          | "noDelay"
          | "pkFactory"
          | "raw"
          | "replicaSet"
          | "retryReads"
          | "retryWrites"
          | "serverSelectionTimeoutMS"
          | "socketTimeoutMS"
          | "srvMaxHosts"
          | "srvServiceName"
          | "tlsAllowInvalidCertificates"
          | "tlsAllowInvalidHostnames"
          | "tlsInsecure"
          | "waitQueueTimeoutMS"
          | "zlibCompressionLevel">>
    • SupportedNodeConnectionOptions
      • MongoOptions

    Properties

    interface MongoOptions {
        allowPartialTrustChain?: boolean;
        ALPNProtocols?: Uint8Array | string[] | Uint8Array[];
        appName?: string;
        autoEncryption: AutoEncryptionOptions;
        autoSelectFamily?: boolean;
        autoSelectFamilyAttemptTimeout?: number;
        ca?: string | Buffer | (string | Buffer)[];
        cert?: string | Buffer | (string | Buffer)[];
        checkServerIdentity?: ((hostname: string, cert: PeerCertificate) => Error | undefined);
        ciphers?: string;
        compressors: (
            | "none"
            | "snappy"
            | "zlib"
            | "zstd")[];
        connectTimeoutMS: number;
        credentials?: MongoCredentials;
        crl?: string | Buffer | (string | Buffer)[];
        dbName: string;
        directConnection: boolean;
        driverInfo: DriverInfo;
        ecdhCurve?: string;
        family?: number;
        forceServerObjectId: boolean;
        heartbeatFrequencyMS: number;
        hints?: number;
        hosts: HostAddress[];
        keepAliveInitialDelay?: number;
        key?: string | Buffer | (string | Buffer | KeyObject)[];
        loadBalanced: boolean;
        localAddress?: string;
        localPort?: number;
        localThresholdMS: number;
        lookup?: LookupFunction;
        maxConnecting: number;
        maxIdleTimeMS: number;
        maxPoolSize: number;
        metadata: ClientMetadata;
        minDHSize?: number;
        minHeartbeatFrequencyMS: number;
        minPoolSize: number;
        monitorCommands: boolean;
        noDelay: boolean;
        passphrase?: string;
        pfx?: string | Buffer | (string | Buffer | PxfObject)[];
        pkFactory: PkFactory;
        proxyHost?: string;
        proxyPassword?: string;
        proxyPort?: number;
        proxyUsername?: string;
        raw: boolean;
        readConcern: ReadConcern;
        readPreference: ReadPreference;
        rejectUnauthorized?: boolean;
        replicaSet: string;
        retryReads: boolean;
        retryWrites: boolean;
        secureContext?: SecureContext;
        secureProtocol?: string;
        serverApi: ServerApi;
        serverMonitoringMode: ServerMonitoringMode;
        servername?: string;
        serverSelectionTimeoutMS: number;
        session?: Buffer;
        socketTimeoutMS: number;
        srvHost?: string;
        srvMaxHosts: number;
        srvServiceName: string;
        timeoutMS?: number;
        tls: boolean;
        tlsAllowInvalidCertificates: boolean;
        tlsAllowInvalidHostnames: boolean;
        tlsCAFile?: string;
        tlsCertificateKeyFile?: string;
        tlsCRLFile?: string;
        tlsInsecure: boolean;
        waitQueueTimeoutMS: number;
        writeConcern: WriteConcern;
        zlibCompressionLevel:
            | 0
            | 1
            | 2
            | 3
            | 4
            | 5
            | 6
            | 7
            | 8
            | 9;
    }

    Hierarchy (view full)

    • Required<Pick<MongoClientOptions,
          | "autoEncryption"
          | "connectTimeoutMS"
          | "directConnection"
          | "driverInfo"
          | "forceServerObjectId"
          | "minHeartbeatFrequencyMS"
          | "heartbeatFrequencyMS"
          | "localThresholdMS"
          | "maxConnecting"
          | "maxIdleTimeMS"
          | "maxPoolSize"
          | "minPoolSize"
          | "monitorCommands"
          | "noDelay"
          | "pkFactory"
          | "raw"
          | "replicaSet"
          | "retryReads"
          | "retryWrites"
          | "serverSelectionTimeoutMS"
          | "socketTimeoutMS"
          | "srvMaxHosts"
          | "srvServiceName"
          | "tlsAllowInvalidCertificates"
          | "tlsAllowInvalidHostnames"
          | "tlsInsecure"
          | "waitQueueTimeoutMS"
          | "zlibCompressionLevel">>
    • SupportedNodeConnectionOptions
      • MongoOptions

    Properties

    allowPartialTrustChain?: boolean

    Treat intermediate (non-self-signed) certificates in the trust CA certificate list as trusted.

    v22.9.0, v20.18.0

    -
    ALPNProtocols?: Uint8Array | string[] | Uint8Array[]

    An array of strings or a Buffer naming possible ALPN protocols. +

    ALPNProtocols?: Uint8Array | string[] | Uint8Array[]

    An array of strings or a Buffer naming possible ALPN protocols. (Protocols should be ordered by their priority.)

    -
    appName?: string
    autoEncryption: AutoEncryptionOptions

    Optionally enable in-use auto encryption

    +
    appName?: string
    autoEncryption: AutoEncryptionOptions

    Optionally enable in-use auto encryption

    Automatic encryption is an enterprise only feature that only applies to operations on a collection. Automatic encryption is not supported for operations on a database or view, and operations that are not bypassed will result in error (see libmongocrypt: Auto Encryption Allow-List). To bypass automatic encryption for all operations, set bypassAutoEncryption=true in AutoEncryptionOpts.

    Automatic encryption requires the authenticated user to have the listCollections privilege action.

    @@ -106,7 +106,7 @@
    ca?: string | Buffer | (string | Buffer)[]

    Optionally override the trusted CA certificates. Default is to trust the well-known CAs curated by Mozilla. Mozilla's CAs are completely replaced when CAs are explicitly specified using this option.

    -
    cert?: string | Buffer | (string | Buffer)[]

    Cert chains in PEM format. One cert chain should be provided per +

    cert?: string | Buffer | (string | Buffer)[]

    Cert chains in PEM format. One cert chain should be provided per private key. Each cert chain should consist of the PEM formatted certificate for a provided private key, followed by the PEM formatted intermediate certificates (if any), in order, and not @@ -115,7 +115,7 @@ be in the same order as their private keys in key. If the intermediate certificates are not provided, the peer will not be able to validate the certificate, and the handshake will fail.

    -
    checkServerIdentity?: ((hostname: string, cert: PeerCertificate) => Error | undefined)

    Type declaration

      • (hostname, cert): Error | undefined
      • Verifies the certificate cert is issued to hostname.

        +
    checkServerIdentity?: ((hostname: string, cert: PeerCertificate) => Error | undefined)

    Type declaration

      • (hostname, cert): Error | undefined
      • Verifies the certificate cert is issued to hostname.

        Returns Error object, populating it with reason, host, and cert on failure. On success, returns undefined.

        This function is intended to be used in combination with thecheckServerIdentity option that can be passed to connect and as @@ -131,14 +131,14 @@

        Parameters

        • hostname: string

          The host name or IP address to verify the certificate against.

        • cert: PeerCertificate

          A certificate object representing the peer's certificate.

        Returns Error | undefined

        v0.8.4

        -
    ciphers?: string

    Cipher suite specification, replacing the default. For more +

    ciphers?: string

    Cipher suite specification, replacing the default. For more information, see modifying the default cipher suite. Permitted ciphers can be obtained via tls.getCiphers(). Cipher names must be uppercased in order for OpenSSL to accept them.

    -
    compressors: (
        | "none"
        | "snappy"
        | "zlib"
        | "zstd")[]
    connectTimeoutMS: number

    The time in milliseconds to attempt a connection before timing out.

    -
    credentials?: MongoCredentials
    crl?: string | Buffer | (string | Buffer)[]

    PEM formatted CRLs (Certificate Revocation Lists).

    -
    dbName: string
    directConnection: boolean

    Allow a driver to force a Single topology type with a connection string containing one host

    -
    driverInfo: DriverInfo

    Allows a wrapping driver to amend the client metadata generated by the driver to include information about the wrapping driver

    +
    compressors: (
        | "none"
        | "snappy"
        | "zlib"
        | "zstd")[]
    connectTimeoutMS: number

    The time in milliseconds to attempt a connection before timing out.

    +
    credentials?: MongoCredentials
    crl?: string | Buffer | (string | Buffer)[]

    PEM formatted CRLs (Certificate Revocation Lists).

    +
    dbName: string
    directConnection: boolean

    Allow a driver to force a Single topology type with a connection string containing one host

    +
    driverInfo: DriverInfo

    Allows a wrapping driver to amend the client metadata generated by the driver to include information about the wrapping driver

    ecdhCurve?: string

    A string describing a named curve or a colon separated list of curve NIDs or names, for example P-521:P-384:P-256, to use for ECDH key agreement. Set to auto to select the curve automatically. Use @@ -146,9 +146,9 @@ recent releases, openssl ecparam -list_curves will also display the name and description of each available elliptic curve. Default: tls.DEFAULT_ECDH_CURVE.

    -
    family?: number
    forceServerObjectId: boolean

    Force server to assign _id values instead of driver

    +
    family?: number
    forceServerObjectId: boolean

    Force server to assign _id values instead of driver

    heartbeatFrequencyMS: number

    heartbeatFrequencyMS controls when the driver checks the state of the MongoDB deployment. Specify the interval (in milliseconds) between checks, counted from the end of the previous check until the beginning of the next one.

    -
    hints?: number
    hosts: HostAddress[]
    keepAliveInitialDelay?: number

    Node.JS socket option to set the time the first keepalive probe is sent on an idle socket. Defaults to 120000ms

    +
    hints?: number
    hosts: HostAddress[]
    keepAliveInitialDelay?: number

    Node.JS socket option to set the time the first keepalive probe is sent on an idle socket. Defaults to 120000ms

    key?: string | Buffer | (string | Buffer | KeyObject)[]

    Private keys in PEM format. PEM allows the option of private keys being encrypted. Encrypted keys will be decrypted with options.passphrase. Multiple keys using different algorithms can be @@ -157,16 +157,16 @@ passphrase: ]}. The object form can only occur in an array. object.passphrase is optional. Encrypted keys will be decrypted with object.passphrase if provided, or options.passphrase if it is not.

    -
    loadBalanced: boolean
    localAddress?: string
    localPort?: number
    localThresholdMS: number

    The size (in milliseconds) of the latency window for selecting among multiple suitable MongoDB instances.

    +
    loadBalanced: boolean
    localAddress?: string
    localPort?: number
    localThresholdMS: number

    The size (in milliseconds) of the latency window for selecting among multiple suitable MongoDB instances.

    lookup?: LookupFunction
    maxConnecting: number

    The maximum number of connections that may be in the process of being established concurrently by the connection pool.

    maxIdleTimeMS: number

    The maximum number of milliseconds that a connection can remain idle in the pool before being removed and closed.

    maxPoolSize: number

    The maximum number of connections in the connection pool.

    -
    metadata: ClientMetadata
    minDHSize?: number
    minHeartbeatFrequencyMS: number

    Sets the minimum heartbeat frequency. In the event that the driver has to frequently re-check a server's availability, it will wait at least this long since the previous check to avoid wasted effort.

    +
    metadata: ClientMetadata
    minDHSize?: number
    minHeartbeatFrequencyMS: number

    Sets the minimum heartbeat frequency. In the event that the driver has to frequently re-check a server's availability, it will wait at least this long since the previous check to avoid wasted effort.

    minPoolSize: number

    The minimum number of connections in the connection pool.

    monitorCommands: boolean

    Enable command monitoring for this client

    noDelay: boolean

    TCP Connection no delay

    passphrase?: string

    Shared passphrase used for a single private key and/or a PFX.

    -
    pfx?: string | Buffer | (string | Buffer | PxfObject)[]

    PFX or PKCS12 encoded private key and certificate chain. pfx is an +

    pfx?: string | Buffer | (string | Buffer | PxfObject)[]

    PFX or PKCS12 encoded private key and certificate chain. pfx is an alternative to providing key and cert individually. PFX is usually encrypted, if it is, passphrase will be used to decrypt it. Multiple PFX can be provided either as an array of unencrypted PFX buffers, @@ -174,8 +174,8 @@ passphrase: ]}. The object form can only occur in an array. object.passphrase is optional. Encrypted PFX will be decrypted with object.passphrase if provided, or options.passphrase if it is not.

    -
    pkFactory: PkFactory

    A primary key factory function for generation of custom _id keys

    -
    proxyHost?: string
    proxyPassword?: string
    proxyPort?: number
    proxyUsername?: string
    raw: boolean

    Enabling the raw option will return a Node.js Buffer +

    pkFactory: PkFactory

    A primary key factory function for generation of custom _id keys

    +
    proxyHost?: string
    proxyPassword?: string
    proxyPort?: number
    proxyUsername?: string
    raw: boolean

    Enabling the raw option will return a Node.js Buffer which is allocated using allocUnsafe API. See this section from the Node.js Docs here for more detail about what "unsafe" refers to in this context. @@ -186,17 +186,17 @@

    Please note there is a known limitation where this option cannot be used at the MongoClient level (see NODE-3946). It does correctly work at Db, Collection, and per operation the same as other BSON options work.

    -
    readConcern: ReadConcern
    readPreference: ReadPreference
    rejectUnauthorized?: boolean

    If true the server will reject any connection which is not +

    readConcern: ReadConcern
    readPreference: ReadPreference
    rejectUnauthorized?: boolean

    If true the server will reject any connection which is not authorized with the list of supplied CAs. This option only has an effect if requestCert is true.

    true
     
    -
    replicaSet: string

    Specifies the name of the replica set, if the mongod is a member of a replica set.

    +
    replicaSet: string

    Specifies the name of the replica set, if the mongod is a member of a replica set.

    retryReads: boolean

    Enables retryable reads.

    retryWrites: boolean

    Enable retryable writes.

    secureContext?: SecureContext

    An optional TLS context object from tls.createSecureContext()

    -
    secureProtocol?: string

    Legacy mechanism to select the TLS protocol version to use, it does +

    secureProtocol?: string

    Legacy mechanism to select the TLS protocol version to use, it does not support independent control of the minimum and maximum version, and does not support limiting the protocol to TLSv1.3. Use minVersion and maxVersion instead. The possible values are listed as @@ -205,14 +205,14 @@

    serverApi: ServerApi
    serverMonitoringMode: ServerMonitoringMode
    servername?: string
    serverSelectionTimeoutMS: number

    Specifies how long (in milliseconds) to block for server selection before throwing an exception.

    +
    serverApi: ServerApi
    serverMonitoringMode: ServerMonitoringMode
    servername?: string
    serverSelectionTimeoutMS: number

    Specifies how long (in milliseconds) to block for server selection before throwing an exception.

    session?: Buffer

    An optional Buffer instance containing a TLS session.

    -
    socketTimeoutMS: number

    The time in milliseconds to attempt a send or receive on a socket before the attempt times out.

    -
    srvHost?: string
    srvMaxHosts: number

    The maximum number of hosts to connect to when using an srv connection string, a setting of 0 means unlimited hosts

    +
    socketTimeoutMS: number

    The time in milliseconds to attempt a send or receive on a socket before the attempt times out.

    +
    srvHost?: string
    srvMaxHosts: number

    The maximum number of hosts to connect to when using an srv connection string, a setting of 0 means unlimited hosts

    srvServiceName: string

    Modifies the srv URI to look like:

    _{srvServiceName}._tcp.{hostname}.{domainname}

    Querying this DNS URI is expected to respond with SRV records

    -
    timeoutMS?: number
    tls: boolean

    NOTE ABOUT TLS Options

    If tls is provided as an option, it is equivalent to setting the ssl option.

    +
    timeoutMS?: number
    tls: boolean

    NOTE ABOUT TLS Options

    If tls is provided as an option, it is equivalent to setting the ssl option.

    NodeJS native TLS options are passed through to the socket and retain their original types.

    @@ -275,9 +275,9 @@
    -
    +
    diff --git a/docs/Next/types/ConnectionPoolEvents.html b/docs/Next/types/ConnectionPoolEvents.html index 20f9ca9ba43..415a9949ff1 100644 --- a/docs/Next/types/ConnectionPoolEvents.html +++ b/docs/Next/types/ConnectionPoolEvents.html @@ -1 +1 @@ -ConnectionPoolEvents | mongodb

    Type Alias ConnectionPoolEvents

    ConnectionPoolEvents: {
        connectionCheckedIn(event: ConnectionCheckedInEvent): void;
        connectionCheckedOut(event: ConnectionCheckedOutEvent): void;
        connectionCheckOutFailed(event: ConnectionCheckOutFailedEvent): void;
        connectionCheckOutStarted(event: ConnectionCheckOutStartedEvent): void;
        connectionClosed(event: ConnectionClosedEvent): void;
        connectionCreated(event: ConnectionCreatedEvent): void;
        connectionPoolCleared(event: ConnectionPoolClearedEvent): void;
        connectionPoolClosed(event: ConnectionPoolClosedEvent): void;
        connectionPoolCreated(event: ConnectionPoolCreatedEvent): void;
        connectionPoolReady(event: ConnectionPoolReadyEvent): void;
        connectionReady(event: ConnectionReadyEvent): void;
    } & Omit<ConnectionEvents, "close" | "message">
    +ConnectionPoolEvents | mongodb

    Type Alias ConnectionPoolEvents

    ConnectionPoolEvents: {
        connectionCheckedIn(event: ConnectionCheckedInEvent): void;
        connectionCheckedOut(event: ConnectionCheckedOutEvent): void;
        connectionCheckOutFailed(event: ConnectionCheckOutFailedEvent): void;
        connectionCheckOutStarted(event: ConnectionCheckOutStartedEvent): void;
        connectionClosed(event: ConnectionClosedEvent): void;
        connectionCreated(event: ConnectionCreatedEvent): void;
        connectionPoolCleared(event: ConnectionPoolClearedEvent): void;
        connectionPoolClosed(event: ConnectionPoolClosedEvent): void;
        connectionPoolCreated(event: ConnectionPoolCreatedEvent): void;
        connectionPoolReady(event: ConnectionPoolReadyEvent): void;
        connectionReady(event: ConnectionReadyEvent): void;
    } & Omit<ConnectionEvents, "close" | "message">
    diff --git a/docs/Next/variables/AutoEncryptionLoggerLevel-1.html b/docs/Next/variables/AutoEncryptionLoggerLevel-1.html index 28ccead4906..5d1573f7510 100644 --- a/docs/Next/variables/AutoEncryptionLoggerLevel-1.html +++ b/docs/Next/variables/AutoEncryptionLoggerLevel-1.html @@ -1 +1 @@ -AutoEncryptionLoggerLevel | mongodb

    Variable AutoEncryptionLoggerLevelConst

    AutoEncryptionLoggerLevel: Readonly<{
        Error: 1;
        FatalError: 0;
        Info: 3;
        Trace: 4;
        Warning: 2;
    }> = ...
    +AutoEncryptionLoggerLevel | mongodb

    Variable AutoEncryptionLoggerLevelConst

    AutoEncryptionLoggerLevel: Readonly<{
        Error: 1;
        FatalError: 0;
        Info: 3;
        Trace: 4;
        Warning: 2;
    }> = ...
    diff --git a/docs/Next/variables/MONGO_CLIENT_EVENTS.html b/docs/Next/variables/MONGO_CLIENT_EVENTS.html index 52a3d491af3..39516c3555d 100644 --- a/docs/Next/variables/MONGO_CLIENT_EVENTS.html +++ b/docs/Next/variables/MONGO_CLIENT_EVENTS.html @@ -1 +1 @@ -MONGO_CLIENT_EVENTS | mongodb

    Variable MONGO_CLIENT_EVENTSConst

    MONGO_CLIENT_EVENTS: readonly ["connectionPoolCreated", "connectionPoolReady", "connectionPoolCleared", "connectionPoolClosed", "connectionCreated", "connectionReady", "connectionClosed", "connectionCheckOutStarted", "connectionCheckOutFailed", "connectionCheckedOut", "connectionCheckedIn", "commandStarted", "commandSucceeded", "commandFailed", "serverOpening", "serverClosed", "serverDescriptionChanged", "topologyOpening", "topologyClosed", "topologyDescriptionChanged", "error", "timeout", "close", "serverHeartbeatStarted", "serverHeartbeatSucceeded", "serverHeartbeatFailed"] = ...
    +MONGO_CLIENT_EVENTS | mongodb

    Variable MONGO_CLIENT_EVENTSConst

    MONGO_CLIENT_EVENTS: readonly ["connectionPoolCreated", "connectionPoolReady", "connectionPoolCleared", "connectionPoolClosed", "connectionCreated", "connectionReady", "connectionClosed", "connectionCheckOutStarted", "connectionCheckOutFailed", "connectionCheckedOut", "connectionCheckedIn", "commandStarted", "commandSucceeded", "commandFailed", "serverOpening", "serverClosed", "serverDescriptionChanged", "topologyOpening", "topologyClosed", "topologyDescriptionChanged", "error", "timeout", "close", "serverHeartbeatStarted", "serverHeartbeatSucceeded", "serverHeartbeatFailed"] = ...
    diff --git a/docs/categories/index.xml b/docs/categories/index.xml index e8d6887ccb7..3f54c6ee7c1 100644 --- a/docs/categories/index.xml +++ b/docs/categories/index.xml @@ -4,7 +4,7 @@ Categories on MongoDB Node.js Driver /node-mongodb-native/categories/ Recent content in Categories on MongoDB Node.js Driver - Hugo + Hugo -- gohugo.io en-us diff --git a/docs/index.html b/docs/index.html index 8d06efbaf06..bb3e69925a3 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1,7 +1,7 @@ - + diff --git a/docs/index.xml b/docs/index.xml index a7874ae5b97..12ceb7dcf4a 100644 --- a/docs/index.xml +++ b/docs/index.xml @@ -4,7 +4,7 @@ MongoDB Node.js Driver /node-mongodb-native/ Recent content on MongoDB Node.js Driver - Hugo + Hugo -- gohugo.io en-us diff --git a/docs/tags/index.xml b/docs/tags/index.xml index 666ebe0f57c..cfa1bc99ebb 100644 --- a/docs/tags/index.xml +++ b/docs/tags/index.xml @@ -4,7 +4,7 @@ Tags on MongoDB Node.js Driver /node-mongodb-native/tags/ Recent content in Tags on MongoDB Node.js Driver - Hugo + Hugo -- gohugo.io en-us