@mongodb-js/oidc-plugin 1.1.8 → 2.0.1

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/dist/types.js CHANGED
@@ -1,16 +1,16 @@
1
1
  "use strict";
2
- var _a;
3
2
  Object.defineProperty(exports, "__esModule", { value: true });
4
3
  exports.MongoDBOIDCError = void 0;
5
4
  /** @internal */
6
5
  const MongoDBOIDCErrorTag = Symbol.for('@@mdb.oidcplugin.MongoDBOIDCErrorTag');
7
6
  /** @public */
8
7
  class MongoDBOIDCError extends Error {
9
- constructor(message, { cause } = {}) {
10
- // @ts-expect-error `cause` is not supported in Node.js 14
8
+ /** @internal */
9
+ [MongoDBOIDCErrorTag] = true;
10
+ codeName;
11
+ constructor(message, { cause, codeName }) {
11
12
  super(message, { cause });
12
- /** @internal */
13
- this[_a] = true;
13
+ this.codeName = `MongoDBOIDC${codeName}`;
14
14
  }
15
15
  static isMongoDBOIDCError(value) {
16
16
  return (
@@ -19,5 +19,4 @@ class MongoDBOIDCError extends Error {
19
19
  }
20
20
  }
21
21
  exports.MongoDBOIDCError = MongoDBOIDCError;
22
- _a = MongoDBOIDCErrorTag;
23
22
  //# sourceMappingURL=types.js.map
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;;AA+MA,gBAAgB;AAChB,MAAM,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;AAC/E,cAAc;AACd,MAAa,gBAAiB,SAAQ,KAAK;IAIzC,YAAY,OAAe,EAAE,EAAE,KAAK,KAA0B,EAAE;QAC9D,0DAA0D;QAC1D,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAL5B,gBAAgB;QACR,QAAqB,GAAG,IAAI,CAAC;IAKrC,CAAC;IAED,MAAM,CAAC,kBAAkB,CAAC,KAAc;QACtC,OAAO;QACL,8DAA8D;QAC9D,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAK,KAAa,CAAC,mBAAmB,CAAC,CAC1E,CAAC;IACJ,CAAC;CACF;AAfD,4CAeC;KAbU,mBAAmB"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAwNA,gBAAgB;AAChB,MAAM,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;AAC/E,cAAc;AACd,MAAa,gBAAiB,SAAQ,KAAK;IACzC,gBAAgB;IACR,CAAC,mBAAmB,CAAC,GAAG,IAAI,CAAC;IACrB,QAAQ,CAAyB;IAEjD,YACE,OAAe,EACf,EAAE,KAAK,EAAE,QAAQ,EAAyC;QAE1D,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,cAAc,QAAQ,EAAE,CAAC;IAC3C,CAAC;IAED,MAAM,CAAC,kBAAkB,CAAC,KAAc;QACtC,OAAO;QACL,8DAA8D;QAC9D,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAK,KAAa,CAAC,mBAAmB,CAAC,CAC1E,CAAC;IACJ,CAAC;CACF;AAnBD,4CAmBC"}
package/dist/util.d.ts CHANGED
@@ -1,6 +1,5 @@
1
- /// <reference types="node" />
2
- import type { TokenSet } from 'openid-client';
3
- import type { OIDCAbortSignal } from './types';
1
+ import type { IDToken, JsonValue, TokenEndpointResponse, TokenEndpointResponseHelpers } from 'openid-client';
2
+ import { MongoDBOIDCError, type OIDCAbortSignal } from './types';
4
3
  export declare function throwIfAborted(signal?: OIDCAbortSignal): void;
5
4
  interface AbortCheckArgs {
6
5
  signalCheck: () => void;
@@ -11,9 +10,46 @@ export declare function errorString(err: unknown): string;
11
10
  export declare function timeoutSignal(ms: number): AbortSignal;
12
11
  export declare function withLock<T extends (...args: any[]) => Promise<any>>(fn: T): (...args: Parameters<T>) => ReturnType<T>;
13
12
  export declare function normalizeObject<T extends object>(obj: T): T;
14
- export declare function validateSecureHTTPUrl(url: unknown, diagnosticId: string): void;
13
+ export declare function validateSecureHTTPUrl(url: string | URL | undefined | null | JsonValue, diagnosticId: string): 'http-allowed' | 'http-disallowed';
15
14
  export declare function messageFromError(err: unknown): string;
16
15
  export declare function getRefreshTokenId(token: string | null | undefined): string | null;
17
- export declare function getStableTokenSetId(tokenSet: TokenSet): string;
16
+ export declare class TokenSet {
17
+ private readonly response;
18
+ readonly expiresAt: number | undefined;
19
+ constructor(response: TokenEndpointResponse & TokenEndpointResponseHelpers, expiresAt?: number | undefined);
20
+ get refreshToken(): string | undefined;
21
+ get accessToken(): string | undefined;
22
+ get idToken(): string | undefined;
23
+ get idTokenClaims(): IDToken | undefined;
24
+ get tokenType(): TokenEndpointResponse['token_type'];
25
+ serialize(): {
26
+ claims: {
27
+ [claim: string]: JsonValue | undefined;
28
+ iss: string;
29
+ sub: string;
30
+ aud: string | string[];
31
+ iat: number;
32
+ exp: number;
33
+ nonce?: string;
34
+ auth_time?: number;
35
+ azp?: string;
36
+ jti?: string;
37
+ nbf?: number;
38
+ cnf?: import("oauth4webapi").ConfirmationClaims;
39
+ } | undefined;
40
+ expiresAt: number | undefined;
41
+ expiresIn: undefined;
42
+ access_token: string;
43
+ expires_in?: number;
44
+ id_token?: string;
45
+ refresh_token?: string;
46
+ scope?: string;
47
+ authorization_details?: import("oauth4webapi").AuthorizationDetails[];
48
+ token_type: "bearer" | "dpop" | Lowercase<string>;
49
+ };
50
+ static fromSerialized(serialized: ReturnType<(typeof TokenSet.prototype)['serialize']>): TokenSet;
51
+ stableId(): string;
52
+ }
53
+ export declare function improveHTTPResponseBasedError<T>(err: T): Promise<T | MongoDBOIDCError>;
18
54
  export {};
19
55
  //# sourceMappingURL=util.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAS/C,wBAAgB,cAAc,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,IAAI,CAE7D;AAED,UAAU,cAAc;IACtB,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,aAAa,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;CAC/B;AACD,wBAAsB,cAAc,CAElC,CAAC,SAAS,CAAC,UAAU,EAAE,cAAc,KAAK,OAAO,CAAC,GAAG,CAAC,EACtD,MAAM,EAAE,eAAe,GAAG,SAAS,EAAE,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAoBpE;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAIhD;AAGD,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,CAIrD;AAID,wBAAgB,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,EACjE,EAAE,EAAE,CAAC,GACJ,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,CAc3C;AAID,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAE3D;AAGD,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,OAAO,EACZ,YAAY,EAAE,MAAM,GACnB,IAAI,CA4BN;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CASrD;AAGD,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC/B,MAAM,GAAG,IAAI,CAOf;AAGD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAc9D"}
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,SAAS,EACT,qBAAqB,EACrB,4BAA4B,EAC7B,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,gBAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,SAAS,CAAC;AASjE,wBAAgB,cAAc,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,IAAI,CAE7D;AAED,UAAU,cAAc;IACtB,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,aAAa,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;CAC/B;AACD,wBAAsB,cAAc,CAElC,CAAC,SAAS,CAAC,UAAU,EAAE,cAAc,KAAK,OAAO,CAAC,GAAG,CAAC,EACtD,MAAM,EAAE,eAAe,GAAG,SAAS,EAAE,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAoBpE;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAIhD;AAGD,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,CAIrD;AAID,wBAAgB,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,EACjE,EAAE,EAAE,CAAC,GACJ,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,CAc3C;AAID,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAE3D;AAOD,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,MAAM,GAAG,GAAG,GAAG,SAAS,GAAG,IAAI,GAAG,SAAS,EAChD,YAAY,EAAE,MAAM,GACnB,cAAc,GAAG,iBAAiB,CA+BpC;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CASrD;AAGD,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC/B,MAAM,GAAG,IAAI,CAOf;AAED,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CACM;IAC/B,SAAgB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;gBAG5C,QAAQ,EAAE,qBAAqB,GAAG,4BAA4B,EAC9D,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS;IAahC,IAAI,YAAY,IAAI,MAAM,GAAG,SAAS,CAErC;IAED,IAAI,WAAW,IAAI,MAAM,GAAG,SAAS,CAEpC;IAED,IAAI,OAAO,IAAI,MAAM,GAAG,SAAS,CAEhC;IAED,IAAI,aAAa,IAAI,OAAO,GAAG,SAAS,CAEvC;IAED,IAAI,SAAS,IAAI,qBAAqB,CAAC,YAAY,CAAC,CAEnD;IAID,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;IAaT,MAAM,CAAC,cAAc,CACnB,UAAU,EAAE,UAAU,CAAC,CAAC,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC,GAC/D,QAAQ;IAcX,QAAQ,IAAI,MAAM;CAcnB;AAMD,wBAAsB,6BAA6B,CAAC,CAAC,EACnD,GAAG,EAAE,CAAC,GACL,OAAO,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAuC/B"}
package/dist/util.js CHANGED
@@ -1,6 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getStableTokenSetId = exports.getRefreshTokenId = exports.messageFromError = exports.validateSecureHTTPUrl = exports.normalizeObject = exports.withLock = exports.timeoutSignal = exports.errorString = exports.withAbortCheck = exports.throwIfAborted = void 0;
3
+ exports.TokenSet = void 0;
4
+ exports.throwIfAborted = throwIfAborted;
5
+ exports.withAbortCheck = withAbortCheck;
6
+ exports.errorString = errorString;
7
+ exports.timeoutSignal = timeoutSignal;
8
+ exports.withLock = withLock;
9
+ exports.normalizeObject = normalizeObject;
10
+ exports.validateSecureHTTPUrl = validateSecureHTTPUrl;
11
+ exports.messageFromError = messageFromError;
12
+ exports.getRefreshTokenId = getRefreshTokenId;
13
+ exports.improveHTTPResponseBasedError = improveHTTPResponseBasedError;
14
+ const types_1 = require("./types");
4
15
  const crypto_1 = require("crypto");
5
16
  class AbortError extends Error {
6
17
  constructor() {
@@ -11,7 +22,6 @@ function throwIfAborted(signal) {
11
22
  if (signal?.aborted)
12
23
  throw signal.reason ?? new AbortError();
13
24
  }
14
- exports.throwIfAborted = throwIfAborted;
15
25
  async function withAbortCheck(signal, fn) {
16
26
  const signalCheck = () => throwIfAborted(signal);
17
27
  let reject;
@@ -33,18 +43,15 @@ async function withAbortCheck(signal, fn) {
33
43
  signal?.removeEventListener('abort', listener);
34
44
  }
35
45
  }
36
- exports.withAbortCheck = withAbortCheck;
37
46
  function errorString(err) {
38
47
  return String(typeof err === 'object' && err && 'message' in err ? err.message : err);
39
48
  }
40
- exports.errorString = errorString;
41
49
  // AbortSignal.timeout, but consistently .unref()ed
42
50
  function timeoutSignal(ms) {
43
51
  const controller = new AbortController();
44
52
  setTimeout(() => controller.abort(), ms).unref();
45
53
  return controller.signal;
46
54
  }
47
- exports.timeoutSignal = timeoutSignal;
48
55
  // Ensure that only one call to the target `fn` is active at a time.
49
56
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
50
57
  function withLock(fn) {
@@ -62,30 +69,32 @@ function withLock(fn) {
62
69
  return result;
63
70
  };
64
71
  }
65
- exports.withLock = withLock;
66
72
  // Normalize JS objects by sorting keys so that {a:1,b:2} and {b:2,a:1} are equivalent.
67
73
  // eslint-disable-next-line @typescript-eslint/ban-types
68
74
  function normalizeObject(obj) {
69
75
  return Object.fromEntries(Object.entries(obj).sort());
70
76
  }
71
- exports.normalizeObject = normalizeObject;
77
+ function isURL(url) {
78
+ return Object.prototype.toString.call(url).toLowerCase() === '[object url]';
79
+ }
72
80
  // Throws if the url does not refer to an https: endpoint or a local endpoint, or null or undefined.
73
81
  function validateSecureHTTPUrl(url, diagnosticId) {
74
82
  try {
75
83
  // eslint-disable-next-line eqeqeq
76
84
  if (url == null)
77
- return;
78
- if (typeof url !== 'string')
79
- throw new Error(`Expected string, got ${typeof url} instead`);
80
- const parsed = new URL(url);
85
+ return 'http-disallowed';
86
+ if (typeof url !== 'string' && !isURL(url))
87
+ throw new Error(`Expected string or URL object, got ${typeof url} instead`);
88
+ const parsed = isURL(url) ? url : new URL(url);
81
89
  if (parsed.protocol === 'https:')
82
- return;
90
+ return 'http-disallowed';
83
91
  if (parsed.protocol !== 'http:') {
84
- throw new Error(`Unknown protocol '${parsed.protocol}' '${url}'`);
92
+ throw new Error(`Unknown protocol '${parsed.protocol}' '${String(url)}'`);
85
93
  }
86
94
  if (!/^(\[::1\]|127(\.\d+){3}|localhost)$/.test(parsed.hostname)) {
87
- throw new Error(`Need to specify https: when accessing non-local URL '${url}'`);
95
+ throw new Error(`Need to specify https: when accessing non-local URL '${String(url)}'`);
88
96
  }
97
+ return 'http-allowed';
89
98
  }
90
99
  catch (err) {
91
100
  if (!err ||
@@ -98,7 +107,6 @@ function validateSecureHTTPUrl(url, diagnosticId) {
98
107
  throw err;
99
108
  }
100
109
  }
101
- exports.validateSecureHTTPUrl = validateSecureHTTPUrl;
102
110
  function messageFromError(err) {
103
111
  return String(err &&
104
112
  typeof err === 'object' &&
@@ -107,7 +115,6 @@ function messageFromError(err) {
107
115
  ? err.message
108
116
  : err);
109
117
  }
110
- exports.messageFromError = messageFromError;
111
118
  const salt = (0, crypto_1.randomBytes)(16);
112
119
  function getRefreshTokenId(token) {
113
120
  if (!token)
@@ -116,19 +123,110 @@ function getRefreshTokenId(token) {
116
123
  // that might unnecessarily worry users
117
124
  return ('debugid:' + (0, crypto_1.createHash)('sha256').update(salt).update(token).digest('hex'));
118
125
  }
119
- exports.getRefreshTokenId = getRefreshTokenId;
120
- // Identify a token set based on a hash of its contents
121
- function getStableTokenSetId(tokenSet) {
122
- const { access_token, id_token, refresh_token, token_type, expires_at } = tokenSet;
123
- return (0, crypto_1.createHash)('sha256')
124
- .update(JSON.stringify({
125
- access_token,
126
- id_token,
127
- refresh_token,
128
- token_type,
129
- expires_at,
130
- }))
131
- .digest('hex');
126
+ class TokenSet {
127
+ response;
128
+ expiresAt;
129
+ constructor(response, expiresAt) {
130
+ this.response = response;
131
+ this.expiresAt =
132
+ expiresAt ??
133
+ (() => {
134
+ const expiresIn = this.response.expiresIn();
135
+ return expiresIn
136
+ ? Math.floor(Date.now() / 1000) + expiresIn
137
+ : undefined;
138
+ })();
139
+ }
140
+ get refreshToken() {
141
+ return this.response.refresh_token;
142
+ }
143
+ get accessToken() {
144
+ return this.response.access_token;
145
+ }
146
+ get idToken() {
147
+ return this.response.id_token;
148
+ }
149
+ get idTokenClaims() {
150
+ return this.response.claims();
151
+ }
152
+ get tokenType() {
153
+ return this.response.token_type;
154
+ }
155
+ // Explicitly expressing the return type of this function is a bit awkward,
156
+ // and since it is only consumed by `fromSerialized`, it's fine to leave it inferred.
157
+ serialize() {
158
+ const expiresIn = this.response.expiresIn();
159
+ const claims = this.response.claims();
160
+ return {
161
+ ...this.response,
162
+ claims: claims ? { ...claims } : undefined,
163
+ expiresAt: this.expiresAt ??
164
+ (expiresIn ? Math.floor(Date.now() / 1000) + expiresIn : undefined),
165
+ expiresIn: undefined,
166
+ };
167
+ }
168
+ static fromSerialized(serialized) {
169
+ const helpers = {
170
+ claims: () => serialized.claims,
171
+ expiresIn: () => serialized.expiresAt &&
172
+ Math.max(0, serialized.expiresAt - Math.floor(Date.now() / 1000)),
173
+ };
174
+ return new this(Object.assign({ ...serialized }, helpers), serialized.expiresAt);
175
+ }
176
+ // Identify a token set based on a hash of its contents
177
+ stableId() {
178
+ const { access_token, id_token, refresh_token, token_type } = this.response;
179
+ return (0, crypto_1.createHash)('sha256')
180
+ .update(JSON.stringify({
181
+ access_token,
182
+ id_token,
183
+ refresh_token,
184
+ token_type,
185
+ expires_at: this.expiresAt,
186
+ }))
187
+ .digest('hex');
188
+ }
189
+ }
190
+ exports.TokenSet = TokenSet;
191
+ // openid-client@6.x has reduced error messages for HTTP errors significantly, reducing e.g.
192
+ // an HTTP error to just a simple 'unexpect HTTP response status code' message, without
193
+ // further diagnostic information. So if the `cause` of an `err` object is a fetch `Response`
194
+ // object, we try to throw a more helpful error.
195
+ async function improveHTTPResponseBasedError(err) {
196
+ if (err &&
197
+ typeof err === 'object' &&
198
+ 'cause' in err &&
199
+ err.cause &&
200
+ typeof err.cause === 'object' &&
201
+ 'status' in err.cause &&
202
+ 'statusText' in err.cause &&
203
+ 'text' in err.cause &&
204
+ typeof err.cause.text === 'function') {
205
+ try {
206
+ let body = '';
207
+ try {
208
+ body = await err.cause.text();
209
+ }
210
+ catch {
211
+ // ignore
212
+ }
213
+ let errorMessageFromBody = '';
214
+ try {
215
+ const parsed = JSON.parse(body);
216
+ errorMessageFromBody =
217
+ ': ' + String(parsed.error_description || parsed.error || '');
218
+ }
219
+ catch {
220
+ // ignore
221
+ }
222
+ if (!errorMessageFromBody)
223
+ errorMessageFromBody = `: ${body}`;
224
+ return new types_1.MongoDBOIDCError(`${errorString(err)}: caused by HTTP response ${String(err.cause.status)} (${String(err.cause.statusText)})${errorMessageFromBody}`, { codeName: 'HTTPResponseError', cause: err });
225
+ }
226
+ catch {
227
+ return err;
228
+ }
229
+ }
230
+ return err;
132
231
  }
133
- exports.getStableTokenSetId = getStableTokenSetId;
134
232
  //# sourceMappingURL=util.js.map
package/dist/util.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
package/index.d.ts CHANGED
@@ -1,5 +1,3 @@
1
- /// <reference types="node" />
2
-
3
1
  import type { IncomingMessage } from 'http';
4
2
  import type { RequestOptions } from 'https';
5
3
  import type { ServerResponse } from 'http';
@@ -48,7 +46,10 @@ export declare interface DeviceFlowInformation {
48
46
  */
49
47
  export declare function hookLoggerToMongoLogWriter(emitter: TypedEventEmitter<MongoDBOIDCLogEventsMap>, log: MongoLogWriter, contextPrefix: string): void;
50
48
 
51
- /** @public */
49
+ /**
50
+ * @public
51
+ * @deprecated Use a custom `fetch` function instead
52
+ */
52
53
  export declare type HttpOptions = Partial<Pick<RequestOptions, 'agent' | 'ca' | 'cert' | 'crl' | 'headers' | 'key' | 'lookup' | 'passphrase' | 'pfx' | 'timeout'>>;
53
54
 
54
55
  /**
@@ -74,8 +75,10 @@ export declare interface IdPServerResponse {
74
75
  /** @public */
75
76
  export declare class MongoDBOIDCError extends Error {
76
77
  /* Excluded from this release type: [MongoDBOIDCErrorTag] */
77
- constructor(message: string, { cause }?: {
78
+ readonly codeName: `MongoDBOIDC${string}`;
79
+ constructor(message: string, { cause, codeName }: {
78
80
  cause?: unknown;
81
+ codeName: string;
79
82
  });
80
83
  static isMongoDBOIDCError(value: unknown): value is MongoDBOIDCError;
81
84
  }
@@ -223,6 +226,15 @@ export declare interface MongoDBOIDCLogEventsMap {
223
226
  'mongodb-oidc-plugin:inbound-http-request': (event: {
224
227
  url: string;
225
228
  }) => void;
229
+ 'mongodb-oidc-plugin:outbound-http-request-failed': (event: {
230
+ url: string;
231
+ error: string;
232
+ }) => void;
233
+ 'mongodb-oidc-plugin:outbound-http-request-completed': (event: {
234
+ url: string;
235
+ status: number;
236
+ statusText: string;
237
+ }) => void;
226
238
  'mongodb-oidc-plugin:received-server-params': (event: {
227
239
  params: OIDCCallbackParams;
228
240
  }) => void;
@@ -367,8 +379,16 @@ export declare interface MongoDBOIDCPluginOptions {
367
379
  throwOnIncompatibleSerializedState?: boolean;
368
380
  /**
369
381
  * Provide custom HTTP options for individual HTTP calls.
382
+ *
383
+ * @deprecated Use a custom `fetch` function instead.
370
384
  */
371
385
  customHttpOptions?: HttpOptions | ((url: string, options: Readonly<HttpOptions>) => HttpOptions);
386
+ /**
387
+ * Provide a custom `fetch` function to be used for HTTP calls.
388
+ *
389
+ * Any API that is compatible with the web `fetch` API can be used here.
390
+ */
391
+ customFetch?: (url: string, options: Readonly<unknown>) => Promise<Response>;
372
392
  /**
373
393
  * Pass ID tokens in place of access tokens. For debugging/working around
374
394
  * broken identity providers.
package/package.json CHANGED
@@ -13,7 +13,7 @@
13
13
  "email": "compass@mongodb.com"
14
14
  },
15
15
  "homepage": "https://github.com/mongodb-js/oidc-plugin",
16
- "version": "1.1.8",
16
+ "version": "2.0.1",
17
17
  "repository": {
18
18
  "type": "git",
19
19
  "url": "https://github.com/mongodb-js/oidc-plugin.git"
@@ -30,7 +30,7 @@
30
30
  "import": "./dist/.esm-wrapper.mjs"
31
31
  },
32
32
  "engines": {
33
- "node": ">= 16.20.1"
33
+ "node": ">= 20.19.2"
34
34
  },
35
35
  "types": "./index.d.ts",
36
36
  "scripts": {
@@ -53,43 +53,45 @@
53
53
  "precommit": "precommit"
54
54
  },
55
55
  "devDependencies": {
56
- "@microsoft/api-extractor": "^7.34.4",
56
+ "@microsoft/api-extractor": "^7.52.8",
57
57
  "@mongodb-js/eslint-config-devtools": "^0.9.9",
58
58
  "@mongodb-js/mocha-config-devtools": "^1.0.0",
59
59
  "@mongodb-js/monorepo-tools": "^1.1.4",
60
- "@mongodb-js/oidc-mock-provider": "^0.10.2",
60
+ "@mongodb-js/oidc-mock-provider": "^0.11.3",
61
61
  "@mongodb-js/prettier-config-devtools": "^1.0.1",
62
62
  "@mongodb-js/tsconfig-devtools": "^1.0.0",
63
63
  "@types/chai": "^4.2.21",
64
- "@types/express": "^4.17.17",
64
+ "@types/electron-to-chromium": "^1.5.0",
65
+ "@types/express": "^5.0.3",
65
66
  "@types/mocha": "^10.0.2",
66
- "@types/node": "^18.13.0",
67
+ "@types/node": "^20.14.8",
67
68
  "@types/oidc-provider": "^8.1.1",
68
69
  "@types/sinon-chai": "^3.2.5",
69
70
  "chai": "^4.3.6",
70
71
  "depcheck": "^1.4.1",
71
- "electron": "^26.2.0",
72
- "electron-mocha": "^12.0.0",
72
+ "electron": "^36.5.0",
73
+ "electron-mocha": "^13.1.0",
74
+ "electron-to-chromium": "^1.5.170",
73
75
  "eslint": "^7.25.0",
74
76
  "gen-esm-wrapper": "^1.1.0",
75
77
  "husky": "^8.0.3",
76
- "mocha": "^10.2.0",
78
+ "mocha": "^11.7.1",
77
79
  "mongodb": "^6.7.0",
78
80
  "mongodb-log-writer": "^2.1.0",
79
81
  "mongodb-runner": "^5.2.0",
80
- "node-fetch": "^3.3.1",
81
82
  "nyc": "^15.1.0",
82
83
  "oidc-provider": "https://github.com/panva/node-oidc-provider/archive/refs/tags/v7.14.3.tar.gz",
83
- "prettier": "2.3.2",
84
+ "prettier": "^2.7.1",
84
85
  "rimraf": "^5.0.0",
85
86
  "sinon": "^15.0.3",
86
- "typescript": "^5.0.4",
87
- "webdriverio": "^8.5.9",
87
+ "typescript": "^5.8.3",
88
+ "webdriverio": "^9.15.0",
88
89
  "xvfb-maybe": "^0.2.1"
89
90
  },
90
91
  "dependencies": {
91
- "express": "^4.18.2",
92
- "open": "^9.1.0",
93
- "openid-client": "^5.6.4"
92
+ "express": "^5.1.0",
93
+ "node-fetch": "^3.3.2",
94
+ "open": "^10.1.2",
95
+ "openid-client": "^6.5.1"
94
96
  }
95
97
  }