@mongodb-js/devtools-connect 1.4.4 → 2.0.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/lib/connect.d.ts CHANGED
@@ -1,9 +1,27 @@
1
1
  import type { ConnectLogEmitter } from './index';
2
2
  import type { MongoClient, MongoClientOptions } from 'mongodb';
3
+ import type { MongoDBOIDCPlugin, MongoDBOIDCPluginOptions } from '@mongodb-js/oidc-plugin';
3
4
  export declare class MongoAutoencryptionUnavailable extends Error {
4
5
  constructor();
5
6
  }
7
+ export declare class DevtoolsConnectionState {
8
+ oidcPlugin: MongoDBOIDCPlugin;
9
+ productName: string;
10
+ private stateShareClient;
11
+ private stateShareServer;
12
+ constructor(options: Pick<DevtoolsConnectOptions, 'productDocsLink' | 'productName' | 'oidc' | 'parentHandle'>, logger: ConnectLogEmitter);
13
+ getStateShareServer(): Promise<string>;
14
+ destroy(): Promise<void>;
15
+ }
6
16
  export interface DevtoolsConnectOptions extends MongoClientOptions {
7
17
  useSystemCA?: boolean;
18
+ productDocsLink: string;
19
+ productName: string;
20
+ oidc?: Omit<MongoDBOIDCPluginOptions, 'logger' | 'redirectServerRequestHandler'>;
21
+ parentState?: DevtoolsConnectionState;
22
+ parentHandle?: string;
8
23
  }
9
- export declare function connectMongoClient(uri: string, clientOptions: DevtoolsConnectOptions, logger: ConnectLogEmitter, MongoClientClass: typeof MongoClient): Promise<MongoClient>;
24
+ export declare function connectMongoClient(uri: string, clientOptions: DevtoolsConnectOptions, logger: ConnectLogEmitter, MongoClientClass: typeof MongoClient): Promise<{
25
+ client: MongoClient;
26
+ state: DevtoolsConnectionState;
27
+ }>;
package/lib/connect.js CHANGED
@@ -1,8 +1,15 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.connectMongoClient = exports.MongoAutoencryptionUnavailable = void 0;
6
+ exports.connectMongoClient = exports.DevtoolsConnectionState = exports.MongoAutoencryptionUnavailable = void 0;
4
7
  const fast_failure_connect_1 = require("./fast-failure-connect");
5
8
  const system_ca_1 = require("system-ca");
