mongodb 6.0.0 → 6.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  The official [MongoDB](https://www.mongodb.com/) driver for Node.js.
4
4
 
5
- **Upgrading to version 5? Take a look at our [upgrade guide here](https://github.com/mongodb/node-mongodb-native/blob/HEAD/etc/notes/CHANGES_5.0.0.md)!**
5
+ **Upgrading to version 6? Take a look at our [upgrade guide here](https://github.com/mongodb/node-mongodb-native/blob/HEAD/etc/notes/CHANGES_6.0.0.md)!**
6
6
 
7
7
  ## Quick Links
8
8
 
@@ -16,7 +16,7 @@ The official [MongoDB](https://www.mongodb.com/) driver for Node.js.
16
16
  | MongoDB Developer Center | [www.mongodb.com/developer](https://www.mongodb.com/developer/languages/javascript/) |
17
17
  | Stack Overflow | [stackoverflow.com](https://stackoverflow.com/search?q=%28%5Btypescript%5D+or+%5Bjavascript%5D+or+%5Bnode.js%5D%29+and+%5Bmongodb%5D) |
18
18
  | Source Code | [github.com/mongodb/node-mongodb-native](https://github.com/mongodb/node-mongodb-native) |
19
- | Upgrade to v5 | [etc/notes/CHANGES_5.0.0.md](https://github.com/mongodb/node-mongodb-native/blob/HEAD/etc/notes/CHANGES_5.0.0.md) |
19
+ | Upgrade to v6 | [etc/notes/CHANGES_6.0.0.md](https://github.com/mongodb/node-mongodb-native/blob/HEAD/etc/notes/CHANGES_6.0.0.md) |
20
20
  | Contributing | [CONTRIBUTING.md](https://github.com/mongodb/node-mongodb-native/blob/HEAD/CONTRIBUTING.md) |
21
21
  | Changelog | [HISTORY.md](https://github.com/mongodb/node-mongodb-native/blob/HEAD/HISTORY.md) |
22
22
 
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MongoDBAWS = void 0;
4
4
  const crypto = require("crypto");
5
+ const process = require("process");
5
6
  const util_1 = require("util");
6
7
  const BSON = require("../../bson");
7
8
  const deps_1 = require("../../deps");
@@ -10,6 +11,28 @@ const utils_1 = require("../../utils");
10
11
  const auth_provider_1 = require("./auth_provider");
11
12
  const mongo_credentials_1 = require("./mongo_credentials");
12
13
  const providers_1 = require("./providers");
14
+ /**
15
+ * The following regions use the global AWS STS endpoint, sts.amazonaws.com, by default
16
+ * https://docs.aws.amazon.com/sdkref/latest/guide/feature-sts-regionalized-endpoints.html
17
+ */
18
+ const LEGACY_REGIONS = new Set([
19
+ 'ap-northeast-1',
20
+ 'ap-south-1',
21
+ 'ap-southeast-1',
22
+ 'ap-southeast-2',
23
+ 'aws-global',
24
+ 'ca-central-1',
25
+ 'eu-central-1',
26
+ 'eu-north-1',
27
+ 'eu-west-1',
28
+ 'eu-west-2',
29
+ 'eu-west-3',
30
+ 'sa-east-1',
31
+ 'us-east-1',
32
+ 'us-east-2',
33
+ 'us-west-1',
34
+ 'us-west-2'
35
+ ]);
13
36
  const ASCII_N = 110;
14
37
  const AWS_RELATIVE_URI = 'http://169.254.170.2';
15
38
  const AWS_EC2_URI = 'http://169.254.169.254';
@@ -106,6 +129,7 @@ class MongoDBAWS extends auth_provider_1.AuthProvider {
106
129
  await connection.commandAsync((0, utils_1.ns)(`${db}.$cmd`), saslContinue, undefined);
107
130
  }
108
131
  }
132
+ MongoDBAWS.credentialProvider = null;
109
133
  exports.MongoDBAWS = MongoDBAWS;
110
134
  async function makeTempCredentials(credentials) {
111
135
  function makeMongoCredentialsFromAWSTemp(creds) {
@@ -122,10 +146,10 @@ async function makeTempCredentials(credentials) {
122
146
  }
123
147
  });
124
148
  }
125
- const credentialProvider = (0, deps_1.getAwsCredentialProvider)();
149
+ MongoDBAWS.credentialProvider ??= (0, deps_1.getAwsCredentialProvider)();
126
150
  // Check if the AWS credential provider from the SDK is present. If not,
127
151
  // use the old method.
128
- if ('kModuleError' in credentialProvider) {
152
+ if ('kModuleError' in MongoDBAWS.credentialProvider) {
129
153
  // If the environment variable AWS_CONTAINER_CREDENTIALS_RELATIVE_URI
130
154
  // is set then drivers MUST assume that it was set by an AWS ECS agent
131
155
  if (process.env.AWS_CONTAINER_CREDENTIALS_RELATIVE_URI) {
@@ -150,6 +174,25 @@ async function makeTempCredentials(credentials) {
150
174
  return makeMongoCredentialsFromAWSTemp(creds);
151
175
  }
152
176
  else {
177
+ let { AWS_STS_REGIONAL_ENDPOINTS = '', AWS_REGION = '' } = process.env;
178
+ AWS_STS_REGIONAL_ENDPOINTS = AWS_STS_REGIONAL_ENDPOINTS.toLowerCase();
179
+ AWS_REGION = AWS_REGION.toLowerCase();
180
+ /** The option setting should work only for users who have explicit settings in their environment, the driver should not encode "defaults" */
181
+ const awsRegionSettingsExist = AWS_REGION.length !== 0 && AWS_STS_REGIONAL_ENDPOINTS.length !== 0;
182
+ /**
183
+ * If AWS_STS_REGIONAL_ENDPOINTS is set to regional, users are opting into the new behavior of respecting the region settings
184
+ *
185
+ * If AWS_STS_REGIONAL_ENDPOINTS is set to legacy, then "old" regions need to keep using the global setting.
186
+ * Technically the SDK gets this wrong, it reaches out to 'sts.us-east-1.amazonaws.com' when it should be 'sts.amazonaws.com'.
187
+ * That is not our bug to fix here. We leave that up to the SDK.
188
+ */
189
+ const useRegionalSts = AWS_STS_REGIONAL_ENDPOINTS === 'regional' ||
190
+ (AWS_STS_REGIONAL_ENDPOINTS === 'legacy' && !LEGACY_REGIONS.has(AWS_REGION));
191
+ const provider = awsRegionSettingsExist && useRegionalSts
192
+ ? MongoDBAWS.credentialProvider.fromNodeProviderChain({
193
+ clientConfig: { region: AWS_REGION }
194
+ })
195
+ : MongoDBAWS.credentialProvider.fromNodeProviderChain();
153
196
  /*
154
197
  * Creates a credential provider that will attempt to find credentials from the
155
198
  * following sources (listed in order of precedence):
@@ -160,8 +203,6 @@ async function makeTempCredentials(credentials) {
160
203
  * - Shared credentials and config ini files
161
204
  * - The EC2/ECS Instance Metadata Service
162
205
  */
163
- const { fromNodeProviderChain } = credentialProvider;
164
- const provider = fromNodeProviderChain();
165
206
  try {
166
207
  const creds = await provider();
167
208
  return makeMongoCredentialsFromAWSTemp({
@@ -1 +1 @@
1
- {"version":3,"file":"mongodb_aws.js","sourceRoot":"","sources":["../../../src/cmap/auth/mongodb_aws.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mongodb_aws.js","sourceRoot":"","sources":["../../../src/cmap/auth/mongodb_aws.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.assertUninitialized = exports.AbstractCursor = exports.CURSOR_FLAGS = void 0;
4
4
  const stream_1 = require("stream");
5
- const util_1 = require("util");
6
5
  const bson_1 = require("../bson");
7
6
  const error_1 = require("../error");
8
7
  const mongo_types_1 = require("../mongo_types");
@@ -96,6 +95,10 @@ class AbstractCursor extends mongo_types_1.TypedEventEmitter {
96
95
  return this[kId] ?? undefined;
97
96
  }
98
97
  /** @internal */
98
+ get isDead() {
99
+ return (this[kId]?.isZero() ?? false) || this[kClosed] || this[kKilled];
100
+ }
101
+ /** @internal */
99
102
  get client() {
100
103
  return this[kClient];
101
104
  }
@@ -161,7 +164,7 @@ class AbstractCursor extends mongo_types_1.TypedEventEmitter {
161
164
  if (document === null) {
162
165
  if (!this.closed) {
163
166
  const message = 'Cursor returned a `null` document, but the cursor is not exhausted. Mapping documents to `null` is not supported in the cursor transform.';
164
- await cleanupCursorAsync(this, { needsToEmitClosed: true }).catch(() => null);
167
+ await cleanupCursor(this, { needsToEmitClosed: true }).catch(() => null);
165
168
  throw new error_1.MongoAPIError(message);
166
169
  }
167
170
  break;
@@ -253,7 +256,7 @@ class AbstractCursor extends mongo_types_1.TypedEventEmitter {
253
256
  async close() {
254
257
  const needsToEmitClosed = !this[kClosed];
255
258
  this[kClosed] = true;
256
- await cleanupCursorAsync(this, { needsToEmitClosed });
259
+ await cleanupCursor(this, { needsToEmitClosed });
257
260
  }
258
261
  /**
259
262
  * Returns an array of documents. The caller is responsible for making sure that there
@@ -426,14 +429,14 @@ class AbstractCursor extends mongo_types_1.TypedEventEmitter {
426
429
  }
427
430
  }
428
431
  /** @internal */
429
- _getMore(batchSize, callback) {
432
+ async getMore(batchSize) {
430
433
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
431
434
  const getMoreOperation = new get_more_1.GetMoreOperation(this[kNamespace], this[kId], this[kServer], {
432
435
  ...this[kOptions],
433
436
  session: this[kSession],
434
437
  batchSize
435
438
  });
436
- (0, execute_operation_1.executeOperation)(this[kClient], getMoreOperation, callback);
439
+ return (0, execute_operation_1.executeOperation)(this[kClient], getMoreOperation);
437
440
  }
438
441
  /**
439
442
  * @internal
@@ -442,43 +445,45 @@ class AbstractCursor extends mongo_types_1.TypedEventEmitter {
442
445
  * operation. We cannot refactor to use the abstract _initialize method without
443
446
  * a significant refactor.
444
447
  */
445
- [kInit](callback) {
446
- this._initialize(this[kSession], (error, state) => {
447
- if (state) {
448
- const response = state.response;
449
- this[kServer] = state.server;
450
- if (response.cursor) {
451
- // TODO(NODE-2674): Preserve int64 sent from MongoDB
452
- this[kId] =
453
- typeof response.cursor.id === 'number'
454
- ? bson_1.Long.fromNumber(response.cursor.id)
455
- : typeof response.cursor.id === 'bigint'
456
- ? bson_1.Long.fromBigInt(response.cursor.id)
457
- : response.cursor.id;
458
- if (response.cursor.ns) {
459
- this[kNamespace] = (0, utils_1.ns)(response.cursor.ns);
460
- }
461
- this[kDocuments].pushMany(response.cursor.firstBatch);
462
- }
463
- // When server responses return without a cursor document, we close this cursor
464
- // and return the raw server response. This is often the case for explain commands
465
- // for example
466
- if (this[kId] == null) {
467
- this[kId] = bson_1.Long.ZERO;
468
- // TODO(NODE-3286): ExecutionResult needs to accept a generic parameter
469
- this[kDocuments].push(state.response);
448
+ async [kInit]() {
449
+ try {
450
+ const state = await this._initialize(this[kSession]);
451
+ const response = state.response;
452
+ this[kServer] = state.server;
453
+ if (response.cursor) {
454
+ // TODO(NODE-2674): Preserve int64 sent from MongoDB
455
+ this[kId] =
456
+ typeof response.cursor.id === 'number'
457
+ ? bson_1.Long.fromNumber(response.cursor.id)
458
+ : typeof response.cursor.id === 'bigint'
459
+ ? bson_1.Long.fromBigInt(response.cursor.id)
460
+ : response.cursor.id;
461
+ if (response.cursor.ns) {
462
+ this[kNamespace] = (0, utils_1.ns)(response.cursor.ns);
470
463
  }
464
+ this[kDocuments].pushMany(response.cursor.firstBatch);
471
465
  }
472
- // the cursor is now initialized, even if an error occurred or it is dead
473
- this[kInitialized] = true;
474
- if (error) {
475
- return cleanupCursor(this, { error }, () => callback(error, undefined));
476
- }
477
- if (cursorIsDead(this)) {
478
- return cleanupCursor(this, undefined, () => callback());
466
+ // When server responses return without a cursor document, we close this cursor
467
+ // and return the raw server response. This is often the case for explain commands
468
+ // for example
469
+ if (this[kId] == null) {
470
+ this[kId] = bson_1.Long.ZERO;
471
+ // TODO(NODE-3286): ExecutionResult needs to accept a generic parameter
472
+ this[kDocuments].push(state.response);
479
473
  }
480
- callback();
481
- });
474
+ // the cursor is now initialized, even if it is dead
475
+ this[kInitialized] = true;
476
+ }
477
+ catch (error) {
478
+ // the cursor is now initialized, even if an error occurred
479
+ this[kInitialized] = true;
480
+ await cleanupCursor(this, { error });
481
+ throw error;
482
+ }
483
+ if (this.isDead) {
484
+ await cleanupCursor(this, undefined);
485
+ }
486
+ return;
482
487
  }
483
488
  }
484
489
  /** @event */
@@ -496,85 +501,73 @@ exports.AbstractCursor = AbstractCursor;
496
501
  * the cursor has been exhausted. Otherwise, it means that there is no document available in the cursor's buffer.
497
502
  */
498
503
  async function next(cursor, { blocking, transform }) {
499
- const cursorId = cursor[kId];
500
504
  if (cursor.closed) {
501
505
  return null;
502
506
  }
503
- if (cursor[kDocuments].length !== 0) {
504
- const doc = cursor[kDocuments].shift();
505
- if (doc != null && transform && cursor[kTransform]) {
506
- try {
507
- return cursor[kTransform](doc);
508
- }
509
- catch (error) {
510
- await cleanupCursorAsync(cursor, { error, needsToEmitClosed: true }).catch(() => {
507
+ do {
508
+ if (cursor[kId] == null) {
509
+ // All cursors must operate within a session, one must be made implicitly if not explicitly provided
510
+ await cursor[kInit]();
511
+ }
512
+ if (cursor[kDocuments].length !== 0) {
513
+ const doc = cursor[kDocuments].shift();
514
+ if (doc != null && transform && cursor[kTransform]) {
515
+ try {
516
+ return cursor[kTransform](doc);
517
+ }
518
+ catch (error) {
511
519
  // `cleanupCursorAsync` should never throw, but if it does we want to throw the original
512
520
  // error instead.
513
- });
514
- throw error;
521
+ await cleanupCursor(cursor, { error, needsToEmitClosed: true }).catch(() => null);
522
+ throw error;
523
+ }
515
524
  }
525
+ return doc;
516
526
  }
517
- return doc;
518
- }
519
- if (cursorId == null) {
520
- // All cursors must operate within a session, one must be made implicitly if not explicitly provided
521
- const init = (0, util_1.promisify)(cb => cursor[kInit](cb));
522
- await init();
523
- return next(cursor, { blocking, transform });
524
- }
525
- if (cursorIsDead(cursor)) {
526
- // if the cursor is dead, we clean it up
527
- // cleanupCursorAsync should never throw, but if it does it indicates a bug in the driver
528
- // and we should surface the error
529
- await cleanupCursorAsync(cursor, {});
530
- return null;
531
- }
532
- // otherwise need to call getMore
533
- const batchSize = cursor[kOptions].batchSize || 1000;
534
- const getMore = (0, util_1.promisify)((batchSize, cb) => cursor._getMore(batchSize, cb));
535
- let response;
536
- try {
537
- response = await getMore(batchSize);
538
- }
539
- catch (error) {
540
- if (error) {
541
- await cleanupCursorAsync(cursor, { error }).catch(() => {
542
- // `cleanupCursorAsync` should never throw, but if it does we want to throw the original
543
- // error instead.
544
- });
527
+ if (cursor.isDead) {
528
+ // if the cursor is dead, we clean it up
529
+ // cleanupCursorAsync should never throw, but if it does it indicates a bug in the driver
530
+ // and we should surface the error
531
+ await cleanupCursor(cursor, {});
532
+ return null;
533
+ }
534
+ // otherwise need to call getMore
535
+ const batchSize = cursor[kOptions].batchSize || 1000;
536
+ try {
537
+ const response = await cursor.getMore(batchSize);
538
+ if (response) {
539
+ const cursorId = typeof response.cursor.id === 'number'
540
+ ? bson_1.Long.fromNumber(response.cursor.id)
541
+ : typeof response.cursor.id === 'bigint'
542
+ ? bson_1.Long.fromBigInt(response.cursor.id)
543
+ : response.cursor.id;
544
+ cursor[kDocuments].pushMany(response.cursor.nextBatch);
545
+ cursor[kId] = cursorId;
546
+ }
547
+ }
548
+ catch (error) {
549
+ // `cleanupCursorAsync` should never throw, but if it does we want to throw the original
550
+ // error instead.
551
+ await cleanupCursor(cursor, { error }).catch(() => null);
545
552
  throw error;
546
553
  }
547
- }
548
- if (response) {
549
- const cursorId = typeof response.cursor.id === 'number'
550
- ? bson_1.Long.fromNumber(response.cursor.id)
551
- : typeof response.cursor.id === 'bigint'
552
- ? bson_1.Long.fromBigInt(response.cursor.id)
553
- : response.cursor.id;
554
- cursor[kDocuments].pushMany(response.cursor.nextBatch);
555
- cursor[kId] = cursorId;
556
- }
557
- if (cursorIsDead(cursor)) {
558
- // If we successfully received a response from a cursor BUT the cursor indicates that it is exhausted,
559
- // we intentionally clean up the cursor to release its session back into the pool before the cursor
560
- // is iterated. This prevents a cursor that is exhausted on the server from holding
561
- // onto a session indefinitely until the AbstractCursor is iterated.
562
- //
563
- // cleanupCursorAsync should never throw, but if it does it indicates a bug in the driver
564
- // and we should surface the error
565
- await cleanupCursorAsync(cursor, {});
566
- }
567
- if (cursor[kDocuments].length === 0 && blocking === false) {
568
- return null;
569
- }
570
- return next(cursor, { blocking, transform });
554
+ if (cursor.isDead) {
555
+ // If we successfully received a response from a cursor BUT the cursor indicates that it is exhausted,
556
+ // we intentionally clean up the cursor to release its session back into the pool before the cursor
557
+ // is iterated. This prevents a cursor that is exhausted on the server from holding
558
+ // onto a session indefinitely until the AbstractCursor is iterated.
559
+ //
560
+ // cleanupCursorAsync should never throw, but if it does it indicates a bug in the driver
561
+ // and we should surface the error
562
+ await cleanupCursor(cursor, {});
563
+ }
564
+ if (cursor[kDocuments].length === 0 && blocking === false) {
565
+ return null;
566
+ }
567
+ } while (!cursor.isDead || cursor[kDocuments].length !== 0);
568
+ return null;
571
569
  }
572
- function cursorIsDead(cursor) {
573
- const cursorId = cursor[kId];
574
- return !!cursorId && cursorId.isZero();
575
- }
576
- const cleanupCursorAsync = (0, util_1.promisify)(cleanupCursor);
577
- function cleanupCursor(cursor, options, callback) {
570
+ async function cleanupCursor(cursor, options) {
578
571
  const cursorId = cursor[kId];
579
572
  const cursorNs = cursor[kNamespace];
580
573
  const server = cursor[kServer];
@@ -597,24 +590,24 @@ function cleanupCursor(cursor, options, callback) {
597
590
  }
598
591
  if (session) {
599
592
  if (session.owner === cursor) {
600
- session.endSession({ error }).finally(() => {
601
- callback();
602
- });
593
+ await session.endSession({ error });
603
594
  return;
604
595
  }
605
596
  if (!session.inTransaction()) {
606
597
  (0, sessions_1.maybeClearPinnedConnection)(session, { error });
607
598
  }
608
599
  }
609
- return callback();
600
+ return;
610
601
  }
611
- function completeCleanup() {
602
+ async function completeCleanup() {
612
603
  if (session) {
613
604
  if (session.owner === cursor) {
614
- session.endSession({ error }).finally(() => {
605
+ try {
606
+ await session.endSession({ error });
607
+ }
608
+ finally {
615
609
  cursor.emit(AbstractCursor.CLOSE);
616
- callback();
617
- });
610
+ }
618
611
  return;
619
612
  }
620
613
  if (!session.inTransaction()) {
@@ -622,15 +615,18 @@ function cleanupCursor(cursor, options, callback) {
622
615
  }
623
616
  }
624
617
  cursor.emit(AbstractCursor.CLOSE);
625
- return callback();
618
+ return;
626
619
  }
627
620
  cursor[kKilled] = true;
628
621
  if (session.hasEnded) {
629
622
  return completeCleanup();
630
623
  }
631
- (0, execute_operation_1.executeOperation)(cursor[kClient], new kill_cursors_1.KillCursorsOperation(cursorId, cursorNs, server, { session }))
632
- .catch(() => null)
633
- .finally(completeCleanup);
624
+ try {
625
+ await (0, execute_operation_1.executeOperation)(cursor[kClient], new kill_cursors_1.KillCursorsOperation(cursorId, cursorNs, server, { session })).catch(() => null);
626
+ }
627
+ finally {
628
+ await completeCleanup();
629
+ }
634
630
  }
635
631
  /** @internal */
636
632
  function assertUninitialized(cursor) {
@@ -1 +1 @@
1
- {"version":3,"file":"abstract_cursor.js","sourceRoot":"","sources":["../../src/cursor/abstract_cursor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"abstract_cursor.js","sourceRoot":"","sources":["../../src/cursor/abstract_cursor.ts"],"names":[],"mappings":"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"}
@@ -37,18 +37,15 @@ class AggregationCursor extends abstract_cursor_1.AbstractCursor {
37
37
  return super.map(transform);
38
38
  }
39
39
  /** @internal */
40
- _initialize(session, callback) {
40
+ async _initialize(session) {
41
41
  const aggregateOperation = new aggregate_1.AggregateOperation(this.namespace, this[kPipeline], {
42
42
  ...this[kOptions],
43
43
  ...this.cursorOptions,
44
44
  session
45
45
  });
46
- (0, execute_operation_1.executeOperation)(this.client, aggregateOperation, (err, response) => {
47
- if (err || response == null)
48
- return callback(err);
49
- // TODO: NODE-2882
50
- callback(undefined, { server: aggregateOperation.server, session, response });
51
- });
46
+ const response = await (0, execute_operation_1.executeOperation)(this.client, aggregateOperation);
47
+ // TODO: NODE-2882
48
+ return { server: aggregateOperation.server, session, response };
52
49
  }
53
50
  /** Execute the explain for the cursor */
54
51
  async explain(verbosity) {
@@ -1 +1 @@
1
- {"version":3,"file":"aggregation_cursor.js","sourceRoot":"","sources":["../../src/cursor/aggregation_cursor.ts"],"names":[],"mappings":";;;AAGA,uDAAoF;AACpF,uEAAyF;AAIzF,oCAAwC;AAExC,uDAAwE;AAKxE,gBAAgB;AAChB,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AACrC,gBAAgB;AAChB,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;AAEnC;;;;;;GAMG;AACH,MAAa,iBAAiC,SAAQ,gCAAuB;IAM3E,gBAAgB;IAChB,YACE,MAAmB,EACnB,SAA2B,EAC3B,WAAuB,EAAE,EACzB,UAA4B,EAAE;QAE9B,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAElC,IAAI,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC;QAC3B,IAAI,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC;IAC3B,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC;IACzB,CAAC;IAED,KAAK;QACH,MAAM,aAAa,GAAG,IAAA,oBAAY,EAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QACvD,OAAO,aAAa,CAAC,OAAO,CAAC;QAC7B,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE;YACzE,GAAG,aAAa;SACjB,CAAC,CAAC;IACL,CAAC;IAEQ,GAAG,CAAI,SAA8B;QAC5C,OAAO,KAAK,CAAC,GAAG,CAAC,SAAS,CAAyB,CAAC;IACtD,CAAC;IAED,gBAAgB;IAChB,WAAW,CAAC,OAAsB,EAAE,QAAmC;QACrE,MAAM,kBAAkB,GAAG,IAAI,8BAAkB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE;YACjF,GAAG,IAAI,CAAC,QAAQ,CAAC;YACjB,GAAG,IAAI,CAAC,aAAa;YACrB,OAAO;SACR,CAAC,CAAC;QAEH,IAAA,oCAAgB,EAAC,IAAI,CAAC,MAAM,EAAE,kBAAkB,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;YAClE,IAAI,GAAG,IAAI,QAAQ,IAAI,IAAI;gBAAE,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;YAElD,kBAAkB;YAClB,QAAQ,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;QAChF,CAAC,CAAC,CAAC;IACL,CAAC;IAED,yCAAyC;IACzC,KAAK,CAAC,OAAO,CAAC,SAAgC;QAC5C,OAAO,IAAA,oCAAgB,EACrB,IAAI,CAAC,MAAM,EACX,IAAI,8BAAkB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE;YACtD,GAAG,IAAI,CAAC,QAAQ,CAAC;YACjB,GAAG,IAAI,CAAC,aAAa;YACrB,OAAO,EAAE,SAAS,IAAI,IAAI;SAC3B,CAAC,CACH,CAAC;IACJ,CAAC;IAID,KAAK,CAAC,MAAgB;QACpB,IAAA,qCAAmB,EAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oDAAoD;IACpD,KAAK,CAAC,MAAc;QAClB,IAAA,qCAAmB,EAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oDAAoD;IACpD,KAAK,CAAC,MAAgB;QACpB,IAAA,qCAAmB,EAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,mDAAmD;IACnD,GAAG,CAAC,IAA2C;QAC7C,IAAA,qCAAmB,EAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAwCG;IACH,OAAO,CAAgC,QAAkB;QACvD,IAAA,qCAAmB,EAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;QACnC,OAAO,IAAuC,CAAC;IACjD,CAAC;IAED,qDAAqD;IACrD,MAAM,CAAC,OAAiB;QACtB,IAAA,qCAAmB,EAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,qDAAqD;IACrD,MAAM,CAAC,OAAiB;QACtB,IAAA,qCAAmB,EAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,mDAAmD;IACnD,IAAI,CAAC,KAAa;QAChB,IAAA,qCAAmB,EAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,mDAAmD;IACnD,IAAI,CAAC,KAAW;QACd,IAAA,qCAAmB,EAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,qDAAqD;IACrD,MAAM,CAAC,OAA0B;QAC/B,IAAA,qCAAmB,EAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,sDAAsD;IACtD,OAAO,CAAC,QAAkB;QACxB,IAAA,qCAAmB,EAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AApLD,8CAoLC"}
1
+ {"version":3,"file":"aggregation_cursor.js","sourceRoot":"","sources":["../../src/cursor/aggregation_cursor.ts"],"names":[],"mappings":"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"}