mongodb 7.6.0 → 7.7.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.
@@ -106,14 +106,9 @@ class CallbackWorkflow {
106
106
  * to every 100ms.
107
107
  */
108
108
  withLock(callback) {
109
- let lock = Promise.resolve();
109
+ let queue = Promise.resolve();
110
110
  return async (params) => {
111
- // We do this to ensure that we would never return the result of the
112
- // previous lock, only the current callback's value would get returned.
113
- await lock;
114
- lock = lock
115
- .catch(() => null)
116
- .then(async () => {
111
+ const execution = queue.then(async () => {
117
112
  const difference = Date.now() - this.lastExecutionTime;
118
113
  if (difference <= THROTTLE_MS) {
119
114
  await (0, promises_1.setTimeout)(THROTTLE_MS - difference, { signal: params.timeoutContext });
@@ -121,7 +116,11 @@ class CallbackWorkflow {
121
116
  this.lastExecutionTime = Date.now();
122
117
  return await callback(params);
123
118
  });
124
- return await lock;
119
+ // The queue exists only to order callers, so it must carry neither a
120
+ // result nor an error: a caller waiting on it gets its own callback
121
+ // invocation, and a failed callback does not block the callers behind it.
122
+ queue = execution.then(() => undefined, () => undefined);
123
+ return await execution;
125
124
  };
126
125
  }
127
126
  }
@@ -1 +1 @@
1
- {"version":3,"file":"callback_workflow.js","sourceRoot":"","sources":["../../../../src/cmap/auth/mongodb_oidc/callback_workflow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"callback_workflow.js","sourceRoot":"","sources":["../../../../src/cmap/auth/mongodb_oidc/callback_workflow.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mongodb",
3
- "version": "7.6.0",
3
+ "version": "7.7.0",
4
4
  "description": "The official MongoDB driver for Node.js",
5
5
  "main": "lib/index.js",
6
6
  "files": [
@@ -25,9 +25,9 @@
25
25
  "email": "dbx-node@mongodb.com"
26
26
  },
27
27
  "dependencies": {
28
- "@mongodb-js/saslprep": "^1.4.11",
29
- "bson": "^7.2.0",
30
- "mongodb-connection-string-url": "^7.0.1"
28
+ "@mongodb-js/saslprep": "^1.5.0",
29
+ "bson": "^7.3.2",
30
+ "mongodb-connection-string-url": "^7.0.2"
31
31
  },
32
32
  "peerDependencies": {
33
33
  "@aws-sdk/credential-providers": "^3.806.0",
@@ -62,55 +62,55 @@
62
62
  }
63
63
  },
64
64
  "devDependencies": {
65
- "@aws-sdk/credential-providers": "^3.876.0",
65
+ "@aws-sdk/credential-providers": "^3.1117.0",
66
66
  "@iarna/toml": "^2.2.5",
67
67
  "@istanbuljs/nyc-config-typescript": "^1.0.2",
68
- "@microsoft/api-extractor": "^7.58.7",
68
+ "@microsoft/api-extractor": "^7.59.0",
69
69
  "@microsoft/tsdoc-config": "^0.18.1",
70
70
  "@mongodb-js/zstd": "^7.0.0",
71
- "@types/chai-subset": "^1.3.5",
71
+ "@types/chai-subset": "^1.3.6",
72
72
  "@types/express": "^5.0.6",
73
73
  "@types/kerberos": "^1.1.5",
74
- "@types/mocha": "^10.0.9",
75
- "@types/node": "^22.15.3",
74
+ "@types/mocha": "^10.0.10",
75
+ "@types/node": "^22.20.1",
76
76
  "@types/saslprep": "^1.0.3",
77
- "@types/semver": "^7.7.0",
77
+ "@types/semver": "^7.8.0",
78
78
  "@types/sinon": "^17.0.4",
79
79
  "@types/whatwg-url": "^13.0.0",
80
- "@typescript-eslint/eslint-plugin": "^8.60.1",
81
- "@typescript-eslint/parser": "^8.31.1",
80
+ "@typescript-eslint/eslint-plugin": "^8.68.0",
81
+ "@typescript-eslint/parser": "^8.68.0",
82
82
  "aws4": "^1.13.2",
83
83
  "chai": "^5.3.3",
84
84
  "chai-subset": "^1.6.0",
85
85
  "chalk": "^4.1.2",
86
- "esbuild": "^0.28.0",
87
- "eslint": "^9.39.1",
86
+ "esbuild": "^0.28.2",
87
+ "eslint": "^9.39.5",
88
88
  "eslint-config-prettier": "^10.1.8",
89
- "eslint-plugin-mocha": "^10.4.1",
89
+ "eslint-plugin-mocha": "^10.5.0",
90
90
  "eslint-plugin-prettier": "^5.5.6",
91
91
  "eslint-plugin-simple-import-sort": "^12.1.1",
92
92
  "eslint-plugin-tsdoc": "^0.5.2",
93
93
  "eslint-plugin-unused-imports": "^4.4.1",
94
94
  "express": "^5.2.1",
95
95
  "gcp-metadata": "^7.0.1",
96
- "js-yaml": "^4.2.0",
97
- "mocha": "^11.7.6",
96
+ "js-yaml": "^4.3.1",
97
+ "mocha": "^11.8.0",
98
98
  "mocha-sinon": "^2.1.2",
99
- "mongodb-client-encryption": "^7.2.0",
99
+ "mongodb-client-encryption": "^7.2.1",
100
100
  "nyc": "^17.1.0",
101
- "prettier": "^3.6.2",
102
- "semver": "^7.7.2",
101
+ "prettier": "3.6.2",
102
+ "semver": "^7.8.5",
103
103
  "sinon": "^18.0.1",
104
104
  "sinon-chai": "^4.0.1",
105
105
  "snappy": "7.3.3",
106
- "socks": "^2.8.7",
106
+ "socks": "^2.8.9",
107
107
  "source-map-support": "^0.5.21",
108
108
  "ts-node": "^10.9.2",
109
109
  "tsd": "^0.33.0",
110
110
  "typescript": "5.8.3",
111
111
  "typescript-cached-transpile": "^0.0.6",
112
112
  "v8-heapsnapshot": "^1.3.1",
113
- "yargs": "^18.0.0"
113
+ "yargs": "^18.1.0"
114
114
  },
115
115
  "license": "Apache-2.0",
116
116
  "engines": {
@@ -154,24 +154,24 @@ export abstract class CallbackWorkflow implements Workflow {
154
154
  * to every 100ms.
155
155
  */
156
156
  protected withLock(callback: OIDCCallbackFunction): OIDCCallbackFunction {
157
- let lock: Promise<any> = Promise.resolve();
157
+ let queue: Promise<void> = Promise.resolve();
158
158
  return async (params: OIDCCallbackParams): Promise<OIDCResponse> => {
159
- // We do this to ensure that we would never return the result of the
160
- // previous lock, only the current callback's value would get returned.
161
- await lock;
162
- lock = lock
163
-
164
- .catch(() => null)
165
-
166
- .then(async () => {
167
- const difference = Date.now() - this.lastExecutionTime;
168
- if (difference <= THROTTLE_MS) {
169
- await setTimeout(THROTTLE_MS - difference, { signal: params.timeoutContext });
170
- }
171
- this.lastExecutionTime = Date.now();
172
- return await callback(params);
173
- });
174
- return await lock;
159
+ const execution = queue.then(async () => {
160
+ const difference = Date.now() - this.lastExecutionTime;
161
+ if (difference <= THROTTLE_MS) {
162
+ await setTimeout(THROTTLE_MS - difference, { signal: params.timeoutContext });
163
+ }
164
+ this.lastExecutionTime = Date.now();
165
+ return await callback(params);
166
+ });
167
+ // The queue exists only to order callers, so it must carry neither a
168
+ // result nor an error: a caller waiting on it gets its own callback
169
+ // invocation, and a failed callback does not block the callers behind it.
170
+ queue = execution.then(
171
+ () => undefined,
172
+ () => undefined
173
+ );
174
+ return await execution;
175
175
  };
176
176
  }
177
177
  }