9
+ const oidc_plugin_1 = require("@mongodb-js/oidc-plugin");
10
+ const lodash_merge_1 = __importDefault(require("lodash.merge"));
11
+ const handler_1 = require("./oidc/handler");
12
+ const ipc_rpc_state_share_1 = require("./ipc-rpc-state-share");
6
13
  class MongoAutoencryptionUnavailable extends Error {
7
14
  constructor() {
8
15
  super('Automatic encryption is only available with Atlas and MongoDB Enterprise');
@@ -10,21 +17,19 @@ class MongoAutoencryptionUnavailable extends Error {
10
17
  }
11
18
  exports.MongoAutoencryptionUnavailable = MongoAutoencryptionUnavailable;
12
19
  async function connectWithFailFast(uri, client, logger) {
13
- var _a, _b;
14
20
  const failedConnections = new Map();
15
21
  let failEarlyClosePromise = null;
16
22
  logger.emit('devtools-connect:connect-attempt-initialized', {
17
23
  uri,
18
24
  driver: client.options.metadata.driver,
19
25
  devtoolsConnectVersion: require('../package.json').version,
20
- host: (_a = client.options.srvHost) !== null && _a !== void 0 ? _a : client.options.hosts.join(',')
26
+ host: client.options.srvHost ?? client.options.hosts.join(',')
21
27
  });
22
28
  const heartbeatFailureListener = ({ failure, connectionId }) => {
23
- var _a;
24
- const topologyDescription = (_a = client.topology) === null || _a === void 0 ? void 0 : _a.description;
25
- const servers = topologyDescription === null || topologyDescription === void 0 ? void 0 : topologyDescription.servers;
29
+ const topologyDescription = client.topology?.description;
30
+ const servers = topologyDescription?.servers;
26
31
  const isFailFast = (0, fast_failure_connect_1.isFastFailureConnectionError)(failure);
27
- const isKnownServer = !!(servers === null || servers === void 0 ? void 0 : servers.has(connectionId));
32
+ const isKnownServer = !!servers?.has(connectionId);
28
33
  logger.emit('devtools-connect:connect-heartbeat-failure', {
29
34
  connectionId,
30
35
  failure,
@@ -62,7 +67,7 @@ async function connectWithFailFast(uri, client, logger) {
62
67
  client.removeListener('serverHeartbeatFailed', heartbeatFailureListener);
63
68
  client.removeListener('serverHeartbeatSucceeded', heartbeatSucceededListener);
64
69
  logger.emit('devtools-connect:connect-attempt-finished', {
65
- cryptSharedLibVersionInfo: (_b = client === null || client === void 0 ? void 0 : client.autoEncrypter) === null || _b === void 0 ? void 0 : _b.cryptSharedLibVersionInfo
70
+ cryptSharedLibVersionInfo: client?.autoEncrypter?.cryptSharedLibVersionInfo
66
71
  });
67
72
  }
68
73
  }
@@ -71,7 +76,7 @@ async function resolveMongodbSrv(uri, logger) {
71
76
  const resolutionDetails = [];
72
77
  if (uri.startsWith('mongodb+srv://')) {
73
78
  try {
74
- resolveDnsHelpers !== null && resolveDnsHelpers !== void 0 ? resolveDnsHelpers : (resolveDnsHelpers = {
79
+ resolveDnsHelpers ?? (resolveDnsHelpers = {
75
80
  resolve: require('resolve-mongodb-srv'),
76
81
  osDns: require('os-dns-native')
77
82
  });
@@ -88,18 +93,16 @@ async function resolveMongodbSrv(uri, logger) {
88
93
  dns: {
89
94
  resolveSrv(hostname, cb) {
90
95
  resolveSrv(hostname, (...args) => {
91
- var _a;
92
96
  resolutionDetails.push({
93
- query: 'SRV', hostname, error: (_a = args[0]) === null || _a === void 0 ? void 0 : _a.message, wasNativelyLookedUp: wasNativelyLookedUp(args[1])
97
+ query: 'SRV', hostname, error: args[0]?.message, wasNativelyLookedUp: wasNativelyLookedUp(args[1])
94
98
  });
95
99
  cb(...args);
96
100
  });
97
101
  },
98
102
  resolveTxt(hostname, cb) {
99
103
  resolveTxt(hostname, (...args) => {
100
- var _a;
101
104
  resolutionDetails.push({
102
- query: 'TXT', hostname, error: (_a = args[0]) === null || _a === void 0 ? void 0 : _a.message, wasNativelyLookedUp: wasNativelyLookedUp(args[1])
105
+ query: 'TXT', hostname, error: args[0]?.message, wasNativelyLookedUp: wasNativelyLookedUp(args[1])
103
106
  });
104
107
  cb(...args);
105
108
  });
@@ -149,8 +152,33 @@ function detectAndLogMissingOptionalDependencies(logger) {
149
152
  logger.emit('devtools-connect:missing-optional-dependency', { name: 'kerberos', error });
150
153
  }
151
154
  }
155
+ class DevtoolsConnectionState {
156
+ constructor(options, logger) {
157
+ this.stateShareClient = null;
158
+ this.stateShareServer = null;
159
+ this.productName = options.productName;
160
+ if (options.parentHandle) {
161
+ this.stateShareClient = new ipc_rpc_state_share_1.StateShareClient(options.parentHandle);
162
+ this.oidcPlugin = this.stateShareClient.oidcPlugin;
163
+ }
164
+ else {
165
+ this.oidcPlugin = (0, oidc_plugin_1.createMongoDBOIDCPlugin)({
166
+ ...options.oidc,
167
+ logger,
168
+ redirectServerRequestHandler: handler_1.oidcServerRequestHandler.bind(null, options)
169
+ });
170
+ }
171
+ }
172
+ async getStateShareServer() {
173
+ this.stateShareServer ?? (this.stateShareServer = await ipc_rpc_state_share_1.StateShareServer.create(this));
174
+ return this.stateShareServer.handle;
175
+ }
176
+ async destroy() {
177
+ await this.stateShareServer?.close();
178
+ }
179
+ }
180
+ exports.DevtoolsConnectionState = DevtoolsConnectionState;
152
181
  async function connectMongoClient(uri, clientOptions, logger, MongoClientClass) {
153
- var _a, _b;
154
182
  detectAndLogMissingOptionalDependencies(logger);
155
183
  if (clientOptions.useSystemCA) {
156
184
  const systemCAOpts = { includeNodeCertificates: true };
@@ -164,29 +192,39 @@ async function connectMongoClient(uri, clientOptions, logger, MongoClientClass)
164
192
  ca: ca.join('\n')
165
193
  };
166
194
  }
167
- delete clientOptions.useSystemCA;
168
- if (clientOptions.autoEncryption !== undefined &&
169
- !clientOptions.autoEncryption.bypassAutoEncryption &&
170
- !clientOptions.autoEncryption.bypassQueryAnalysis) {
171
- const optionsWithoutFLE = { ...clientOptions };
195
+ const oidcFeatureFlag = !!process.env.ENABLE_DEVTOOLS_OIDC;
196
+ const state = clientOptions.parentState ?? new DevtoolsConnectionState(clientOptions, logger);
197
+ const mongoClientOptions = (0, lodash_merge_1.default)({}, clientOptions, oidcFeatureFlag ? state.oidcPlugin.mongoClientOptions : {});
198
+ delete mongoClientOptions.useSystemCA;
199
+ delete mongoClientOptions.productDocsLink;
200
+ delete mongoClientOptions.productName;
201
+ delete mongoClientOptions.oidc;
202
+ delete mongoClientOptions.parentState;
203
+ delete mongoClientOptions.parentHandle;
204
+ if (mongoClientOptions.autoEncryption !== undefined &&
205
+ !mongoClientOptions.autoEncryption.bypassAutoEncryption &&
206
+ !mongoClientOptions.autoEncryption.bypassQueryAnalysis) {
207
+ const optionsWithoutFLE = { ...mongoClientOptions };
172
208
  delete optionsWithoutFLE.autoEncryption;
173
209
  delete optionsWithoutFLE.serverApi;
174
210
  const client = new MongoClientClass(uri, optionsWithoutFLE);
211
+ state.oidcPlugin.logger.on('mongodb-oidc-plugin:auth-failed', () => client.close());
175
212
  await connectWithFailFast(uri, client, logger);
176
213
  const buildInfo = await client.db('admin').admin().command({ buildInfo: 1 });
177
214
  await client.close();
178
- if (!((_a = buildInfo.modules) === null || _a === void 0 ? void 0 : _a.includes('enterprise')) &&
179
- !((_b = buildInfo.gitVersion) === null || _b === void 0 ? void 0 : _b.match(/enterprise/))) {
215
+ if (!(buildInfo.modules?.includes('enterprise')) &&
216
+ !(buildInfo.gitVersion?.match(/enterprise/))) {
180
217
  throw new MongoAutoencryptionUnavailable();
181
218
  }
182
219
  }
183
220
  uri = await resolveMongodbSrv(uri, logger);
184
- const client = new MongoClientClass(uri, clientOptions);
221
+ const client = new MongoClientClass(uri, mongoClientOptions);
222
+ state.oidcPlugin.logger.on('mongodb-oidc-plugin:auth-failed', () => client.close());
185
223
  await connectWithFailFast(uri, client, logger);
186
224
  if (client.autoEncrypter) {
187
225
  client.autoEncrypter[Symbol.for('@@mdb.decorateDecryptionResult')] = true;
188
226
  }
189
- return client;
227
+ return { client, state };
190
228
  }
191
229
  exports.connectMongoClient = connectMongoClient;
192
230
  //# sourceMappingURL=connect.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"connect.js","sourceRoot":"","sources":["../src/connect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connect.js","sourceRoot":"","sources":["../src/connect.ts"],"names":[],"mappings":";;;;;;AACA,iEAAsE;AAStE,yCAAyE;AAEzE,yDAAkE;AAClE,gEAAiC;AACjC,4CAA0D;AAC1D,+DAA2E;AAE3E,MAAa,8BAA+B,SAAQ,KAAK;IACvD;QACE,KAAK,CAAC,0EAA0E,CAAC,CAAC;IACpF,CAAC;CACF;AAJD,wEAIC;AAMD,KAAK,UAAU,mBAAmB,CAAC,GAAW,EAAE,MAAmB,EAAE,MAAyB;IAC5F,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAiB,CAAC;IACnD,IAAI,qBAAqB,GAAyB,IAAI,CAAC;IACvD,MAAM,CAAC,IAAI,CAAC,8CAA8C,EAAE;QAC1D,GAAG;QACH,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM;QAEtC,sBAAsB,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO;QAC1D,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;KAC/D,CAAC,CAAC;IAEH,MAAM,wBAAwB,GAAG,CAAC,EAAE,OAAO,EAAE,YAAY,EAA8B,EAAE,EAAE;QACzF,MAAM,mBAAmB,GAAqC,MAAc,CAAC,QAAQ,EAAE,WAAW,CAAC;QACnG,MAAM,OAAO,GAAG,mBAAmB,EAAE,OAAO,CAAC;QAC7C,MAAM,UAAU,GAAG,IAAA,mDAA4B,EAAC,OAAO,CAAC,CAAC;QACzD,MAAM,aAAa,GAAG,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;QACnD,MAAM,CAAC,IAAI,CAAC,4CAA4C,EAAE;YACxD,YAAY;YACZ,OAAO;YACP,UAAU;YACV,aAAa;SACd,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,EAAE;YAClB,OAAO;SACR;QAED,IAAI,UAAU,IAAI,OAAO,EAAE;YACzB,iBAAiB,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YAC7C,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE;gBACtE,MAAM,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;gBAEnD,qBAAqB,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;aACxC;SACF;IACH,CAAC,CAAC;IAEF,MAAM,0BAA0B,GAAG,CAAC,EAAE,YAAY,EAAiC,EAAE,EAAE;QACrF,MAAM,CAAC,IAAI,CAAC,8CAA8C,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC;QAC9E,iBAAiB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IACzC,CAAC,CAAC;IAEF,MAAM,CAAC,WAAW,CAAC,uBAAuB,EAAE,wBAAwB,CAAC,CAAC;IACtE,MAAM,CAAC,WAAW,CAAC,0BAA0B,EAAE,0BAA0B,CAAC,CAAC;IAC3E,IAAI;QACF,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;KACxB;IAAC,OAAO,GAAY,EAAE;QACrB,IAAI,qBAAqB,KAAK,IAAI,EAAE;YAClC,MAAM,qBAAqB,CAAC;YAC5B,MAAM,iBAAiB,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;SAC/C;QACD,MAAM,GAAG,CAAC;KACX;YAAS;QACR,MAAM,CAAC,cAAc,CAAC,uBAAuB,EAAE,wBAAwB,CAAC,CAAC;QACzE,MAAM,CAAC,cAAc,CAAC,0BAA0B,EAAE,0BAA0B,CAAC,CAAC;QAC9E,MAAM,CAAC,IAAI,CAAC,2CAA2C,EAAE;YACvD,yBAAyB,EAAG,MAAM,EAAE,aAAqC,EAAE,yBAAyB;SACrG,CAAC,CAAC;KACJ;AACH,CAAC;AAED,IAAI,iBAGS,CAAC;AAEd,KAAK,UAAU,iBAAiB,CAAC,GAAW,EAAE,MAAyB;IACrE,MAAM,iBAAiB,GAAiC,EAAE,CAAC;IAC3D,IAAI,GAAG,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE;QACpC,IAAI;YACF,iBAAiB,KAAjB,iBAAiB,GAAK;gBACpB,OAAO,EAAE,OAAO,CAAC,qBAAqB,CAAC;gBACvC,KAAK,EAAE,OAAO,CAAC,eAAe,CAAC;aAChC,EAAC;SACH;QAAC,OAAO,KAAU,EAAE;YACnB,MAAM,CAAC,IAAI,CAAC,oCAAoC,EAAE;gBAChD,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB;aACrD,CAAC,CAAC;SACJ;QACD,IAAI,iBAAiB,KAAK,SAAS,EAAE;YACnC,IAAI;gBACF,MAAM,EACJ,mBAAmB,EACnB,gBAAgB,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,EAC7C,GAAG,iBAAiB,CAAC,KAAK,CAAC;gBAC5B,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,GAAG,EAAE;oBACpD,GAAG,EAAE;wBACH,UAAU,CAAC,QAAgB,EAAE,EAAoC;4BAC/D,UAAU,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAkD,EAAE,EAAE;gCAC7E,iBAAiB,CAAC,IAAI,CAAC;oCACrB,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;iCACnG,CAAC,CAAC;gCAEH,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;4BACd,CAAC,CAAC,CAAC;wBACL,CAAC;wBACD,UAAU,CAAC,QAAgB,EAAE,EAAoC;4BAC/D,UAAU,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAkD,EAAE,EAAE;gCAC7E,iBAAiB,CAAC,IAAI,CAAC;oCACrB,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;iCACnG,CAAC,CAAC;gCAEH,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;4BACd,CAAC,CAAC,CAAC;wBACL,CAAC;qBACF;iBACF,CAAC,CAAC;gBACH,MAAM,CAAC,IAAI,CAAC,wCAAwC,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAC,CAAC;gBACtG,OAAO,QAAQ,CAAC;aACjB;YAAC,OAAO,KAAU,EAAE;gBACnB,MAAM,CAAC,IAAI,CAAC,oCAAoC,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAC;gBAC9G,MAAM,KAAK,CAAC;aACb;SACF;KACF;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,uCAAuC,CAAC,MAAyB;IAExE,IAAI;QACF,OAAO,CAAC,UAAU,CAAC,CAAC;KACrB;IAAC,OAAO,KAAU,EAAE;QACnB,MAAM,CAAC,IAAI,CAAC,8CAA8C,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;KAC1F;IACD,IAAI;QACF,OAAO,CAAC,2BAA2B,CAAC,CAAC;KACtC;IAAC,OAAO,KAAU,EAAE;QACnB,MAAM,CAAC,IAAI,CAAC,8CAA8C,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE,KAAK,EAAE,CAAC,CAAC;KAC3G;IACD,IAAI;QACF,OAAO,CAAC,eAAe,CAAC,CAAC;KAC1B;IAAC,OAAO,KAAU,EAAE;QACnB,MAAM,CAAC,IAAI,CAAC,8CAA8C,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC;KAC/F;IACD,IAAI;QACF,OAAO,CAAC,qBAAqB,CAAC,CAAC;KAChC;IAAC,OAAO,KAAU,EAAE;QACnB,MAAM,CAAC,IAAI,CAAC,8CAA8C,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,CAAC,CAAC;KACrG;IACD,IAAI;QACF,OAAO,CAAC,UAAU,CAAC,CAAC;KACrB;IAAC,OAAO,KAAU,EAAE;QACnB,MAAM,CAAC,IAAI,CAAC,8CAA8C,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;KAC1F;AACH,CAAC;AAYD,MAAa,uBAAuB;IAOlC,YAAY,OAAkG,EAAE,MAAyB;QAHjI,qBAAgB,GAA4B,IAAI,CAAC;QACjD,qBAAgB,GAA4B,IAAI,CAAC;QAGvD,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACvC,IAAI,OAAO,CAAC,YAAY,EAAE;YACxB,IAAI,CAAC,gBAAgB,GAAG,IAAI,sCAAgB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YACnE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC;SACpD;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,IAAA,qCAAuB,EAAC;gBACxC,GAAG,OAAO,CAAC,IAAI;gBACf,MAAM;gBACN,4BAA4B,EAAE,kCAAwB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC;aAC3E,CAAC,CAAC;SACJ;IACH,CAAC;IAED,KAAK,CAAC,mBAAmB;QACvB,IAAI,CAAC,gBAAgB,KAArB,IAAI,CAAC,gBAAgB,GAAK,MAAM,sCAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAC;QAC9D,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,IAAI,CAAC,gBAAgB,EAAE,KAAK,EAAE,CAAC;IACvC,CAAC;CACF;AA7BD,0DA6BC;AAyCM,KAAK,UAAU,kBAAkB,CACtC,GAAW,EACX,aAAqC,EACrC,MAAyB,EACzB,gBAAoC;IAIpC,uCAAuC,CAAC,MAAM,CAAC,CAAC;IAChD,IAAI,aAAa,CAAC,WAAW,EAAE;QAC7B,MAAM,YAAY,GAAoB,EAAE,uBAAuB,EAAE,IAAI,EAAE,CAAC;QACxE,MAAM,EAAE,GAAG,MAAM,IAAA,4BAAgB,EAAC,YAAY,CAAC,CAAC;QAChD,MAAM,CAAC,IAAI,CAAC,iCAAiC,EAAE;YAC7C,OAAO,EAAE,EAAE,CAAC,MAAM;YAClB,kBAAkB,EAAE,YAAY,CAAC,kBAAkB;SACpD,CAAC,CAAC;QACH,aAAa,GAAG;YACd,GAAG,aAAa;YAChB,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;SAClB,CAAC;KACH;IAGD,MAAM,eAAe,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;IAC3D,MAAM,KAAK,GAAG,aAAa,CAAC,WAAW,IAAI,IAAI,uBAAuB,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAC9F,MAAM,kBAAkB,GACtB,IAAA,sBAAK,EAAC,EAAE,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACvF,OAAO,kBAAkB,CAAC,WAAW,CAAC;IACtC,OAAO,kBAAkB,CAAC,eAAe,CAAC;IAC1C,OAAO,kBAAkB,CAAC,WAAW,CAAC;IACtC,OAAO,kBAAkB,CAAC,IAAI,CAAC;IAC/B,OAAO,kBAAkB,CAAC,WAAW,CAAC;IACtC,OAAO,kBAAkB,CAAC,YAAY,CAAC;IAEvC,IAAI,kBAAkB,CAAC,cAAc,KAAK,SAAS;QACjD,CAAC,kBAAkB,CAAC,cAAc,CAAC,oBAAoB;QACvD,CAAC,kBAAkB,CAAC,cAAc,CAAC,mBAAmB,EAAE;QAExD,MAAM,iBAAiB,GAAG,EAAE,GAAG,kBAAkB,EAAE,CAAC;QACpD,OAAO,iBAAiB,CAAC,cAAc,CAAC;QACxC,OAAO,iBAAiB,CAAC,SAAS,CAAC;QACnC,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;QAC5D,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QACpF,MAAM,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/C,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;QAC7E,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACrB,IACE,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;YAC5C,CAAC,CAAC,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,EAC5C;YACA,MAAM,IAAI,8BAA8B,EAAE,CAAC;SAC5C;KACF;IACD,GAAG,GAAG,MAAM,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;IAC7D,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IACpF,MAAM,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/C,IAAI,MAAM,CAAC,aAAa,EAAE;QAEvB,MAAM,CAAC,aAAqB,CAAC,MAAM,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC,GAAG,IAAI,CAAC;KACpF;IACD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AAC3B,CAAC;AA9DD,gDA8DC"}
package/lib/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export * from './types';
2
- export { connectMongoClient, DevtoolsConnectOptions } from './connect';
2
+ export { connectMongoClient } from './connect';
3
+ export type { DevtoolsConnectOptions, DevtoolsConnectionState } from './connect';
3
4
  export { hookLogger } from './log-hook';
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,qCAAuE;AAA9D,6GAAA,kBAAkB,OAAA;AAC3B,uCAAwC;AAA/B,sGAAA,UAAU,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,qCAA+C;AAAtC,6GAAA,kBAAkB,OAAA;AAE3B,uCAAwC;AAA/B,sGAAA,UAAU,OAAA"}
@@ -0,0 +1,38 @@
1
+ /// <reference types="node" />
2
+ import type { MongoDBOIDCPlugin } from '@mongodb-js/oidc-plugin';
3
+ import type { DevtoolsConnectionState } from './connect';
4
+ import { Readable } from 'stream';
5
+ export declare function readSignedStream(input: Readable, signature: string | string[] | undefined, hmacKey: Uint8Array): Promise<string>;
6
+ export declare function sign(payload: Uint8Array | string, hmacKey: Uint8Array): string;
7
+ export declare abstract class RpcServer {
8
+ private hmacKey;
9
+ private server;
10
+ private serverPathPrefix;
11
+ private cleanupCallback?;
12
+ static ctr: number;
13
+ protected constructor(serverPathPrefix: string);
14
+ get handle(): string;
15
+ protected _init(): Promise<void>;
16
+ private _serverListen;
17
+ private _handleRequest;
18
+ close(): Promise<void>;
19
+ protected abstract handleRpc(content: Record<string, unknown>): Promise<Record<string, unknown>>;
20
+ }
21
+ export declare class RpcClient {
22
+ private hmacKey;
23
+ private serverAddress;
24
+ constructor(handle: string);
25
+ makeRpcCall(reqData: Record<string, unknown>): Promise<Record<string, unknown>>;
26
+ }
27
+ export declare class StateShareServer extends RpcServer {
28
+ private state;
29
+ private abortContexts;
30
+ private constructor();
31
+ static create(state: DevtoolsConnectionState): Promise<StateShareServer>;
32
+ protected handleRpc(content: any): Promise<Record<string, unknown>>;
33
+ }
34
+ export declare class StateShareClient extends RpcClient {
35
+ oidcPlugin: MongoDBOIDCPlugin;
36
+ constructor(handle: string);
37
+ private _oidcCallback;
38
+ }
@@ -0,0 +1,213 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.StateShareClient = exports.StateShareServer = exports.RpcClient = exports.RpcServer = exports.sign = exports.readSignedStream = void 0;
7
+ const http_1 = require("http");
8
+ const util_1 = require("util");
9
+ const crypto_1 = __importDefault(require("crypto"));
10
+ const os_1 = __importDefault(require("os"));
11
+ const events_1 = require("events");
12
+ const fs_1 = require("fs");
13
+ const stream_1 = require("stream");
14
+ const path_1 = require("path");
15
+ async function readSignedStream(input, signature, hmacKey) {
16
+ if (!signature)
17
+ throw new Error('Missing signature');
18
+ if (Array.isArray(signature))
19
+ throw new Error('Multiple signatures');
20
+ const verify = crypto_1.default.createHmac('sha256', hmacKey);
21
+ const inputFromUtf8 = input.pipe(new stream_1.PassThrough()).setEncoding('utf8');
22
+ input.pipe(verify);
23
+ const verifyFinish = (0, events_1.once)(verify, 'finish');
24
+ let body = '';
25
+ for await (const chunk of inputFromUtf8) {
26
+ body += chunk;
27
+ }
28
+ await verifyFinish;
29
+ if (verify.read().toString('base64') !== signature) {
30
+ throw new Error('Signature mismatch');
31
+ }
32
+ return body;
33
+ }
34
+ exports.readSignedStream = readSignedStream;
35
+ function sign(payload, hmacKey) {
36
+ return crypto_1.default.createHmac('sha256', hmacKey).update(payload).digest('base64');
37
+ }
38
+ exports.sign = sign;
39
+ class RpcServer {
40
+ constructor(serverPathPrefix) {
41
+ this.serverPathPrefix = serverPathPrefix.replace(/[^a-zA-Z0-9]/g, '');
42
+ this.hmacKey = undefined;
43
+ this.server = undefined;
44
+ }
45
+ get handle() {
46
+ return JSON.stringify([this.hmacKey.toString('base64'), this.server.address()]);
47
+ }
48
+ async _init() {
49
+ this.server = (0, http_1.createServer)((req, res) => this._handleRequest(req, res));
50
+ this.hmacKey = (await (0, util_1.promisify)(crypto_1.default.randomBytes)(16));
51
+ await this._serverListen();
52
+ }
53
+ async _serverListen() {
54
+ if (this.cleanupCallback) {
55
+ throw new Error('RPC server already listening');
56
+ }
57
+ let path;
58
+ const name = `${this.serverPathPrefix}_${process.pid}_ipc_${RpcServer.ctr++}_${Math.floor(Math.random() * 10000)}`;
59
+ if (process.platform === 'win32') {
60
+ path = `\\\\.\\pipe\\${name}`;
61
+ }
62
+ else {
63
+ const tmpdir = process.env.XDG_RUNTIME_DIR ?? os_1.default.tmpdir();
64
+ path = (0, path_1.resolve)(`${tmpdir}/${name}.sock`);
65
+ }
66
+ this.server.listen({ path, exclusive: true });
67
+ await (0, events_1.once)(this.server, 'listening');
68
+ await fs_1.promises.chmod(path, 0o600);
69
+ this.cleanupCallback = () => {
70
+ if (process.platform !== 'win32') {
71
+ try {
72
+ (0, fs_1.rmSync)(path);
73
+ }
74
+ catch { }
75
+ }
76
+ };
77
+ process.on('exit', this.cleanupCallback);
78
+ }
79
+ async _handleRequest(req, res) {
80
+ let response;
81
+ try {
82
+ const content = JSON.parse(await readSignedStream(req, req.headers['x-signature'], this.hmacKey));
83
+ response = { status: 200, ...await this.handleRpc(content) };
84
+ }
85
+ catch (err) {
86
+ response = { status: 500, error: err && typeof err === 'object' && 'message' in err ? err.message : String(err) };
87
+ }
88
+ res.statusCode = response.status;
89
+ const payload = new TextEncoder().encode(JSON.stringify(response));
90
+ res.setHeader('content-type', 'application/json');
91
+ res.setHeader('content-length', payload.length);
92
+ res.setHeader('x-signature', sign(payload, this.hmacKey));
93
+ res.end(payload);
94
+ }
95
+ async close() {
96
+ this.server.close();
97
+ await (0, events_1.once)(this.server, 'close');
98
+ this.cleanupCallback?.();
99
+ this.cleanupCallback = undefined;
100
+ }
101
+ }
102
+ exports.RpcServer = RpcServer;
103
+ RpcServer.ctr = 0;
104
+ class RpcClient {
105
+ constructor(handle) {
106
+ const [hmacKeyBase64, serverAddr] = JSON.parse(handle);
107
+ this.serverAddress = serverAddr;
108
+ this.hmacKey = Buffer.from(hmacKeyBase64, 'base64');
109
+ }
110
+ async makeRpcCall(reqData) {
111
+ const payload = new TextEncoder().encode(JSON.stringify(reqData));
112
+ const req = (0, http_1.request)({
113
+ socketPath: this.serverAddress,
114
+ method: 'POST',
115
+ headers: {
116
+ 'content-type': 'application/json',
117
+ 'content-length': payload.length,
118
+ 'x-signature': sign(payload, this.hmacKey)
119
+ }
120
+ });
121
+ req.end(payload);
122
+ const [res] = await (0, events_1.once)(req, 'response');
123
+ const content = JSON.parse(await readSignedStream(res, res.headers['x-signature'], this.hmacKey));
124
+ if (res.statusCode !== 200 || content.status !== 200) {
125
+ throw new Error(String(content.error ?? `${res.statusCode} ${res.statusMessage}`));
126
+ }
127
+ return content;
128
+ }
129
+ }
130
+ exports.RpcClient = RpcClient;
131
+ class StateShareServer extends RpcServer {
132
+ constructor(state) {
133
+ super(state.productName);
134
+ this.abortContexts = new Map();
135
+ this.state = state;
136
+ }
137
+ static async create(state) {
138
+ const result = new this(state);
139
+ await result._init();
140
+ return result;
141
+ }
142
+ async handleRpc(content) {
143
+ const oidcCallbacks = this.state.oidcPlugin.mongoClientOptions.authMechanismProperties;
144
+ let oidcMethod;
145
+ switch (content.method) {
146
+ case 'oidc:_abort':
147
+ this.abortContexts.get(content.timeoutContextId)?.abort();
148
+ return {};
149
+ case 'oidc:REQUEST_TOKEN_CALLBACK':
150
+ oidcMethod = 'REQUEST_TOKEN_CALLBACK';
151
+ case 'oidc:REFRESH_TOKEN_CALLBACK': {
152
+ oidcMethod ?? (oidcMethod = 'REFRESH_TOKEN_CALLBACK');
153
+ const abortController = new AbortController();
154
+ this.abortContexts.set(content.timeoutContextId, abortController);
155
+ try {
156
+ const result = await oidcCallbacks[oidcMethod](content.info, {
157
+ ...content.context,
158
+ timeoutContext: abortController.signal
159
+ });
160
+ return { result };
161
+ }
162
+ finally {
163
+ this.abortContexts.delete(content.timeoutContextId);
164
+ }
165
+ }
166
+ default:
167
+ throw new Error(`Unknown method ${JSON.stringify(content.method)}`);
168
+ }
169
+ }
170
+ }
171
+ exports.StateShareServer = StateShareServer;
172
+ class StateShareClient extends RpcClient {
173
+ constructor(handle) {
174
+ super(handle);
175
+ this.oidcPlugin = {
176
+ serialize() {
177
+ throw new Error('serialize() not supported in devtools-connect state-share clients');
178
+ },
179
+ logger: new events_1.EventEmitter(),
180
+ mongoClientOptions: {
181
+ authMechanismProperties: {
182
+ REQUEST_TOKEN_CALLBACK: this._oidcCallback.bind(this, 'oidc:REQUEST_TOKEN_CALLBACK'),
183
+ REFRESH_TOKEN_CALLBACK: this._oidcCallback.bind(this, 'oidc:REFRESH_TOKEN_CALLBACK')
184
+ }
185
+ }
186
+ };
187
+ }
188
+ async _oidcCallback(method, info, _context) {
189
+ const timeoutContextId = (await (0, util_1.promisify)(crypto_1.default.randomBytes)(16)).toString('base64');
190
+ const { timeoutContext, ...context } = _context;
191
+ const abort = () => {
192
+ this.makeRpcCall({
193
+ method: 'oidc:_abort',
194
+ timeoutContextId
195
+ });
196
+ };
197
+ timeoutContext?.addEventListener('abort', abort);
198
+ try {
199
+ const { result } = (await this.makeRpcCall({
200
+ method,
201
+ timeoutContextId,
202
+ context,
203
+ info
204
+ }));
205
+ return result;
206
+ }
207
+ finally {
208
+ timeoutContext?.removeEventListener('abort', abort);
209
+ }
210
+ }
211
+ }
212
+ exports.StateShareClient = StateShareClient;
213
+ //# sourceMappingURL=ipc-rpc-state-share.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ipc-rpc-state-share.js","sourceRoot":"","sources":["../src/ipc-rpc-state-share.ts"],"names":[],"mappings":"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"}
package/lib/log-hook.d.ts CHANGED
@@ -3,7 +3,7 @@ interface MongoLogWriter {
3
3
  info(c: string, id: unknown, ctx: string, msg: string, attr?: any): void;
4
4
  warn(c: string, id: unknown, ctx: string, msg: string, attr?: any): void;
5
5
  error(c: string, id: unknown, ctx: string, msg: string, attr?: any): void;
6
- mongoLogId(id: number): unknown;
6
+ mongoLogId(this: void, id: number): unknown;
7
7
  }
8
8
  export declare function hookLogger(emitter: ConnectLogEmitter, log: MongoLogWriter, contextPrefix: string, redactURICredentials: (uri: string) => string): void;
9
9
  export {};
package/lib/log-hook.js CHANGED
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.hookLogger = void 0;
4
+ const oidc_plugin_1 = require("@mongodb-js/oidc-plugin");
4
5
  function hookLogger(emitter, log, contextPrefix, redactURICredentials) {
6
+ (0, oidc_plugin_1.hookLoggerToMongoLogWriter)(emitter, log, contextPrefix);
5
7
  const { mongoLogId } = log;
6
8
  emitter.on('devtools-connect:connect-attempt-initialized', function (ev) {
7
9
  log.info('DEVTOOLS-CONNECT', mongoLogId(1000000042), `${contextPrefix}-connect`, 'Initiating connection attempt', {
@@ -10,10 +12,9 @@ function hookLogger(emitter, log, contextPrefix, redactURICredentials) {
10
12
  });
11
13
  });
12
14
  emitter.on('devtools-connect:connect-heartbeat-failure', function (ev) {
13
- var _a;
14
15
  log.warn('DEVTOOLS-CONNECT', mongoLogId(1000000034), `${contextPrefix}-connect`, 'Server heartbeat failure', {
15
16
  ...ev,
16
- failure: (_a = ev.failure) === null || _a === void 0 ? void 0 : _a.message
17
+ failure: ev.failure?.message
17
18
  });
18
19
  });
19
20
  emitter.on('devtools-connect:connect-heartbeat-succeeded', function (ev) {
@@ -35,10 +36,9 @@ function hookLogger(emitter, log, contextPrefix, redactURICredentials) {
35
36
  log.info('DEVTOOLS-CONNECT', mongoLogId(1000000037), `${contextPrefix}-connect`, 'Connection attempt finished', attr);
36
37
  });
37
38
  emitter.on('devtools-connect:resolve-srv-error', function (ev) {
38
- var _a;
39
39
  log.error('DEVTOOLS-CONNECT', mongoLogId(1000000038), `${contextPrefix}-connect`, 'Resolving SRV record failed', {
40
40
  from: redactURICredentials(ev.from),
41
- error: (_a = ev.error) === null || _a === void 0 ? void 0 : _a.message,
41
+ error: ev.error?.message,
42
42
  duringLoad: ev.duringLoad,
43
43
  resolutionDetails: ev.resolutionDetails
44
44
  });
@@ -57,10 +57,9 @@ function hookLogger(emitter, log, contextPrefix, redactURICredentials) {
57
57
  });
58
58
  });
59
59
  emitter.on('devtools-connect:used-system-ca', function (ev) {
60
- var _a;
61
60
  log.info('DEVTOOLS-CONNECT', mongoLogId(1000000049), `${contextPrefix}-connect`, 'Loaded system CA list', {
62
61
  caCount: ev.caCount,
63
- asyncFallbackError: (_a = ev.asyncFallbackError) === null || _a === void 0 ? void 0 : _a.message
62
+ asyncFallbackError: ev.asyncFallbackError?.message
64
63
  });
65
64
  });
66
65
  }
@@ -1 +1 @@
1
- {"version":3,"file":"log-hook.js","sourceRoot":"","sources":["../src/log-hook.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"log-hook.js","sourceRoot":"","sources":["../src/log-hook.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { RedirectServerRequestInfo } from '@mongodb-js/oidc-plugin';
2
+ import type { DevtoolsConnectOptions } from '../connect';
3
+ export declare function oidcServerRequestHandler(options: Pick<DevtoolsConnectOptions, 'productDocsLink' | 'productName'>, info: RedirectServerRequestInfo): void;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.oidcServerRequestHandler = void 0;
4
+ const static_pages_1 = require("./static/static-pages");
5
+ function oidcServerRequestHandler(options, info) {
6
+ const { productDocsLink, productName } = options;
7
+ const { res, result, status } = info;
8
+ res.statusCode = status;
9
+ res.setHeader('Content-Security-Policy', "default-src 'self'; style-src 'unsafe-inline'");
10
+ res.setHeader('Content-Type', 'text/html; charset=utf-8');
11
+ switch (result) {
12
+ case 'accepted':
13
+ res.end((0, static_pages_1.OIDCAcceptedPage)({ productDocsLink, productName }));
14
+ break;
15
+ case 'rejected':
16
+ res.end((0, static_pages_1.OIDCErrorPage)({ productDocsLink, productName, ...info }));
17
+ break;
18
+ default:
19
+ res.end((0, static_pages_1.OIDCNotFoundPage)({ productDocsLink, productName }));
20
+ break;
21
+ }
22
+ }
23
+ exports.oidcServerRequestHandler = oidcServerRequestHandler;
24
+ //# sourceMappingURL=handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../src/oidc/handler.ts"],"names":[],"mappings":";;;AAEA,wDAA0F;AAE1F,SAAgB,wBAAwB,CACtC,OAAwE,EACxE,IAA+B;IAE/B,MAAM,EAAE,eAAe,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IACjD,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACrC,GAAG,CAAC,UAAU,GAAG,MAAM,CAAC;IAIxB,GAAG,CAAC,SAAS,CAAC,yBAAyB,EAAE,+CAA+C,CAAC,CAAC;IAC1F,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,0BAA0B,CAAC,CAAC;IAE1D,QAAQ,MAAM,EAAE;QACd,KAAK,UAAU;YACb,GAAG,CAAC,GAAG,CAAC,IAAA,+BAAgB,EAAC,EAAE,eAAe,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;YAC5D,MAAM;QACR,KAAK,UAAU;YACb,GAAG,CAAC,GAAG,CAAC,IAAA,4BAAa,EAAC,EAAE,eAAe,EAAE,WAAW,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;YAClE,MAAM;QACR;YACE,GAAG,CAAC,GAAG,CAAC,IAAA,+BAAgB,EAAC,EAAE,eAAe,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;YAC5D,MAAM;KACT;AACH,CAAC;AAxBD,4DAwBC"}
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ export declare function generateStaticPagesModule<PropNames extends string>(components: [React.FunctionComponent<Partial<Record<PropNames, string>>> & {
3
+ name: string;
4
+ }, string[]][]): string;
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.generateStaticPagesModule = void 0;
7
+ const server_1 = require("react-dom/server");
8
+ const emotion_1 = require("@leafygreen-ui/emotion");
9
+ const pages_source_1 = require("./pages-source");
10
+ const react_1 = __importDefault(require("react"));
11
+ const crypto_1 = require("crypto");
12
+ const zlib_1 = require("zlib");
13
+ function* allSubsets(array) {
14
+ if (array.length === 0) {
15
+ yield [];
16
+ return;
17
+ }
18
+ const first = array[0];
19
+ for (const slicedSubset of allSubsets(array.slice(1))) {
20
+ yield [first, ...slicedSubset];
21
+ yield slicedSubset;
22
+ }
23
+ }
24
+ function placeholder(prop) {
25
+ return `{{prop:${prop}}}`;
26
+ }
27
+ const S = JSON.stringify;
28
+ function generateStaticPage(Component, props, markupTable) {
29
+ let result = `module.exports[${S(Component.name)}] = function(props) {
30
+ const actualProps = JSON.stringify(
31
+ Object.keys(props)
32
+ .filter(prop => ${S(props)}.includes(prop) && props[prop] != null).sort());`;
33
+ for (const availableProps of allSubsets(props)) {
34
+ const propsObject = {};
35
+ const replacers = [];
36
+ for (const prop of availableProps) {
37
+ propsObject[prop] = placeholder(prop);
38
+ replacers.push(`.replaceAll(${S(placeholder(prop))}, escapeHTML(props[${S(prop)}]))`);
39
+ }
40
+ const markup = (0, emotion_1.renderStylesToString)((0, server_1.renderToStaticMarkup)(react_1.default.createElement(Component, propsObject)));
41
+ const markupHash = (0, crypto_1.createHash)('sha256').update(markup).digest('hex');
42
+ markupTable[markupHash] = markup;
43
+ result += `if (actualProps === ${S(S(availableProps.sort()))}) {
44
+ return (getMarkup(${S(markupHash)})${replacers.join('')});
45
+ }`;
46
+ }
47
+ result += '}\n';
48
+ return result;
49
+ }
50
+ function generateStaticPagesModule(components) {
51
+ let result = `
52
+ 'use strict';
53
+ function escapeHTML(str) {
54
+ return str.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#039;");
55
+ }
56
+ `;
57
+ const markupTable = {};
58
+ for (const component of components) {
59
+ result += generateStaticPage(...component, markupTable);
60
+ }
61
+ const compressedMarkupTable = (0, zlib_1.brotliCompressSync)(S(markupTable), {
62
+ params: {
63
+ [zlib_1.constants.BROTLI_PARAM_MODE]: zlib_1.constants.BROTLI_MODE_TEXT,
64
+ [zlib_1.constants.BROTLI_PARAM_QUALITY]: zlib_1.constants.BROTLI_MAX_QUALITY
65
+ }
66
+ });
67
+ result += `
68
+ const markupTableSrc = ${S(compressedMarkupTable.toString('base64'))};
69
+ let markupTable;
70
+ function getMarkup(hash) {
71
+ if (markupTable === undefined) {
72
+ markupTable = JSON.parse(
73
+ require('zlib').brotliDecompressSync(
74
+ Buffer.from(markupTableSrc, 'base64')));
75
+ }
76
+ return markupTable[hash];
77
+ }
78
+ `;
79
+ return result;
80
+ }
81
+ exports.generateStaticPagesModule = generateStaticPagesModule;
82
+ if (require.main === module) {
83
+ console.log(generateStaticPagesModule([
84
+ [pages_source_1.OIDCErrorPage, ['error', 'errorDescription', 'errorURI', 'productDocsLink', 'productName']],
85
+ [pages_source_1.OIDCAcceptedPage, ['productDocsLink', 'productName']],
86
+ [pages_source_1.OIDCNotFoundPage, ['productDocsLink', 'productName']]
87
+ ]));
88
+ }
89
+ //# sourceMappingURL=create-static-pages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-static-pages.js","sourceRoot":"","sources":["../../../src/oidc/static/create-static-pages.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ const react_1 = __importDefault(require("react"));
30
+ const create_static_pages_1 = require("./create-static-pages");
31
+ const compass_components_1 = require("@mongodb-js/compass-components");
32
+ const vm_1 = require("vm");
33
+ const zlib_1 = __importDefault(require("zlib"));
34
+ const ts_sinon_1 = __importDefault(require("ts-sinon"));
35
+ const chai_1 = __importStar(require("chai"));
36
+ const sinon_chai_1 = __importDefault(require("sinon-chai"));
37
+ chai_1.default.use(sinon_chai_1.default);
38
+ describe('generateStaticPagesModule', function () {
39
+ let exports;
40
+ beforeEach(function () {
41
+ function Component({ prop1, prop2 }) {
42
+ return (react_1.default.createElement("div", null,
43
+ react_1.default.createElement(compass_components_1.H1, null, prop1 || 'default'),
44
+ prop2 && react_1.default.createElement("p", { "data-attr": prop2 }, prop2)));
45
+ }
46
+ const result = (0, create_static_pages_1.generateStaticPagesModule)([[Component, ['prop1', 'prop2']]]);
47
+ exports = {};
48
+ const require = ts_sinon_1.default.stub();
49
+ require.throws();
50
+ require.withArgs('zlib').returns(zlib_1.default);
51
+ (0, vm_1.runInNewContext)(result, {
52
+ module: { exports }, require, Buffer
53
+ });
54
+ });
55
+ it('includes selected props', function () {
56
+ (0, chai_1.expect)(exports.Component({ prop1: 'prop1value' })).to.match(/<h1[^>]+>prop1value<\/h1>/);
57
+ (0, chai_1.expect)(exports.Component({ prop1: 'prop1value' })).not.to.include('prop2');
58
+ (0, chai_1.expect)(exports.Component({ prop1: 'prop1value' })).not.to.include('data-attr');
59
+ (0, chai_1.expect)(exports.Component({ prop2: 'prop2value' })).to.match(/<h1[^>]+>default<\/h1>/);
60
+ (0, chai_1.expect)(exports.Component({ prop2: 'prop2value' })).to.match(/<p[^>]+>prop2value<\/p>/);
61
+ (0, chai_1.expect)(exports.Component({ prop2: 'prop2value' })).to.include('data-attr="prop2value"');
62
+ });
63
+ it('properly escapes props', function () {
64
+ (0, chai_1.expect)(exports.Component({ prop2: 'prop2<&"\'>value' })).to.include('data-attr="prop2&lt;&amp;&quot;&#039;&gt;value"');
65
+ (0, chai_1.expect)(exports.Component({ prop2: 'prop2<&"\'>value' })).to.include('>prop2&lt;&amp;&quot;&#039;&gt;value</p>');
66
+ });
67
+ it('includes relevant style information', function () {
68
+ (0, chai_1.expect)(exports.Component({ prop1: 'prop1value' })).to.include('<style');
69
+ });
70
+ });
71
+ //# sourceMappingURL=create-static-pages.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-static-pages.spec.js","sourceRoot":"","sources":["../../../src/oidc/static/create-static-pages.spec.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /// <reference types="react" />
2
+ export interface OIDCPageBaseProps {
3
+ productDocsLink?: string;
4
+ productName?: string;
5
+ }
6
+ export declare function OIDCAcceptedPage(baseProps: OIDCPageBaseProps): JSX.Element;
7
+ export declare function OIDCNotFoundPage(baseProps: OIDCPageBaseProps): JSX.Element;
8
+ export declare function OIDCErrorPage({ error, errorDescription, errorURI, ...baseProps }: {
9
+ error?: string;
10
+ errorDescription?: string;
11
+ errorURI?: string;
12
+ } & OIDCPageBaseProps): JSX.Element;
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.OIDCErrorPage = exports.OIDCNotFoundPage = exports.OIDCAcceptedPage = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const compass_components_1 = require("@mongodb-js/compass-components");
9
+ const bodyStyles = (0, compass_components_1.css)({
10
+ position: 'absolute',
11
+ margin: 0,
12
+ width: '100%',
13
+ height: '100%',
14
+ display: 'flex',
15
+ flexDirection: 'row',
16
+ alignItems: 'center'
17
+ });
18
+ const emptySidebarStyles = (0, compass_components_1.css)({
19
+ flex: '0 0 15%',
20
+ height: '100%',
21
+ backgroundColor: compass_components_1.palette.green.dark2
22
+ });
23
+ const mainViewStyles = (0, compass_components_1.css)({
24
+ flex: '0 0 85%',
25
+ height: '100%',
26
+ backgroundColor: compass_components_1.palette.gray.light3
27
+ });
28
+ const mainContainerStyles = (0, compass_components_1.css)({
29
+ padding: compass_components_1.spacing[6]
30
+ });
31
+ const mainContentStyles = (0, compass_components_1.css)({
32
+ textAlign: 'center',
33
+ padding: compass_components_1.spacing[7],
34
+ marginTop: compass_components_1.spacing[5]
35
+ });
36
+ const successIconStyles = (0, compass_components_1.css)({
37
+ color: compass_components_1.palette.green.dark2,
38
+ marginBottom: compass_components_1.spacing[3] + compass_components_1.spacing[1]
39
+ });
40
+ const failureIconStyles = (0, compass_components_1.css)({
41
+ color: compass_components_1.palette.red.base,
42
+ marginBottom: compass_components_1.spacing[3] + compass_components_1.spacing[1]
43
+ });
44
+ function DocsLink({ productDocsLink, productName }) {
45
+ return (productDocsLink ? react_1.default.createElement("p", null,
46
+ react_1.default.createElement(compass_components_1.Link, { arrowAppearance: "persist", href: productDocsLink },
47
+ productName,
48
+ " Documentation")) : react_1.default.createElement(react_1.default.Fragment, null));
49
+ }
50
+ function PageContainer({ title, children }) {
51
+ return (react_1.default.createElement("html", null,
52
+ react_1.default.createElement("head", null,
53
+ react_1.default.createElement("title", null, title)),
54
+ react_1.default.createElement("body", { className: bodyStyles },
55
+ react_1.default.createElement("div", { className: emptySidebarStyles }),
56
+ react_1.default.createElement("div", { className: mainViewStyles },
57
+ react_1.default.createElement("div", { className: mainContainerStyles },
58
+ react_1.default.createElement(compass_components_1.MongoDBLogo, null),
59
+ react_1.default.createElement(compass_components_1.KeylineCard, { className: mainContentStyles }, children))))));
60
+ }
61
+ function OIDCAcceptedPage(baseProps) {
62
+ return (react_1.default.createElement(PageContainer, { title: "Login Successful" },
63
+ react_1.default.createElement(compass_components_1.Icon, { glyph: 'CheckmarkWithCircle', size: 40, className: (0, compass_components_1.cx)(successIconStyles) }),
64
+ react_1.default.createElement(compass_components_1.H3, null, "Login Successful"),
65
+ react_1.default.createElement(compass_components_1.Description, null, "You can close this window now."),
66
+ react_1.default.createElement(DocsLink, { ...baseProps })));
67
+ }
68
+ exports.OIDCAcceptedPage = OIDCAcceptedPage;
69
+ function OIDCNotFoundPage(baseProps) {
70
+ return (react_1.default.createElement(PageContainer, { title: "Page Not Found" },
71
+ react_1.default.createElement(compass_components_1.Icon, { glyph: 'XWithCircle', size: 40, className: (0, compass_components_1.cx)(failureIconStyles) }),
72
+ react_1.default.createElement(compass_components_1.H3, null, "Page Not Found"),
73
+ react_1.default.createElement(compass_components_1.Description, null, "This page is not available."),
74
+ react_1.default.createElement(DocsLink, { ...baseProps })));
75
+ }
76
+ exports.OIDCNotFoundPage = OIDCNotFoundPage;
77
+ function OIDCErrorPage({ error, errorDescription, errorURI, ...baseProps }) {
78
+ return (react_1.default.createElement(PageContainer, { title: "Authentication Failed" },
79
+ react_1.default.createElement(compass_components_1.Icon, { glyph: 'XWithCircle', size: 40, className: (0, compass_components_1.cx)(failureIconStyles) }),
80
+ react_1.default.createElement(compass_components_1.H3, null, "Authentication Failed"),
81
+ react_1.default.createElement(compass_components_1.Body, null,
82
+ react_1.default.createElement(compass_components_1.Description, null,
83
+ baseProps.productName,
84
+ " could not authenticate to the MongoDB server."),
85
+ error && react_1.default.createElement(compass_components_1.Body, null,
86
+ "Error Code: ",
87
+ react_1.default.createElement(compass_components_1.InlineCode, null, error)),
88
+ (errorDescription || errorURI) && react_1.default.createElement(compass_components_1.Description, null,
89
+ errorDescription,
90
+ errorURI && react_1.default.createElement("p", null,
91
+ react_1.default.createElement(compass_components_1.Link, { href: errorURI }, "Additional information may be available here.")))),
92
+ react_1.default.createElement(DocsLink, { ...baseProps })));
93
+ }
94
+ exports.OIDCErrorPage = OIDCErrorPage;
95
+ //# sourceMappingURL=pages-source.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pages-source.js","sourceRoot":"","sources":["../../../src/oidc/static/pages-source.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,109 @@
1
+
2
+ 'use strict';
3
+ function escapeHTML(str) {
4
+ return str.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#039;");
5
+ }
6
+ module.exports["OIDCErrorPage"] = function(props) {
7
+ const actualProps = JSON.stringify(
8
+ Object.keys(props)
9
+ .filter(prop => ["error","errorDescription","errorURI","productDocsLink","productName"].includes(prop) && props[prop] != null).sort());if (actualProps === "[\"error\",\"errorDescription\",\"errorURI\",\"productDocsLink\",\"productName\"]") {
10
+ return (getMarkup("e7657fd2e6cae15bceda5c20c54782888a5a75a169b9d6624f0cedee22177fa7").replaceAll("{{prop:error}}", escapeHTML(props["error"])).replaceAll("{{prop:errorDescription}}", escapeHTML(props["errorDescription"])).replaceAll("{{prop:errorURI}}", escapeHTML(props["errorURI"])).replaceAll("{{prop:productDocsLink}}", escapeHTML(props["productDocsLink"])).replaceAll("{{prop:productName}}", escapeHTML(props["productName"])));
11
+ }if (actualProps === "[\"errorDescription\",\"errorURI\",\"productDocsLink\",\"productName\"]") {
12
+ return (getMarkup("39ec87827ec006de52c725ef776c2a0bb8fbb8254c805f7de2f2aec46bc9f9ce").replaceAll("{{prop:errorDescription}}", escapeHTML(props["errorDescription"])).replaceAll("{{prop:errorURI}}", escapeHTML(props["errorURI"])).replaceAll("{{prop:productDocsLink}}", escapeHTML(props["productDocsLink"])).replaceAll("{{prop:productName}}", escapeHTML(props["productName"])));
13
+ }if (actualProps === "[\"error\",\"errorURI\",\"productDocsLink\",\"productName\"]") {
14
+ return (getMarkup("5b79515e585afa35f22817c230a1ce8d4f0e157c22c7976a05a2808f71800c93").replaceAll("{{prop:error}}", escapeHTML(props["error"])).replaceAll("{{prop:errorURI}}", escapeHTML(props["errorURI"])).replaceAll("{{prop:productDocsLink}}", escapeHTML(props["productDocsLink"])).replaceAll("{{prop:productName}}", escapeHTML(props["productName"])));
15
+ }if (actualProps === "[\"errorURI\",\"productDocsLink\",\"productName\"]") {
16
+ return (getMarkup("4e75d19695927c4f7bb62024169a7a8c9c523c282b1fe7cb86fd62d3b720e383").replaceAll("{{prop:errorURI}}", escapeHTML(props["errorURI"])).replaceAll("{{prop:productDocsLink}}", escapeHTML(props["productDocsLink"])).replaceAll("{{prop:productName}}", escapeHTML(props["productName"])));
17
+ }if (actualProps === "[\"error\",\"errorDescription\",\"productDocsLink\",\"productName\"]") {
18
+ return (getMarkup("a1a04afd699e979c0bbca4984ae0988d1b82699fa172c51a9cb43a2fc92d22ce").replaceAll("{{prop:error}}", escapeHTML(props["error"])).replaceAll("{{prop:errorDescription}}", escapeHTML(props["errorDescription"])).replaceAll("{{prop:productDocsLink}}", escapeHTML(props["productDocsLink"])).replaceAll("{{prop:productName}}", escapeHTML(props["productName"])));
19
+ }if (actualProps === "[\"errorDescription\",\"productDocsLink\",\"productName\"]") {
20
+ return (getMarkup("77e6077a88fc7ad2b90ad75f46360847cce55bb817661ad00525069e35535b0d").replaceAll("{{prop:errorDescription}}", escapeHTML(props["errorDescription"])).replaceAll("{{prop:productDocsLink}}", escapeHTML(props["productDocsLink"])).replaceAll("{{prop:productName}}", escapeHTML(props["productName"])));
21
+ }if (actualProps === "[\"error\",\"productDocsLink\",\"productName\"]") {
22
+ return (getMarkup("9e801649e3d0524c0c653839e22a96a9b4985eaf9320b6d4420ccb00ff8fac70").replaceAll("{{prop:error}}", escapeHTML(props["error"])).replaceAll("{{prop:productDocsLink}}", escapeHTML(props["productDocsLink"])).replaceAll("{{prop:productName}}", escapeHTML(props["productName"])));
23
+ }if (actualProps === "[\"productDocsLink\",\"productName\"]") {
24
+ return (getMarkup("d1ed98d85f89839987edddee93351d1bb599129efe88aa8113e7db74f2c98a12").replaceAll("{{prop:productDocsLink}}", escapeHTML(props["productDocsLink"])).replaceAll("{{prop:productName}}", escapeHTML(props["productName"])));
25
+ }if (actualProps === "[\"error\",\"errorDescription\",\"errorURI\",\"productName\"]") {
26
+ return (getMarkup("fbee6023f25c4c5a5d6406e595ed5d14deedffc965a3ffcebdfbd171e644c644").replaceAll("{{prop:error}}", escapeHTML(props["error"])).replaceAll("{{prop:errorDescription}}", escapeHTML(props["errorDescription"])).replaceAll("{{prop:errorURI}}", escapeHTML(props["errorURI"])).replaceAll("{{prop:productName}}", escapeHTML(props["productName"])));
27
+ }if (actualProps === "[\"errorDescription\",\"errorURI\",\"productName\"]") {
28
+ return (getMarkup("56d14cd3ac8b7c26f35b3aa50e1238d2c09683d3cbece341346ab2adacab7fcb").replaceAll("{{prop:errorDescription}}", escapeHTML(props["errorDescription"])).replaceAll("{{prop:errorURI}}", escapeHTML(props["errorURI"])).replaceAll("{{prop:productName}}", escapeHTML(props["productName"])));
29
+ }if (actualProps === "[\"error\",\"errorURI\",\"productName\"]") {
30
+ return (getMarkup("9fa603b57d3d75c0798420ef9a33a0a8302f8cd7fcd563709a3e773e24f93592").replaceAll("{{prop:error}}", escapeHTML(props["error"])).replaceAll("{{prop:errorURI}}", escapeHTML(props["errorURI"])).replaceAll("{{prop:productName}}", escapeHTML(props["productName"])));
31
+ }if (actualProps === "[\"errorURI\",\"productName\"]") {
32
+ return (getMarkup("211d1b8b770abf0d8b263530b292d1f6b3dd9e2d339f82da1a37ba0b42a8a02e").replaceAll("{{prop:errorURI}}", escapeHTML(props["errorURI"])).replaceAll("{{prop:productName}}", escapeHTML(props["productName"])));
33
+ }if (actualProps === "[\"error\",\"errorDescription\",\"productName\"]") {
34
+ return (getMarkup("307175acaf3496a3b00778935e64780ec8a52cbf34a229bf02196c3e80c699ff").replaceAll("{{prop:error}}", escapeHTML(props["error"])).replaceAll("{{prop:errorDescription}}", escapeHTML(props["errorDescription"])).replaceAll("{{prop:productName}}", escapeHTML(props["productName"])));
35
+ }if (actualProps === "[\"errorDescription\",\"productName\"]") {
36
+ return (getMarkup("f401b5a36206b6a1d5200bce89a8a8d0e68f5a12b4ae3ffee9a5f32a225d3569").replaceAll("{{prop:errorDescription}}", escapeHTML(props["errorDescription"])).replaceAll("{{prop:productName}}", escapeHTML(props["productName"])));
37
+ }if (actualProps === "[\"error\",\"productName\"]") {
38
+ return (getMarkup("a249f1ca3d65053c7b489206c33e8bf6cdef4b7e968229008325c3e1a555373a").replaceAll("{{prop:error}}", escapeHTML(props["error"])).replaceAll("{{prop:productName}}", escapeHTML(props["productName"])));
39
+ }if (actualProps === "[\"productName\"]") {
40
+ return (getMarkup("bebe6b672324413342fdd7fe5ef37aa4a4d86a1388ba2b23724e186321b62bb0").replaceAll("{{prop:productName}}", escapeHTML(props["productName"])));
41
+ }if (actualProps === "[\"error\",\"errorDescription\",\"errorURI\",\"productDocsLink\"]") {
42
+ return (getMarkup("bb9282d8c4d31f259c3d0340f62ba4480b268d473cadb1261341bb7f41976a17").replaceAll("{{prop:error}}", escapeHTML(props["error"])).replaceAll("{{prop:errorDescription}}", escapeHTML(props["errorDescription"])).replaceAll("{{prop:errorURI}}", escapeHTML(props["errorURI"])).replaceAll("{{prop:productDocsLink}}", escapeHTML(props["productDocsLink"])));
43
+ }if (actualProps === "[\"errorDescription\",\"errorURI\",\"productDocsLink\"]") {
44
+ return (getMarkup("2137135c9be2bd9652fb59bfd231e21c687379fbbc3f3deda7a82eab813cb20d").replaceAll("{{prop:errorDescription}}", escapeHTML(props["errorDescription"])).replaceAll("{{prop:errorURI}}", escapeHTML(props["errorURI"])).replaceAll("{{prop:productDocsLink}}", escapeHTML(props["productDocsLink"])));
45
+ }if (actualProps === "[\"error\",\"errorURI\",\"productDocsLink\"]") {
46
+ return (getMarkup("ae12f66433a1481fc49cdf1b56da7871abb309f6333193d6f336c34da4fae11e").replaceAll("{{prop:error}}", escapeHTML(props["error"])).replaceAll("{{prop:errorURI}}", escapeHTML(props["errorURI"])).replaceAll("{{prop:productDocsLink}}", escapeHTML(props["productDocsLink"])));
47
+ }if (actualProps === "[\"errorURI\",\"productDocsLink\"]") {
48
+ return (getMarkup("bbc0ba949d14fae5ed5343ab5d1e4e5de4581b5f1a343ad0298674dff1c888c9").replaceAll("{{prop:errorURI}}", escapeHTML(props["errorURI"])).replaceAll("{{prop:productDocsLink}}", escapeHTML(props["productDocsLink"])));
49
+ }if (actualProps === "[\"error\",\"errorDescription\",\"productDocsLink\"]") {
50
+ return (getMarkup("c445cc12e1d55505aadb84dde0de73461d39175ca026ab643831c5572ce364f0").replaceAll("{{prop:error}}", escapeHTML(props["error"])).replaceAll("{{prop:errorDescription}}", escapeHTML(props["errorDescription"])).replaceAll("{{prop:productDocsLink}}", escapeHTML(props["productDocsLink"])));
51
+ }if (actualProps === "[\"errorDescription\",\"productDocsLink\"]") {
52
+ return (getMarkup("cf8b30dba3bd0ce39e976354e0f21410a073af641147296df1361183a240e9ef").replaceAll("{{prop:errorDescription}}", escapeHTML(props["errorDescription"])).replaceAll("{{prop:productDocsLink}}", escapeHTML(props["productDocsLink"])));
53
+ }if (actualProps === "[\"error\",\"productDocsLink\"]") {
54
+ return (getMarkup("850a39408afe2c0c93b25c06f4dcd087f6b1395875801ed756e96f7db8f58ee7").replaceAll("{{prop:error}}", escapeHTML(props["error"])).replaceAll("{{prop:productDocsLink}}", escapeHTML(props["productDocsLink"])));
55
+ }if (actualProps === "[\"productDocsLink\"]") {
56
+ return (getMarkup("25619e7be98777ed9f6753e3b12b2c1e62ecb78292d505fe684f2dac956f926f").replaceAll("{{prop:productDocsLink}}", escapeHTML(props["productDocsLink"])));
57
+ }if (actualProps === "[\"error\",\"errorDescription\",\"errorURI\"]") {
58
+ return (getMarkup("4c6749224fd554508c837e403d57dce74934e33c459e9dadd0e7618b6c84359b").replaceAll("{{prop:error}}", escapeHTML(props["error"])).replaceAll("{{prop:errorDescription}}", escapeHTML(props["errorDescription"])).replaceAll("{{prop:errorURI}}", escapeHTML(props["errorURI"])));
59
+ }if (actualProps === "[\"errorDescription\",\"errorURI\"]") {
60
+ return (getMarkup("2d8294f823122fc7887cdf32249be0969bebac82356ab8ca37a0b773c45eaa7a").replaceAll("{{prop:errorDescription}}", escapeHTML(props["errorDescription"])).replaceAll("{{prop:errorURI}}", escapeHTML(props["errorURI"])));
61
+ }if (actualProps === "[\"error\",\"errorURI\"]") {
62
+ return (getMarkup("859f9e8107cff328c1a6c9d6a0664dbe57568c269781b8f5ed578bad89fbca99").replaceAll("{{prop:error}}", escapeHTML(props["error"])).replaceAll("{{prop:errorURI}}", escapeHTML(props["errorURI"])));
63
+ }if (actualProps === "[\"errorURI\"]") {
64
+ return (getMarkup("73c862bfb65cf711738b8cc0fe46b066ff9302f3fd188ae7050fd9f499e741cb").replaceAll("{{prop:errorURI}}", escapeHTML(props["errorURI"])));
65
+ }if (actualProps === "[\"error\",\"errorDescription\"]") {
66
+ return (getMarkup("114078cc63c86c3d89bbbd3720ba5d88cc4a9fa0af524bed62fbba56893c5114").replaceAll("{{prop:error}}", escapeHTML(props["error"])).replaceAll("{{prop:errorDescription}}", escapeHTML(props["errorDescription"])));
67
+ }if (actualProps === "[\"errorDescription\"]") {
68
+ return (getMarkup("48bf0be64bae853e36fb4cbf12e38a8edf9cce88d3ab5bc27fe080612aed6fd8").replaceAll("{{prop:errorDescription}}", escapeHTML(props["errorDescription"])));
69
+ }if (actualProps === "[\"error\"]") {
70
+ return (getMarkup("369ba05d31cc43811e70d980e4c31c12600ce36bb1611a6e517855798b5491b6").replaceAll("{{prop:error}}", escapeHTML(props["error"])));
71
+ }if (actualProps === "[]") {
72
+ return (getMarkup("4a309661df0a42e803658e865ad79a8a6d40076b6c26585913c0ade3bcaf5995"));
73
+ }}
74
+ module.exports["OIDCAcceptedPage"] = function(props) {
75
+ const actualProps = JSON.stringify(
76
+ Object.keys(props)
77
+ .filter(prop => ["productDocsLink","productName"].includes(prop) && props[prop] != null).sort());if (actualProps === "[\"productDocsLink\",\"productName\"]") {
78
+ return (getMarkup("b15e60135ab9701297e4ad172532349a2cd349ba9883d3931ce2e59992d8b4c4").replaceAll("{{prop:productDocsLink}}", escapeHTML(props["productDocsLink"])).replaceAll("{{prop:productName}}", escapeHTML(props["productName"])));
79
+ }if (actualProps === "[\"productName\"]") {
80
+ return (getMarkup("5027b44457be2146ba47be53a5ab7f98e26e649b487ba01b3b415ecf96c4e187").replaceAll("{{prop:productName}}", escapeHTML(props["productName"])));
81
+ }if (actualProps === "[\"productDocsLink\"]") {
82
+ return (getMarkup("096af1d4cec1cb72ac3ce835651eceea6af6ae06a25d6027532c716f385e3834").replaceAll("{{prop:productDocsLink}}", escapeHTML(props["productDocsLink"])));
83
+ }if (actualProps === "[]") {
84
+ return (getMarkup("5027b44457be2146ba47be53a5ab7f98e26e649b487ba01b3b415ecf96c4e187"));
85
+ }}
86
+ module.exports["OIDCNotFoundPage"] = function(props) {
87
+ const actualProps = JSON.stringify(
88
+ Object.keys(props)
89
+ .filter(prop => ["productDocsLink","productName"].includes(prop) && props[prop] != null).sort());if (actualProps === "[\"productDocsLink\",\"productName\"]") {
90
+ return (getMarkup("f41f18c14fcfcf207200362fac629f078e745284d443f1e7a121902463b4d987").replaceAll("{{prop:productDocsLink}}", escapeHTML(props["productDocsLink"])).replaceAll("{{prop:productName}}", escapeHTML(props["productName"])));
91
+ }if (actualProps === "[\"productName\"]") {
92
+ return (getMarkup("b5ec149823770bd5cbd44e6ea299c56316b155480993677cac805e3c8be03a5a").replaceAll("{{prop:productName}}", escapeHTML(props["productName"])));
93
+ }if (actualProps === "[\"productDocsLink\"]") {
94
+ return (getMarkup("e37b34866b33ff8ea7dcaa0121bf4e53bfe5a016d7121328737b14464f41222e").replaceAll("{{prop:productDocsLink}}", escapeHTML(props["productDocsLink"])));
95
+ }if (actualProps === "[]") {
96
+ return (getMarkup("b5ec149823770bd5cbd44e6ea299c56316b155480993677cac805e3c8be03a5a"));
97
+ }}
98
+
99
+ const markupTableSrc = "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";
100
+ let markupTable;
101
+ function getMarkup(hash) {
102
+ if (markupTable === undefined) {
103
+ markupTable = JSON.parse(
104
+ require('zlib').brotliDecompressSync(
105
+ Buffer.from(markupTableSrc, 'base64')));
106
+ }
107
+ return markupTable[hash];
108
+ }
109
+
@@ -0,0 +1,9 @@
1
+ import { MongoDBOIDCPlugin } from "@mongodb-js/oidc-plugin";
2
+ import { DevtoolsConnectionState } from "./connect";
3
+ export declare class StateShareServer {
4
+ private constructor();
5
+ static create(state: DevtoolsConnectionState): Promise<StateShareServer>;
6
+ }
7
+ export declare class StateShareClient {
8
+ oidcPlugin: MongoDBOIDCPlugin;
9
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StateShareClient = exports.StateShareServer = void 0;
4
+ class StateShareServer {
5
+ constructor(state) {
6
+ }
7
+ static create(state) {
8
+ const result = new StateShareServer(state);
9
+ }
10
+ }
11
+ exports.StateShareServer = StateShareServer;
12
+ class StateShareClient {
13
+ }
14
+ exports.StateShareClient = StateShareClient;
15
+ //# sourceMappingURL=state-share-socket.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state-share-socket.js","sourceRoot":"","sources":["../src/state-share-socket.ts"],"names":[],"mappings":";;;AAGA,MAAa,gBAAgB;IAC3B,YAAoB,KAA8B;IAElD,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,KAA8B;QAC1C,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;CACF;AARD,4CAQC;AAED,MAAa,gBAAgB;CAE5B;AAFD,4CAEC"}
package/lib/types.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import type { MongoDBOIDCLogEventsMap } from '@mongodb-js/oidc-plugin';
1
2
  export interface ConnectAttemptInitializedEvent {
2
3
  uri: string;
3
4
  driver: {
@@ -47,7 +48,7 @@ export interface ConnectUsedSystemCAEvent {
47
48
  caCount: number;
48
49
  asyncFallbackError: Error | undefined;
49
50
  }
50
- export interface ConnectEventMap {
51
+ export interface ConnectEventMap extends MongoDBOIDCLogEventsMap {
51
52
  'devtools-connect:connect-attempt-initialized': (ev: ConnectAttemptInitializedEvent) => void;
52
53
  'devtools-connect:connect-heartbeat-failure': (ev: ConnectHeartbeatFailureEvent) => void;
53
54
  'devtools-connect:connect-heartbeat-succeeded': (ev: ConnectHeartbeatSucceededEvent) => void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mongodb-js/devtools-connect",
3
- "version": "1.4.4",
3
+ "version": "2.0.0",
4
4
  "description": "A connection establishment utility for MongoDB developer tools",
5
5
  "homepage": "https://github.com/mongodb-js/devtools-connect",
6
6
  "repository": {
@@ -26,15 +26,16 @@
26
26
  ".esm-wrapper.mjs"
27
27
  ],
28
28
  "scripts": {
29
- "lint": "eslint src/**/*.ts",
30
- "testonly": "nyc mocha --colors -r ts-node/register src/*.spec.ts",
29
+ "lint": "eslint src/**/*.ts src/**/*.tsx",
30
+ "testonly": "nyc mocha --colors -r ts-node/register src/**/*.spec.ts src/**/*.spec.tsx",
31
31
  "test": "npm run lint && npm run build && npm run testonly",
32
32
  "build": "npm run compile-ts && gen-esm-wrapper . ./.esm-wrapper.mjs",
33
33
  "prepack": "npm run build",
34
- "compile-ts": "tsc -p tsconfig.json"
34
+ "compile-ts": "tsc -p tsconfig.json && node lib/oidc/static/create-static-pages.js > lib/oidc/static/static-pages.js"
35
35
  },
36
36
  "license": "Apache-2.0",
37
37
  "dependencies": {
38
+ "lodash.merge": "^4.6.2",
38
39
  "system-ca": "^1.0.2"
39
40
  },
40
41
  "peerDependencies": {
@@ -42,8 +43,13 @@
42
43
  "mongodb-log-writer": "^1.1.3"
43
44
  },
44
45
  "devDependencies": {
46
+ "@mongodb-js/compass-components": "^1.6.0",
47
+ "@mongodb-js/oidc-plugin": "^0.1.0",
48
+ "@types/lodash.merge": "^4.6.7",
45
49
  "@types/mocha": "^9.0.0",
46
50
  "@types/node": "^16.4.10",
51
+ "@types/react": "^17.0.53",
52
+ "@types/react-dom": "^17.0.19",
47
53
  "@types/sinon": "^10.0.2",
48
54
  "@typescript-eslint/eslint-plugin": "^4.2.0",
49
55
  "@typescript-eslint/parser": "^4.2.0",
@@ -61,6 +67,8 @@
61
67
  "mongodb-connection-string-url": "^2.3.2",
62
68
  "mongodb-log-writer": "^1.1.3",
63
69
  "nyc": "^15.1.0",
70
+ "react": "^17.0.2",
71
+ "react-dom": "^17.0.2",
64
72
  "sinon-chai": "^3.7.0",
65
73
  "ts-node": "^10.2.1",
66
74
  "ts-sinon": "^2.0.1",