@depup/mongodb 7.1.0-depup.0 → 7.5.0-depup.7

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.
Files changed (114) hide show
  1. package/README.md +5 -5
  2. package/changes.json +18 -0
  3. package/lib/bson.js +32 -5
  4. package/lib/bson.js.map +1 -1
  5. package/lib/change_stream.js +4 -1
  6. package/lib/change_stream.js.map +1 -1
  7. package/lib/client-side-encryption/auto_encrypter.js +19 -10
  8. package/lib/client-side-encryption/auto_encrypter.js.map +1 -1
  9. package/lib/client-side-encryption/client_encryption.js +5 -6
  10. package/lib/client-side-encryption/client_encryption.js.map +1 -1
  11. package/lib/cmap/auth/aws4.js +4 -4
  12. package/lib/cmap/auth/aws4.js.map +1 -1
  13. package/lib/cmap/auth/gssapi.js +3 -6
  14. package/lib/cmap/auth/gssapi.js.map +1 -1
  15. package/lib/cmap/auth/mongodb_aws.js +3 -2
  16. package/lib/cmap/auth/mongodb_aws.js.map +1 -1
  17. package/lib/cmap/auth/mongodb_oidc/azure_machine_workflow.js +3 -3
  18. package/lib/cmap/auth/mongodb_oidc/azure_machine_workflow.js.map +1 -1
  19. package/lib/cmap/auth/mongodb_oidc/gcp_machine_workflow.js +3 -3
  20. package/lib/cmap/auth/mongodb_oidc/gcp_machine_workflow.js.map +1 -1
  21. package/lib/cmap/auth/mongodb_oidc/k8s_machine_workflow.js +3 -3
  22. package/lib/cmap/auth/mongodb_oidc/k8s_machine_workflow.js.map +1 -1
  23. package/lib/cmap/auth/mongodb_oidc/token_machine_workflow.js +3 -3
  24. package/lib/cmap/auth/mongodb_oidc/token_machine_workflow.js.map +1 -1
  25. package/lib/cmap/auth/mongodb_oidc.js +4 -4
  26. package/lib/cmap/auth/mongodb_oidc.js.map +1 -1
  27. package/lib/cmap/auth/plain.js +1 -1
  28. package/lib/cmap/auth/plain.js.map +1 -1
  29. package/lib/cmap/auth/scram.js +58 -46
  30. package/lib/cmap/auth/scram.js.map +1 -1
  31. package/lib/cmap/commands.js +46 -39
  32. package/lib/cmap/commands.js.map +1 -1
  33. package/lib/cmap/connect.js +19 -2
  34. package/lib/cmap/connect.js.map +1 -1
  35. package/lib/cmap/connection.js +5 -2
  36. package/lib/cmap/connection.js.map +1 -1
  37. package/lib/cmap/handshake/client_metadata.js +3 -4
  38. package/lib/cmap/handshake/client_metadata.js.map +1 -1
  39. package/lib/cmap/wire_protocol/compression.js +8 -7
  40. package/lib/cmap/wire_protocol/compression.js.map +1 -1
  41. package/lib/cmap/wire_protocol/constants.js +2 -2
  42. package/lib/cmap/wire_protocol/on_data.js.map +1 -1
  43. package/lib/cmap/wire_protocol/on_demand/document.js +9 -9
  44. package/lib/cmap/wire_protocol/on_demand/document.js.map +1 -1
  45. package/lib/connection_string.js +21 -5
  46. package/lib/connection_string.js.map +1 -1
  47. package/lib/cursor/abstract_cursor.js +0 -1
  48. package/lib/cursor/abstract_cursor.js.map +1 -1
  49. package/lib/cursor/find_cursor.js.map +1 -1
  50. package/lib/gridfs/download.js +2 -1
  51. package/lib/gridfs/download.js.map +1 -1
  52. package/lib/gridfs/upload.js +7 -7
  53. package/lib/gridfs/upload.js.map +1 -1
  54. package/lib/index.js.map +1 -1
  55. package/lib/mongo_client.js +0 -1
  56. package/lib/mongo_client.js.map +1 -1
  57. package/lib/operations/count.js.map +1 -1
  58. package/lib/operations/execute_operation.js +114 -41
  59. package/lib/operations/execute_operation.js.map +1 -1
  60. package/lib/operations/operation.js +1 -0
  61. package/lib/operations/operation.js.map +1 -1
  62. package/lib/runtime_adapters.js +32 -0
  63. package/lib/runtime_adapters.js.map +1 -0
  64. package/lib/sdam/srv_polling.js +1 -1
  65. package/lib/sdam/srv_polling.js.map +1 -1
  66. package/lib/sdam/topology.js +5 -3
  67. package/lib/sdam/topology.js.map +1 -1
  68. package/lib/sessions.js +125 -81
  69. package/lib/sessions.js.map +1 -1
  70. package/lib/utils.js +52 -36
  71. package/lib/utils.js.map +1 -1
  72. package/mongodb.d.ts +96 -38
  73. package/package.json +66 -53
  74. package/src/bson.ts +34 -5
  75. package/src/change_stream.ts +5 -1
  76. package/src/client-side-encryption/auto_encrypter.ts +17 -11
  77. package/src/client-side-encryption/client_encryption.ts +42 -14
  78. package/src/cmap/auth/auth_provider.ts +1 -1
  79. package/src/cmap/auth/aws4.ts +5 -5
  80. package/src/cmap/auth/gssapi.ts +9 -6
  81. package/src/cmap/auth/mongodb_aws.ts +2 -2
  82. package/src/cmap/auth/mongodb_oidc/azure_machine_workflow.ts +1 -1
  83. package/src/cmap/auth/mongodb_oidc/gcp_machine_workflow.ts +1 -1
  84. package/src/cmap/auth/mongodb_oidc/k8s_machine_workflow.ts +1 -1
  85. package/src/cmap/auth/mongodb_oidc/token_machine_workflow.ts +1 -1
  86. package/src/cmap/auth/mongodb_oidc.ts +4 -4
  87. package/src/cmap/auth/plain.ts +2 -2
  88. package/src/cmap/auth/scram.ts +87 -61
  89. package/src/cmap/commands.ts +70 -51
  90. package/src/cmap/connect.ts +21 -1
  91. package/src/cmap/connection.ts +11 -4
  92. package/src/cmap/handshake/client_metadata.ts +6 -6
  93. package/src/cmap/wire_protocol/compression.ts +18 -14
  94. package/src/cmap/wire_protocol/constants.ts +2 -2
  95. package/src/cmap/wire_protocol/on_data.ts +5 -5
  96. package/src/cmap/wire_protocol/on_demand/document.ts +12 -14
  97. package/src/connection_string.ts +29 -11
  98. package/src/cursor/abstract_cursor.ts +0 -1
  99. package/src/cursor/find_cursor.ts +1 -1
  100. package/src/deps.ts +4 -4
  101. package/src/gridfs/download.ts +2 -2
  102. package/src/gridfs/upload.ts +13 -12
  103. package/src/index.ts +2 -0
  104. package/src/mongo_client.ts +28 -1
  105. package/src/operations/client_bulk_write/command_builder.ts +1 -1
  106. package/src/operations/count.ts +1 -2
  107. package/src/operations/execute_operation.ts +146 -45
  108. package/src/operations/operation.ts +8 -0
  109. package/src/runtime_adapters.ts +64 -0
  110. package/src/sdam/srv_polling.ts +1 -1
  111. package/src/sdam/topology.ts +11 -8
  112. package/src/sessions.ts +142 -99
  113. package/src/utils.ts +68 -46
  114. package/tsconfig.json +1 -1
package/lib/sessions.js CHANGED
@@ -147,7 +147,6 @@ class ClientSession extends mongo_types_1.TypedEventEmitter {
147
147
  }
148
148
  }
149
149
  /**
150
- * @experimental
151
150
  * An alias for {@link ClientSession.endSession|ClientSession.endSession()}.
152
151
  */
153
152
  async [Symbol.asyncDispose]() {
@@ -201,7 +200,7 @@ class ClientSession extends mongo_types_1.TypedEventEmitter {
201
200
  if (this.id == null || session.id == null) {
202
201
  return false;
203
202
  }
204
- return utils_1.ByteUtils.equals(this.id.id.buffer, session.id.id.buffer);
203
+ return bson_1.ByteUtils.equals(this.id.id.buffer, session.id.id.buffer);
205
204
  }
206
205
  /**
207
206
  * Increment the transaction number on the internal ServerSession
@@ -288,7 +287,11 @@ class ClientSession extends mongo_types_1.TypedEventEmitter {
288
287
  else {
289
288
  const wcKeys = Object.keys(wc);
290
289
  if (wcKeys.length > 2 || (!wcKeys.includes('wtimeoutMS') && !wcKeys.includes('wTimeoutMS')))
291
- // if the write concern was specified with wTimeoutMS, then we set both wtimeoutMS and wTimeoutMS, guaranteeing at least two keys, so if we have more than two keys, then we can automatically assume that we should add the write concern to the command. If it has 2 or fewer keys, we need to check that those keys aren't the wtimeoutMS or wTimeoutMS options before we add the write concern to the command
290
+ // if the write concern was specified with wTimeoutMS, then we set both wtimeoutMS
291
+ // and wTimeoutMS, guaranteeing at least two keys, so if we have more than two keys,
292
+ // then we can automatically assume that we should add the write concern to the command.
293
+ // If it has 2 or fewer keys, we need to check that those keys aren't the wtimeoutMS
294
+ // or wTimeoutMS options before we add the write concern to the command
292
295
  write_concern_1.WriteConcern.apply(command, { ...wc, wtimeoutMS: undefined });
293
296
  }
294
297
  }
@@ -311,6 +314,7 @@ class ClientSession extends mongo_types_1.TypedEventEmitter {
311
314
  readPreference: read_preference_1.ReadPreference.primary,
312
315
  bypassPinningCheck: true
313
316
  });
317
+ operation.maxAttempts = this.clientOptions.maxAdaptiveRetries + 1;
314
318
  const timeoutContext = this.timeoutContext ??
315
319
  (typeof timeoutMS === 'number'
316
320
  ? timeout_1.TimeoutContext.create({
@@ -326,17 +330,23 @@ class ClientSession extends mongo_types_1.TypedEventEmitter {
326
330
  }
327
331
  catch (firstCommitError) {
328
332
  this.commitAttempted = true;
333
+ const remainingAttempts = this.clientOptions.maxAdaptiveRetries + 1 - operation.attemptsMade;
334
+ if (remainingAttempts <= 0) {
335
+ throw firstCommitError;
336
+ }
329
337
  if (firstCommitError instanceof error_1.MongoError && (0, error_1.isRetryableWriteError)(firstCommitError)) {
330
338
  // SPEC-1185: apply majority write concern when retrying commitTransaction
331
339
  write_concern_1.WriteConcern.apply(command, { wtimeoutMS: 10000, ...wc, w: 'majority' });
332
340
  // per txns spec, must unpin session in this case
333
341
  this.unpin({ force: true });
334
342
  try {
335
- await (0, execute_operation_1.executeOperation)(this.client, new run_command_1.RunCommandOperation(new utils_1.MongoDBNamespace('admin'), command, {
343
+ const op = new run_command_1.RunCommandOperation(new utils_1.MongoDBNamespace('admin'), command, {
336
344
  session: this,
337
345
  readPreference: read_preference_1.ReadPreference.primary,
338
346
  bypassPinningCheck: true
339
- }), timeoutContext);
347
+ });
348
+ op.maxAttempts = remainingAttempts;
349
+ await (0, execute_operation_1.executeOperation)(this.client, op, timeoutContext);
340
350
  return;
341
351
  }
342
352
  catch (retryCommitError) {
@@ -482,7 +492,7 @@ class ClientSession extends mongo_types_1.TypedEventEmitter {
482
492
  * @returns A raw command response or undefined
483
493
  */
484
494
  async withTransaction(fn, options) {
485
- const MAX_TIMEOUT = 120000;
495
+ const MAX_TIMEOUT = 120_000;
486
496
  const timeoutMS = options?.timeoutMS ?? this.timeoutMS ?? null;
487
497
  this.timeoutContext =
488
498
  timeoutMS != null
@@ -492,133 +502,138 @@ class ClientSession extends mongo_types_1.TypedEventEmitter {
492
502
  socketTimeoutMS: this.clientOptions.socketTimeoutMS
493
503
  })
494
504
  : null;
495
- // 1. Record the current monotonic time, which will be used to enforce the 120-second timeout before later retry attempts.
496
- const startTime = this.timeoutContext?.csotEnabled() // This is strictly to appease TS. We must narrow the context to a CSOT context before accessing `.start`.
497
- ? this.timeoutContext.start
498
- : (0, utils_1.processTimeMS)();
505
+ // 1. Define the following:
506
+ // 1.1 Record the current monotonic time, which will be used to enforce the 120-second / CSOT timeout before later retry attempts.
507
+ // 1.2 Set `transactionAttempt` to `0`.
508
+ // 1.3 Set `TIMEOUT_MS` to be `timeoutMS` if given, otherwise MAX_TIMEOUT (120-seconds).
509
+ // Timeout Error propagation
510
+ // When the previously encountered error needs to be propagated because there is no more time for another attempt,
511
+ // and it is not already a timeout error, then:
512
+ // - A timeout error MUST be propagated instead. It MUST expose the previously encountered error as specified in
513
+ // the "Errors" section of the CSOT specification.
514
+ // - If exposing the previously encountered error from a timeout error is impossible in a driver, then the driver
515
+ // is exempt from the requirement and MUST propagate the previously encountered error as is. The timeout error
516
+ // MUST copy all error labels from the previously encountered error.
517
+ // The spec describes timeout checks as "elapsed time < TIMEOUT_MS" (where elapsed = now - start).
518
+ // We precompute `deadline = now + remainingTimeMS` so each check becomes simply `now < deadline`.
519
+ const csotEnabled = !!this.timeoutContext?.csotEnabled();
520
+ const remainingTimeMS = this.timeoutContext?.csotEnabled()
521
+ ? this.timeoutContext.remainingTimeMS
522
+ : MAX_TIMEOUT;
523
+ const deadline = (0, utils_1.processTimeMS)() + remainingTimeMS;
499
524
  let committed = false;
500
525
  let result;
501
526
  let lastError = null;
502
527
  try {
503
- retryTransaction: for (
504
- // 2. Set `transactionAttempt` to `0`.
505
- let transactionAttempt = 0, isRetry = false; !committed; ++transactionAttempt, isRetry = transactionAttempt > 0) {
528
+ retryTransaction: for (let transactionAttempt = 0, isRetry = false; !committed; ++transactionAttempt, isRetry = transactionAttempt > 0) {
506
529
  // 2. If `transactionAttempt` > 0:
507
530
  if (isRetry) {
508
- // 2.i If elapsed time + `backoffMS` > `TIMEOUT_MS`, then raise the previously encountered error. If the elapsed time of
509
- // `withTransaction` is less than TIMEOUT_MS, calculate the backoffMS to be
510
- // `jitter * min(BACKOFF_INITIAL * 1.5 ** (transactionAttempt - 1), BACKOFF_MAX)`. sleep for `backoffMS`.
511
- // 2.i.i jitter is a random float between \[0, 1)
512
- // 2.i.ii `transactionAttempt` is the variable defined in step 1.
513
- // 2.i.iii `BACKOFF_INITIAL` is 5ms
514
- // 2.i.iv `BACKOFF_MAX` is 500ms
531
+ // 2.1 Calculate backoffMS to be jitter * min(BACKOFF_INITIAL * 1.5 ** (transactionAttempt - 1), BACKOFF_MAX).
532
+ // If elapsed time + backoffMS > TIMEOUT_MS, then propagate the previously encountered error to the caller of
533
+ // withTransaction as per timeout error propagation and return immediately. Otherwise, sleep for backoffMS.
534
+ // 2.1.1 jitter is a random float between [0, 1), optionally including 1, depending on what is most natural
535
+ // for the given driver language.
536
+ // 2.1.2 transactionAttempt is the variable defined in step 1.
537
+ // 2.1.3 BACKOFF_INITIAL is 5ms
538
+ // 2.1.4 BACKOFF_MAX is 500ms
515
539
  const BACKOFF_INITIAL_MS = 5;
516
540
  const BACKOFF_MAX_MS = 500;
517
541
  const BACKOFF_GROWTH = 1.5;
518
542
  const jitter = Math.random();
519
543
  const backoffMS = jitter *
520
544
  Math.min(BACKOFF_INITIAL_MS * BACKOFF_GROWTH ** (transactionAttempt - 1), BACKOFF_MAX_MS);
521
- const willExceedTransactionDeadline = (this.timeoutContext?.csotEnabled() &&
522
- backoffMS > this.timeoutContext.remainingTimeMS) ||
523
- (0, utils_1.processTimeMS)() + backoffMS > startTime + MAX_TIMEOUT;
524
- if (willExceedTransactionDeadline) {
525
- throw (lastError ??
526
- new error_1.MongoRuntimeError(`Transaction retry did not record an error: should never occur. Please file a bug.`));
545
+ if ((0, utils_1.processTimeMS)() + backoffMS >= deadline) {
546
+ throw makeTimeoutError(lastError ??
547
+ new error_1.MongoRuntimeError(`Transaction retry did not record an error: should never occur. Please file a bug.`), csotEnabled);
527
548
  }
528
549
  await (0, promises_1.setTimeout)(backoffMS);
529
550
  }
530
- // 3. Invoke startTransaction on the session
531
- // 4. If `startTransaction` reported an error, propagate that error to the caller of `withTransaction` and return immediately.
532
- this.startTransaction(options); // may throw on error
551
+ // 3. Invoke startTransaction on the session and increment transactionAttempt. If TransactionOptions were
552
+ // specified in the call to withTransaction, those MUST be used for startTransaction. Note that
553
+ // ClientSession.defaultTransactionOptions will be used in the absence of any explicit TransactionOptions.
554
+ // 4. If startTransaction reported an error, propagate that error to the caller of withTransaction as is and
555
+ // return immediately.
556
+ this.startTransaction(options);
533
557
  try {
534
- // 5. Invoke the callback.
535
- // 6. Control returns to withTransaction. (continued below)
558
+ // 5. Invoke the callback. Drivers MUST ensure that the ClientSession can be accessed within the callback
559
+ // (e.g. pass ClientSession as the first parameter, rely on lexical scoping). Drivers MAY pass additional
560
+ // parameters as needed (e.g. user data solicited by withTransaction).
536
561
  const promise = fn(this);
537
562
  if (!(0, utils_1.isPromiseLike)(promise)) {
538
563
  throw new error_1.MongoInvalidArgumentError('Function provided to `withTransaction` must return a Promise');
539
564
  }
565
+ // 6. Control returns to withTransaction. Determine the current state of the ClientSession and whether the
566
+ // callback reported an error (e.g. thrown exception, error output parameter).
540
567
  result = await promise;
541
- // 6. (cont.) Determine the current state of the ClientSession (continued below)
568
+ // 8. If the ClientSession is in the "no transaction", "transaction aborted", or "transaction committed"
569
+ // state, assume the callback intentionally aborted or committed the transaction and return immediately.
542
570
  if (this.transaction.state === transactions_1.TxnState.NO_TRANSACTION ||
543
571
  this.transaction.state === transactions_1.TxnState.TRANSACTION_COMMITTED ||
544
572
  this.transaction.state === transactions_1.TxnState.TRANSACTION_ABORTED) {
545
- // 8. If the ClientSession is in the "no transaction", "transaction aborted", or "transaction committed" state,
546
- // assume the callback intentionally aborted or committed the transaction and return immediately.
547
573
  return result;
548
574
  }
549
- // 5. (cont.) and whether the callback reported an error
550
- // 7. If the callback reported an error:
551
575
  }
552
576
  catch (fnError) {
577
+ // 7. If the callback reported an error
553
578
  if (!(fnError instanceof error_1.MongoError) || fnError instanceof error_1.MongoInvalidArgumentError) {
554
579
  // This first preemptive abort regardless of TxnState isn't spec,
555
580
  // and it's unclear whether it's serving a practical purpose, but this logic is OLD
556
581
  await this.abortTransaction();
557
582
  throw fnError;
558
583
  }
584
+ lastError = fnError;
585
+ // 7.1 If the ClientSession is in the "starting transaction" or "transaction in progress"
586
+ // state, invoke abortTransaction on the session.
559
587
  if (this.transaction.state === transactions_1.TxnState.STARTING_TRANSACTION ||
560
588
  this.transaction.state === transactions_1.TxnState.TRANSACTION_IN_PROGRESS) {
561
- // 7.i If the ClientSession is in the "starting transaction" or "transaction in progress" state,
562
- // invoke abortTransaction on the session
563
589
  await this.abortTransaction();
564
590
  }
565
- if (fnError.hasErrorLabel(error_1.MongoErrorLabel.TransientTransactionError) &&
566
- (this.timeoutContext?.csotEnabled() || (0, utils_1.processTimeMS)() - startTime < MAX_TIMEOUT)) {
567
- // 7.ii If the callback's error includes a "TransientTransactionError" label and the elapsed time of `withTransaction`
568
- // is less than 120 seconds, jump back to step two.
569
- lastError = fnError;
591
+ // 7.2 If the callback's error includes a "TransientTransactionError" label, jump back to step two.
592
+ if (fnError.hasErrorLabel(error_1.MongoErrorLabel.TransientTransactionError)) {
593
+ if ((0, utils_1.processTimeMS)() >= deadline) {
594
+ throw makeTimeoutError(lastError, csotEnabled);
595
+ }
570
596
  continue retryTransaction;
571
597
  }
572
- // 7.iii If the callback's error includes a "UnknownTransactionCommitResult" label, the callback must have manually committed a transaction,
573
- // propagate the callback's error to the caller of withTransaction and return immediately.
574
- // The 7.iii check is redundant with 6.iv, so we don't write code for it
575
- // 7.iv Otherwise, propagate the callback's error to the caller of withTransaction and return immediately.
598
+ // 7.3 If the callback's error includes a "UnknownTransactionCommitResult" label, the callback must
599
+ // have manually committed a transaction, propagate the callback's error to the caller of withTransaction
600
+ // as is and return immediately.
601
+ // 7.4 Otherwise, propagate the callback's error to the caller of withTransaction as is and return immediately.
576
602
  throw fnError;
577
603
  }
578
604
  retryCommit: while (!committed) {
579
605
  try {
580
- /*
581
- * We will rely on ClientSession.commitTransaction() to
582
- * apply a majority write concern if commitTransaction is
583
- * being retried (see: DRIVERS-601)
584
- */
585
606
  // 9. Invoke commitTransaction on the session.
586
607
  await this.commitTransaction();
587
608
  committed = true;
588
- // 10. If commitTransaction reported an error:
589
609
  }
590
610
  catch (commitError) {
591
- // If CSOT is enabled, we repeatedly retry until timeoutMS expires. This is enforced by providing a
592
- // timeoutContext to each async API, which know how to cancel themselves (i.e., the next retry will
593
- // abort the withTransaction call).
594
- // If CSOT is not enabled, do we still have time remaining or have we timed out?
595
- const hasTimedOut = !this.timeoutContext?.csotEnabled() && (0, utils_1.processTimeMS)() - startTime >= MAX_TIMEOUT;
596
- if (!hasTimedOut) {
597
- /*
598
- * Note: a maxTimeMS error will have the MaxTimeMSExpired
599
- * code (50) and can be reported as a top-level error or
600
- * inside writeConcernError, ex.
601
- * { ok:0, code: 50, codeName: 'MaxTimeMSExpired' }
602
- * { ok:1, writeConcernError: { code: 50, codeName: 'MaxTimeMSExpired' } }
603
- */
604
- if (!isMaxTimeMSExpiredError(commitError) &&
605
- commitError.hasErrorLabel(error_1.MongoErrorLabel.UnknownTransactionCommitResult)) {
606
- // 10.i If the `commitTransaction` error includes a "UnknownTransactionCommitResult" label and the error is not
607
- // MaxTimeMSExpired and the elapsed time of `withTransaction` is less than 120 seconds, jump back to step eight.
608
- continue retryCommit;
609
- }
610
- if (commitError.hasErrorLabel(error_1.MongoErrorLabel.TransientTransactionError)) {
611
- // 10.ii If the commitTransaction error includes a "TransientTransactionError" label
612
- // and the elapsed time of withTransaction is less than 120 seconds, jump back to step two.
613
- lastError = commitError;
614
- continue retryTransaction;
611
+ // 10. If commitTransaction reported an error:
612
+ lastError = commitError;
613
+ // 10.1 If the commitTransaction error includes a UnknownTransactionCommitResult label and the error is
614
+ // not MaxTimeMSExpired
615
+ if (commitError.hasErrorLabel(error_1.MongoErrorLabel.UnknownTransactionCommitResult) &&
616
+ !isMaxTimeMSExpiredError(commitError)) {
617
+ // 10.1.1 If the elapsed time of withTransaction exceeded TIMEOUT_MS, propagate the commitTransaction
618
+ // error to the caller of withTransaction as per timeout error propagation and return immediately.
619
+ if ((0, utils_1.processTimeMS)() >= deadline) {
620
+ throw makeTimeoutError(commitError, csotEnabled);
615
621
  }
622
+ // 10.1.2 Otherwise, jump back to step nine. We will trust commitTransaction to apply a majority write
623
+ // concern on retry attempts (see: Majority write concern is used when retrying commitTransaction).
624
+ continue retryCommit;
625
+ }
626
+ // 10.2 If the commitTransaction error includes a TransientTransactionError label, jump back to step two.
627
+ if (commitError.hasErrorLabel(error_1.MongoErrorLabel.TransientTransactionError)) {
628
+ continue retryTransaction;
616
629
  }
617
- // 10.iii Otherwise, propagate the commitTransaction error to the caller of withTransaction and return immediately.
630
+ // 10.3 Otherwise, propagate the commitTransaction error to the caller of withTransaction as is and return
631
+ // immediately.
618
632
  throw commitError;
619
633
  }
620
634
  }
621
635
  }
636
+ // 11. The transaction was committed successfully. Return immediately.
622
637
  // @ts-expect-error Result is always defined if we reach here, the for-loop above convinces TS it is not.
623
638
  return result;
624
639
  }
@@ -628,6 +643,24 @@ class ClientSession extends mongo_types_1.TypedEventEmitter {
628
643
  }
629
644
  }
630
645
  exports.ClientSession = ClientSession;
646
+ function makeTimeoutError(cause, csotEnabled) {
647
+ // Async APIs know how to cancel themselves and might return CSOT error
648
+ if (cause instanceof error_1.MongoOperationTimeoutError) {
649
+ return cause;
650
+ }
651
+ if (csotEnabled) {
652
+ const timeoutError = new error_1.MongoOperationTimeoutError('Timed out during withTransaction', {
653
+ cause
654
+ });
655
+ if (cause instanceof error_1.MongoError) {
656
+ for (const label of cause.errorLabels) {
657
+ timeoutError.addErrorLabel(label);
658
+ }
659
+ }
660
+ return timeoutError;
661
+ }
662
+ return cause;
663
+ }
631
664
  const NON_DETERMINISTIC_WRITE_CONCERN_ERRORS = new Set([
632
665
  'CannotSatisfyWriteConcern',
633
666
  'UnknownReplWriteConcern',
@@ -709,7 +742,7 @@ class ServerSession {
709
742
  /** @internal */
710
743
  constructor(cloned) {
711
744
  if (cloned != null) {
712
- const idBytes = Buffer.allocUnsafe(16);
745
+ const idBytes = bson_1.ByteUtils.allocateUnsafe(16);
713
746
  idBytes.set(cloned.id.id.buffer);
714
747
  this.id = { id: new bson_1.Binary(idBytes, cloned.id.id.sub_type) };
715
748
  this.lastUse = cloned.lastUse;
@@ -841,7 +874,7 @@ function applySession(session, command, options) {
841
874
  }
842
875
  if (session.supports.causalConsistency &&
843
876
  session.operationTime &&
844
- (0, utils_1.commandSupportsReadConcern)(command)) {
877
+ (0, utils_1.commandSupportsAfterClusterTime)(command)) {
845
878
  command.readConcern = command.readConcern || {};
846
879
  Object.assign(command.readConcern, { afterClusterTime: session.operationTime });
847
880
  }
@@ -857,7 +890,6 @@ function applySession(session, command, options) {
857
890
  // `autocommit` must always be false to differentiate from retryable writes
858
891
  command.autocommit = false;
859
892
  if (session.transaction.state === transactions_1.TxnState.STARTING_TRANSACTION) {
860
- session.transaction.transition(transactions_1.TxnState.TRANSACTION_IN_PROGRESS);
861
893
  command.startTransaction = true;
862
894
  const readConcern = session.transaction.options.readConcern || session?.clientOptions?.readConcern;
863
895
  if (readConcern) {
@@ -888,5 +920,17 @@ function updateSessionFromResponse(session, document) {
888
920
  session.snapshotTime = atClusterTime;
889
921
  }
890
922
  }
923
+ if (session.transaction.state === transactions_1.TxnState.STARTING_TRANSACTION) {
924
+ if (document.ok === 1) {
925
+ session.transaction.transition(transactions_1.TxnState.TRANSACTION_IN_PROGRESS);
926
+ }
927
+ else {
928
+ const error = new error_1.MongoServerError(document.toObject());
929
+ const isRetryableError = error.hasErrorLabel(error_1.MongoErrorLabel.RetryableError);
930
+ if (!isRetryableError) {
931
+ session.transaction.transition(transactions_1.TxnState.TRANSACTION_IN_PROGRESS);
932
+ }
933
+ }
934
+ }
891
935
  }
892
936
  //# sourceMappingURL=sessions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sessions.js","sourceRoot":"","sources":["../src/sessions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sessions.js","sourceRoot":"","sources":["../src/sessions.ts"],"names":[],"mappings":"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"}