mongodb-runner 5.11.1 → 6.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -2,6 +2,11 @@
2
2
 
3
3
  Helper for spinning up MongoDB servers and clusters for testing.
4
4
 
5
+ ## Requirements
6
+
7
+ Node.js >= 20.19.5, npm >= 11.6.0. Running as `npx mongodb-runner ...`
8
+ is typically the easiest way to install/run this tool.
9
+
5
10
  ## Example usage
6
11
 
7
12
  > Note: Version 5 of mongodb-runner is a full re-write. Many things work
@@ -11,6 +16,7 @@ Helper for spinning up MongoDB servers and clusters for testing.
11
16
  $ npx mongodb-runner start -t sharded
12
17
  $ npx mongodb-runner start -t replset -- --port 27017
13
18
  $ npx mongodb-runner start -t replset -- --setParameter allowDiskUseByDefault=true
19
+ $ npx mongodb-runner start -t replset --version 8.2.x-enterprise --oidc='--payload={"groups":["x"],"sub":"y","aud":"aud"} --expiry=60 --skip-refresh-token'
14
20
  $ npx mongodb-runner stop --all
15
21
  $ npx mongodb-runner exec -t standalone -- sh -c 'mongosh $MONGODB_URI'
16
22
  $ npx mongodb-runner exec -t standalone -- --setParameter allowDiskUseByDefault=true -- sh -c 'mongosh $MONGODB_URI'
@@ -3,6 +3,7 @@ import mod from "./index.js";
3
3
  export default mod;
4
4
  export const MongoCluster = mod.MongoCluster;
5
5
  export const MongoServer = mod.MongoServer;
6
+ export const exec = mod.exec;
6
7
  export const instances = mod.instances;
7
8
  export const prune = mod.prune;
8
9
  export const start = mod.start;
package/dist/cli.js CHANGED
@@ -37,13 +37,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  const yargs_1 = __importDefault(require("yargs"));
40
- const mongocluster_1 = require("./mongocluster");
41
40
  const os_1 = __importDefault(require("os"));
42
41
  const path_1 = __importDefault(require("path"));
43
- const child_process_1 = require("child_process");
44
42
  const debug_1 = __importDefault(require("debug"));
45
- const events_1 = require("events");
46
43
  const utilities = __importStar(require("./index"));
44
+ const mongodb_connection_string_url_1 = require("mongodb-connection-string-url");
47
45
  (async function () {
48
46
  const defaultRunnerDir = path_1.default.join(os_1.default.homedir(), '.mongodb', 'runner2');
49
47
  const argv = await yargs_1.default
@@ -105,6 +103,10 @@ const utilities = __importStar(require("./index"));
105
103
  .option('all', {
106
104
  type: 'boolean',
107
105
  describe: 'for `stop`: stop all clusters',
106
+ })
107
+ .option('oidc', {
108
+ type: 'string',
109
+ describe: 'Configure OIDC authentication on the server',
108
110
  })
109
111
  .option('debug', { type: 'boolean', describe: 'Enable debug output' })
110
112
  .command('start', 'Start a MongoDB instance')
@@ -118,9 +120,21 @@ const utilities = __importStar(require("./index"));
118
120
  if (argv.debug) {
119
121
  debug_1.default.enable('mongodb-runner');
120
122
  }
123
+ if (argv.oidc && process.platform !== 'linux') {
124
+ console.warn('OIDC authentication is currently only supported on Linux platforms.');
125
+ }
126
+ if (argv.oidc && !argv.version?.includes('enterprise')) {
127
+ console.warn('OIDC authentication is currently only supported on Enterprise server versions.');
128
+ }
121
129
  async function start() {
122
130
  const { cluster, id } = await utilities.start(argv, args);
123
- console.log(`Server started and running at ${cluster.connectionString}`);
131
+ const cs = new mongodb_connection_string_url_1.ConnectionString(cluster.connectionString);
132
+ console.log(`Server started and running at ${cs.toString()}`);
133
+ if (cluster.oidcIssuer) {
134
+ cs.typedSearchParams().set('authMechanism', 'MONGODB-OIDC');
135
+ console.log(`OIDC provider started and running at ${cluster.oidcIssuer}`);
136
+ console.log(`Server connection string with OIDC auth: ${cs.toString()}`);
137
+ }
124
138
  console.log('Run the following command to stop the instance:');
125
139
  console.log(`${argv.$0} stop --id=${id}` +
126
140
  (argv.runnerDir !== defaultRunnerDir
@@ -143,37 +157,7 @@ const utilities = __importStar(require("./index"));
143
157
  await utilities.prune(argv);
144
158
  }
145
159
  async function exec() {
146
- let mongodArgs;
147
- let execArgs;
148
- const doubleDashIndex = args.indexOf('--');
149
- if (doubleDashIndex !== -1) {
150
- mongodArgs = args.slice(0, doubleDashIndex);
151
- execArgs = args.slice(doubleDashIndex + 1);
152
- }
153
- else {
154
- mongodArgs = [];
155
- execArgs = args;
156
- }
157
- const cluster = await mongocluster_1.MongoCluster.start({
158
- ...argv,
159
- args: mongodArgs,
160
- });
161
- try {
162
- const [prog, ...progArgs] = execArgs;
163
- const child = (0, child_process_1.spawn)(prog, progArgs, {
164
- stdio: 'inherit',
165
- env: {
166
- ...process.env,
167
- MONGODB_URI: cluster.connectionString,
168
- MONGODB_URL: cluster.connectionString,
169
- MONGODB_HOSTPORT: cluster.hostport,
170
- },
171
- });
172
- [process.exitCode] = await (0, events_1.once)(child, 'exit');
173
- }
174
- finally {
175
- await cluster.close();
176
- }
160
+ await utilities.exec(argv, args);
177
161
  }
178
162
  async function unknown() {
179
163
  throw new Error(`Unknown command: ${command}. See '${argv.$0} --help' for more information.`);
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,kDAA0B;AAC1B,4CAAoB;AACpB,gDAAwB;AACxB,kDAAgC;AAChC,mDAAqC;AACrC,iFAAiE;AAGjE,CAAC,KAAK;IACJ,MAAM,gBAAgB,GAAG,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IACxE,MAAM,IAAI,GAAG,MAAM,eAAK;SACrB,OAAO,CAAC,KAAK,CAAC;SACd,UAAU,CAAC,gBAAgB,CAAC;SAC5B,GAAG,CAAC,gBAAgB,CAAC;SACrB,MAAM,CAAC,UAAU,EAAE;QAClB,KAAK,EAAE,GAAG;QACV,OAAO,EAAE,CAAC,YAAY,EAAE,SAAS,EAAE,SAAS,CAAU;QACtD,OAAO,EAAE,YAAqB;QAC9B,QAAQ,EAAE,wBAAwB;KACnC,CAAC;SACD,MAAM,CAAC,UAAU,EAAE;QAClB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,8CAA8C;KACzD,CAAC;SACD,MAAM,CAAC,aAAa,EAAE;QACrB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,4CAA4C;KACvD,CAAC;SACD,MAAM,CAAC,QAAQ,EAAE;QAChB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,uCAAuC;KAClD,CAAC;SACD,MAAM,CAAC,SAAS,EAAE;QACjB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,+BAA+B;KAC1C,CAAC;SACD,MAAM,CAAC,QAAQ,EAAE;QAChB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,wCAAwC;KACnD,CAAC;SACD,MAAM,CAAC,QAAQ,EAAE;QAChB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,6CAA6C;KACxD,CAAC;SACD,MAAM,CAAC,QAAQ,EAAE;QAChB,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,YAAE,CAAC,MAAM,EAAE;QACpB,QAAQ,EAAE,+BAA+B;KAC1C,CAAC;SACD,MAAM,CAAC,aAAa,EAAE;QACrB,IAAI,EAAE,QAAQ;QACd,QAAQ,EACN,uFAAuF;KAC1F,CAAC;SACD,MAAM,CAAC,WAAW,EAAE;QACnB,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,gBAAgB;QACzB,QAAQ,EAAE,wCAAwC;KACnD,CAAC;SACD,MAAM,CAAC,QAAQ,EAAE;QAChB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,iDAAiD;KAC5D,CAAC;SACD,MAAM,CAAC,IAAI,EAAE;QACZ,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,uCAAuC;KAClD,CAAC;SACD,MAAM,CAAC,KAAK,EAAE;QACb,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,+BAA+B;KAC1C,CAAC;SACD,MAAM,CAAC,MAAM,EAAE;QACd,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,6CAA6C;KACxD,CAAC;SACD,MAAM,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,qBAAqB,EAAE,CAAC;SACrE,OAAO,CAAC,OAAO,EAAE,0BAA0B,CAAC;SAC5C,OAAO,CAAC,MAAM,EAAE,yBAAyB,CAAC;SAC1C,OAAO,CAAC,OAAO,EAAE,kDAAkD,CAAC;SACpE,OAAO,CAAC,IAAI,EAAE,0CAA0C,CAAC;SACzD,OAAO,CACN,MAAM,EACN,gEAAgE,CACjE;SACA,aAAa,CAAC,CAAC,EAAE,gCAAgC,CAAC;SAClD,IAAI,EAAE,CAAC,IAAI,CAAC;IACf,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9C,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,eAAW,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QAC9C,OAAO,CAAC,IAAI,CACV,qEAAqE,CACtE,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QACvD,OAAO,CAAC,IAAI,CACV,gFAAgF,CACjF,CAAC;IACJ,CAAC;IAED,KAAK,UAAU,KAAK;QAClB,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC1D,MAAM,EAAE,GAAG,IAAI,gDAAgB,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,iCAAiC,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC9D,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACvB,EAAE,CAAC,iBAAiB,EAAsB,CAAC,GAAG,CAC5C,eAAe,EACf,cAAc,CACf,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,wCAAwC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;YAC1E,OAAO,CAAC,GAAG,CAAC,4CAA4C,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC3E,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;QAC/D,OAAO,CAAC,GAAG,CACT,GAAG,IAAI,CAAC,EAAE,cAAc,EAAE,EAAE;YAC1B,CAAC,IAAI,CAAC,SAAS,KAAK,gBAAgB;gBAClC,CAAC,CAAC,eAAe,IAAI,CAAC,SAAS,EAAE;gBACjC,CAAC,CAAC,EAAE,CAAC,CACV,CAAC;QACF,OAAO,CAAC,KAAK,EAAE,CAAC;IAClB,CAAC;IAED,KAAK,UAAU,IAAI;QACjB,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACrE,CAAC;QACD,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK,UAAU,EAAE;QACf,IAAI,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,gBAAgB,EAAE,IAAI,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YACvE,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,gBAAgB,EAAE,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,KAAK,UAAU,KAAK;QAClB,MAAM,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK,UAAU,IAAI;QACjB,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;IAGD,KAAK,UAAU,OAAO;QACpB,MAAM,IAAI,KAAK,CACb,oBAAoB,OAAO,UAAU,IAAI,CAAC,EAAE,gCAAgC,CAC7E,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,EAAE,CAAC;AACjE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACjB,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE;QACpB,MAAM,GAAG,CAAC;IACZ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export { MongoServer, MongoServerOptions } from './mongoserver';
2
2
  export { MongoCluster, MongoClusterOptions } from './mongocluster';
3
3
  export type { ConnectionString } from 'mongodb-connection-string-url';
4
- export { prune, start, stop, instances } from './runner-helpers';
4
+ export { prune, start, stop, exec, instances } from './runner-helpers';
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEhE,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACnE,YAAY,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEhE,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACnE,YAAY,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC"}
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.instances = exports.start = exports.prune = exports.MongoCluster = exports.MongoServer = void 0;
3
+ exports.instances = exports.exec = exports.start = exports.prune = exports.MongoCluster = exports.MongoServer = void 0;
4
4
  var mongoserver_1 = require("./mongoserver");
5
5
  Object.defineProperty(exports, "MongoServer", { enumerable: true, get: function () { return mongoserver_1.MongoServer; } });
6
6
  var mongocluster_1 = require("./mongocluster");
@@ -9,5 +9,6 @@ var runner_helpers_1 = require("./runner-helpers");
9
9
  Object.defineProperty(exports, "prune", { enumerable: true, get: function () { return runner_helpers_1.prune; } });
10
10
  Object.defineProperty(exports, "start", { enumerable: true, get: function () { return runner_helpers_1.start; } });
11
11
  Object.defineProperty(exports, "stop", { enumerable: true, get: function () { return runner_helpers_1.stop; } });
12
+ Object.defineProperty(exports, "exec", { enumerable: true, get: function () { return runner_helpers_1.exec; } });
12
13
  Object.defineProperty(exports, "instances", { enumerable: true, get: function () { return runner_helpers_1.instances; } });
13
14
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,6CAAgE;AAAvD,0GAAA,WAAW,OAAA;AAEpB,+CAAmE;AAA1D,4GAAA,YAAY,OAAA;AAErB,mDAAiE;AAAxD,uGAAA,KAAK,OAAA;AAAE,uGAAA,KAAK,OAAA;AAAE,sGAAA,IAAI,OAAA;AAAE,2GAAA,SAAS,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,6CAAgE;AAAvD,0GAAA,WAAW,OAAA;AAEpB,+CAAmE;AAA1D,4GAAA,YAAY,OAAA;AAErB,mDAAuE;AAA9D,uGAAA,KAAK,OAAA;AAAE,uGAAA,KAAK,OAAA;AAAE,sGAAA,IAAI,OAAA;AAAE,sGAAA,IAAI,OAAA;AAAE,2GAAA,SAAS,OAAA"}
@@ -11,12 +11,14 @@ export interface MongoClusterOptions extends Pick<MongoServerOptions, 'logDir' |
11
11
  version?: string;
12
12
  downloadDir?: string;
13
13
  downloadOptions?: DownloadOptions;
14
+ oidc?: string;
14
15
  }
15
16
  export declare class MongoCluster {
16
17
  private topology;
17
18
  private replSetName?;
18
19
  private servers;
19
20
  private shards;
21
+ private oidcMockProviderProcess?;
20
22
  private constructor();
21
23
  private static downloadMongoDb;
22
24
  serialize(): unknown;
@@ -24,6 +26,7 @@ export declare class MongoCluster {
24
26
  static deserialize(serialized: any): Promise<MongoCluster>;
25
27
  get hostport(): string;
26
28
  get connectionString(): string;
29
+ get oidcIssuer(): string | undefined;
27
30
  get connectionStringUrl(): ConnectionString;
28
31
  get serverVersion(): string;
29
32
  get serverVariant(): 'enterprise' | 'community';
@@ -1 +1 @@
1
- {"version":3,"file":"mongocluster.d.ts","sourceRoot":"","sources":["../src/mongocluster.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAExD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAGtC,MAAM,WAAW,mBACf,SAAQ,IAAI,CACV,kBAAkB,EAClB,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CACnD;IACD,QAAQ,EAAE,YAAY,GAAG,SAAS,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAiD;IACjE,OAAO,CAAC,WAAW,CAAC,CAAS;IAC7B,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,MAAM,CAAsB;IAEpC,OAAO;IAIP,OAAO,CAAC,MAAM,CAAC,eAAe;IAQ9B,SAAS,IAAI,OAAO;IASpB,QAAQ,IAAI,OAAO;WAIN,WAAW,CAAC,UAAU,EAAE,GAAG,GAAG,OAAO,CAAC,YAAY,CAAC;IAahE,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,gBAAgB,IAAI,MAAM,CAI7B;IAED,IAAI,mBAAmB,IAAI,gBAAgB,CAE1C;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,IAAI,aAAa,IAAI,YAAY,GAAG,WAAW,CAE9C;WAEY,KAAK,CAAC,EACjB,GAAG,OAAO,EACX,EAAE,mBAAmB,GAAG,OAAO,CAAC,YAAY,CAAC;IAyIxC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAQtB,UAAU,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,WAAW,KAAK,GAAG,EACtD,EAAE,EAAE,EAAE,EACN,aAAa,GAAE,kBAAuB,GACrC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IAY1B,GAAG,IAAI,IAAI;IAIX,KAAK,IAAI,IAAI;CAGd"}
1
+ {"version":3,"file":"mongocluster.d.ts","sourceRoot":"","sources":["../src/mongocluster.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAExD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAItC,MAAM,WAAW,mBACf,SAAQ,IAAI,CACV,kBAAkB,EAClB,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CACnD;IACD,QAAQ,EAAE,YAAY,GAAG,SAAS,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAiD;IACjE,OAAO,CAAC,WAAW,CAAC,CAAS;IAC7B,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,uBAAuB,CAAC,CAA0B;IAE1D,OAAO;IAIP,OAAO,CAAC,MAAM,CAAC,eAAe;IAa9B,SAAS,IAAI,OAAO;IAUpB,QAAQ,IAAI,OAAO;WAIN,WAAW,CAAC,UAAU,EAAE,GAAG,GAAG,OAAO,CAAC,YAAY,CAAC;IAgBhE,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,gBAAgB,IAAI,MAAM,CAQ7B;IAED,IAAI,UAAU,IAAI,MAAM,GAAG,SAAS,CAEnC;IAED,IAAI,mBAAmB,IAAI,gBAAgB,CAE1C;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,IAAI,aAAa,IAAI,YAAY,GAAG,WAAW,CAE9C;WAEY,KAAK,CAAC,EACjB,GAAG,OAAO,EACX,EAAE,mBAAmB,GAAG,OAAO,CAAC,YAAY,CAAC;IAkKxC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAUtB,UAAU,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,WAAW,KAAK,GAAG,EACtD,EAAE,EAAE,EAAE,EACN,aAAa,GAAE,kBAAuB,GACrC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IAY1B,GAAG,IAAI,IAAI;IAIX,KAAK,IAAI,IAAI;CAGd"}
@@ -6,6 +6,7 @@ const mongodb_connection_string_url_1 = require("mongodb-connection-string-url")
6
6
  const mongodb_downloader_1 = require("@mongodb-js/mongodb-downloader");
7
7
  const mongodb_1 = require("mongodb");
8
8
  const util_1 = require("./util");
9
+ const oidc_1 = require("./oidc");
9
10
  class MongoCluster {
10
11
  constructor() {
11
12
  this.topology = 'standalone';
@@ -13,7 +14,12 @@ class MongoCluster {
13
14
  this.shards = [];
14
15
  }
15
16
  static downloadMongoDb(tmpdir, targetVersionSemverSpecifier, options) {
16
- return (0, mongodb_downloader_1.downloadMongoDb)(tmpdir, targetVersionSemverSpecifier, options);
17
+ return (0, mongodb_downloader_1.downloadMongoDb)({
18
+ directory: tmpdir,
19
+ version: targetVersionSemverSpecifier,
20
+ downloadOptions: options,
21
+ useLockfile: true,
22
+ });
17
23
  }
18
24
  serialize() {
19
25
  return {
@@ -21,6 +27,7 @@ class MongoCluster {
21
27
  replSetName: this.replSetName,
22
28
  servers: this.servers.map((srv) => srv.serialize()),
23
29
  shards: this.shards.map((shard) => shard.serialize()),
30
+ oidcMockProviderProcess: this.oidcMockProviderProcess?.serialize(),
24
31
  };
25
32
  }
26
33
  isClosed() {
@@ -32,13 +39,22 @@ class MongoCluster {
32
39
  cluster.replSetName = serialized.replSetName;
33
40
  cluster.servers = await Promise.all(serialized.servers.map((srv) => mongoserver_1.MongoServer.deserialize(srv)));
34
41
  cluster.shards = await Promise.all(serialized.shards.map((shard) => MongoCluster.deserialize(shard)));
42
+ cluster.oidcMockProviderProcess = serialized.oidcMockProviderProcess
43
+ ? oidc_1.OIDCMockProviderProcess.deserialize(serialized.oidcMockProviderProcess)
44
+ : undefined;
35
45
  return cluster;
36
46
  }
37
47
  get hostport() {
38
48
  return this.servers.map((srv) => srv.hostport).join(',');
39
49
  }
40
50
  get connectionString() {
41
- return `mongodb://${this.hostport}/${this.replSetName ? `?replicaSet=${this.replSetName}` : ''}`;
51
+ const cs = new mongodb_connection_string_url_1.ConnectionString(`mongodb://${this.hostport}/`);
52
+ if (this.replSetName)
53
+ cs.typedSearchParams().set('replicaSet', this.replSetName);
54
+ return cs.toString();
55
+ }
56
+ get oidcIssuer() {
57
+ return this.oidcMockProviderProcess?.issuer;
42
58
  }
43
59
  get connectionStringUrl() {
44
60
  return new mongodb_connection_string_url_1.ConnectionString(this.connectionString);
@@ -55,6 +71,28 @@ class MongoCluster {
55
71
  if (!options.binDir) {
56
72
  options.binDir = await this.downloadMongoDb(options.downloadDir ?? options.tmpDir, options.version, options.downloadOptions);
57
73
  }
74
+ if (options.oidc !== undefined) {
75
+ cluster.oidcMockProviderProcess = await oidc_1.OIDCMockProviderProcess.start(options.oidc || '--port=0');
76
+ const oidcServerConfig = [
77
+ {
78
+ issuer: cluster.oidcMockProviderProcess.issuer,
79
+ audience: cluster.oidcMockProviderProcess.audience,
80
+ authNamePrefix: 'dev',
81
+ clientId: 'cid',
82
+ authorizationClaim: 'groups',
83
+ },
84
+ ];
85
+ delete options.oidc;
86
+ options.args = [
87
+ ...(options.args ?? []),
88
+ '--setParameter',
89
+ `oidcIdentityProviders=${JSON.stringify(oidcServerConfig)}`,
90
+ '--setParameter',
91
+ 'authenticationMechanisms=SCRAM-SHA-256,MONGODB-OIDC',
92
+ '--setParameter',
93
+ 'enableTestCommands=true',
94
+ ];
95
+ }
58
96
  if (options.topology === 'standalone') {
59
97
  cluster.servers.push(await mongoserver_1.MongoServer.start({
60
98
  ...options,
@@ -162,7 +200,7 @@ class MongoCluster {
162
200
  return cluster;
163
201
  }
164
202
  async close() {
165
- await Promise.all([...this.servers, ...this.shards].map((closable) => closable.close()));
203
+ await Promise.all([...this.servers, ...this.shards, this.oidcMockProviderProcess].map((closable) => closable?.close()));
166
204
  this.servers = [];
167
205
  this.shards = [];
168
206
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mongocluster.js","sourceRoot":"","sources":["../src/mongocluster.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mongocluster.js","sourceRoot":"","sources":["../src/mongocluster.ts"],"names":[],"mappings":"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"}
package/dist/oidc.d.ts ADDED
@@ -0,0 +1,12 @@
1
+ export declare class OIDCMockProviderProcess {
2
+ pid?: number;
3
+ issuer?: string;
4
+ uuid?: string;
5
+ audience?: string;
6
+ serialize(): unknown;
7
+ static deserialize(serialized: any): OIDCMockProviderProcess;
8
+ private constructor();
9
+ static start(args: string): Promise<OIDCMockProviderProcess>;
10
+ close(): Promise<void>;
11
+ }
12
+ //# sourceMappingURL=oidc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oidc.d.ts","sourceRoot":"","sources":["../src/oidc.ts"],"names":[],"mappings":"AA+CA,qBAAa,uBAAuB;IAClC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,SAAS,IAAI,OAAO;IASpB,MAAM,CAAC,WAAW,CAAC,UAAU,EAAE,GAAG,GAAG,uBAAuB;IAS5D,OAAO;WAIM,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAqC5D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAY7B"}
package/dist/oidc.js ADDED
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OIDCMockProviderProcess = void 0;
4
+ const child_process_1 = require("child_process");
5
+ const events_1 = require("events");
6
+ const oidc_mock_provider_1 = require("@mongodb-js/oidc-mock-provider");
7
+ const util_1 = require("./util");
8
+ if (process.env.RUN_OIDC_MOCK_PROVIDER !== undefined) {
9
+ (async function main() {
10
+ const uuid = crypto.randomUUID();
11
+ (0, util_1.debug)('starting OIDC mock provider with UUID', uuid);
12
+ const config = (0, oidc_mock_provider_1.parseCLIArgs)(process.env.RUN_OIDC_MOCK_PROVIDER);
13
+ const sampleTokenConfig = await config.getTokenPayload({
14
+ client_id: 'cid',
15
+ scope: 'scope',
16
+ });
17
+ (0, util_1.debug)('sample OIDC token config', sampleTokenConfig, uuid);
18
+ const audience = sampleTokenConfig.payload.aud;
19
+ const provider = await oidc_mock_provider_1.OIDCMockProvider.create({
20
+ ...config,
21
+ overrideRequestHandler(url, req, res) {
22
+ if (new URL(url).pathname === `/shutdown/${uuid}`) {
23
+ res.on('close', () => {
24
+ process.exit();
25
+ });
26
+ res.writeHead(200);
27
+ res.end();
28
+ return;
29
+ }
30
+ return config.overrideRequestHandler?.(url, req, res);
31
+ },
32
+ });
33
+ (0, util_1.debug)('started OIDC mock provider with UUID', {
34
+ issuer: provider.issuer,
35
+ uuid,
36
+ audience,
37
+ });
38
+ process.send?.({
39
+ issuer: provider.issuer,
40
+ uuid,
41
+ audience,
42
+ });
43
+ })().catch((error) => {
44
+ console.error('Error starting OIDC mock identity provider server:', error);
45
+ process.exitCode = 1;
46
+ });
47
+ }
48
+ class OIDCMockProviderProcess {
49
+ serialize() {
50
+ return {
51
+ pid: this.pid,
52
+ issuer: this.issuer,
53
+ uuid: this.uuid,
54
+ audience: this.audience,
55
+ };
56
+ }
57
+ static deserialize(serialized) {
58
+ const process = new OIDCMockProviderProcess();
59
+ process.pid = serialized.pid;
60
+ process.issuer = serialized.issuer;
61
+ process.uuid = serialized.uuid;
62
+ process.audience = serialized.audience;
63
+ return process;
64
+ }
65
+ constructor() {
66
+ }
67
+ static async start(args) {
68
+ const oidcProc = new this();
69
+ (0, util_1.debug)('spawning OIDC child process', [process.execPath, __filename], args);
70
+ const proc = (0, child_process_1.spawn)(process.execPath, [__filename], {
71
+ stdio: ['inherit', 'inherit', 'inherit', 'ipc'],
72
+ env: {
73
+ ...process.env,
74
+ RUN_OIDC_MOCK_PROVIDER: args,
75
+ },
76
+ detached: true,
77
+ serialization: 'advanced',
78
+ });
79
+ await (0, events_1.once)(proc, 'spawn');
80
+ try {
81
+ oidcProc.pid = proc.pid;
82
+ const [msg] = await Promise.race([
83
+ (0, events_1.once)(proc, 'message'),
84
+ (0, events_1.once)(proc, 'exit').then(() => {
85
+ throw new Error(`OIDC mock provider process exited before sending message (${String(proc.exitCode)}, ${String(proc.signalCode)})`);
86
+ }),
87
+ ]);
88
+ (0, util_1.debug)('received message from OIDC child process', msg);
89
+ oidcProc.issuer = msg.issuer;
90
+ oidcProc.uuid = msg.uuid;
91
+ oidcProc.audience = msg.audience;
92
+ }
93
+ catch (err) {
94
+ proc.kill();
95
+ throw err;
96
+ }
97
+ proc.unref();
98
+ proc.channel?.unref();
99
+ (0, util_1.debug)('OIDC setup complete, uuid =', oidcProc.uuid);
100
+ return oidcProc;
101
+ }
102
+ async close() {
103
+ try {
104
+ if (this.pid)
105
+ process.kill(this.pid, 0);
106
+ }
107
+ catch (e) {
108
+ if (typeof e === 'object' && e && 'code' in e && e.code === 'ESRCH')
109
+ return;
110
+ }
111
+ if (!this.issuer || !this.uuid)
112
+ return;
113
+ await fetch(new URL(this.issuer, `/shutdown/${this.uuid}`));
114
+ this.uuid = undefined;
115
+ }
116
+ }
117
+ exports.OIDCMockProviderProcess = OIDCMockProviderProcess;
118
+ //# sourceMappingURL=oidc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oidc.js","sourceRoot":"","sources":["../src/oidc.ts"],"names":[],"mappings":"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"}
@@ -24,5 +24,9 @@ export declare function stop(argv: {
24
24
  id?: string;
25
25
  all?: boolean;
26
26
  }): Promise<void>;
27
+ export declare function exec(argv: {
28
+ id?: string;
29
+ runnerDir: string;
30
+ } & MongoClusterOptions, args: string[]): Promise<void>;
27
31
  export {};
28
32
  //# sourceMappingURL=runner-helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runner-helpers.d.ts","sourceRoot":"","sources":["../src/runner-helpers.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAI9C,UAAU,cAAc;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAsB,KAAK,CACzB,IAAI,EAAE;IACJ,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,mBAAmB,EACvB,IAAI,CAAC,EAAE,MAAM,EAAE;;;GAuBhB;AAED,wBAAuB,SAAS,CAAC,IAAI,EAAE;IACrC,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,aAAa,CAAC,cAAc,CAAC,CAYhC;AAMD,wBAAsB,KAAK,CAAC,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAetE;AAED,wBAAsB,IAAI,CAAC,IAAI,EAAE;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,OAAO,CAAC;CACf,iBAMA"}
1
+ {"version":3,"file":"runner-helpers.d.ts","sourceRoot":"","sources":["../src/runner-helpers.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAM9C,UAAU,cAAc;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAsB,KAAK,CACzB,IAAI,EAAE;IACJ,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,mBAAmB,EACvB,IAAI,CAAC,EAAE,MAAM,EAAE;;;GAuBhB;AAED,wBAAuB,SAAS,CAAC,IAAI,EAAE;IACrC,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,aAAa,CAAC,cAAc,CAAC,CAYhC;AAMD,wBAAsB,KAAK,CAAC,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAetE;AAED,wBAAsB,IAAI,CAAC,IAAI,EAAE;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,OAAO,CAAC;CACf,iBAMA;AAED,wBAAsB,IAAI,CACxB,IAAI,EAAE;IACJ,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,mBAAmB,EACvB,IAAI,EAAE,MAAM,EAAE,iBAiCf"}
@@ -40,11 +40,14 @@ exports.start = start;
40
40
  exports.instances = instances;
41
41
  exports.prune = prune;
42
42
  exports.stop = stop;
43
+ exports.exec = exec;
43
44
  const mongodb_1 = require("mongodb");
44
45
  const path_1 = __importDefault(require("path"));
45
46
  const mongocluster_1 = require("./mongocluster");
46
47
  const util_1 = require("./util");
47
48
  const fs = __importStar(require("fs/promises"));
49
+ const child_process_1 = require("child_process");
50
+ const events_1 = require("events");
48
51
  async function start(argv, args) {
49
52
  const id = argv.id || new mongodb_1.BSON.UUID().toHexString();
50
53
  if (!/^[a-zA-Z0-9_-]+$/.test(id)) {
@@ -95,4 +98,37 @@ async function stop(argv) {
95
98
  await fs.rm(instance.filepath);
96
99
  });
97
100
  }
101
+ async function exec(argv, args) {
102
+ let mongodArgs;
103
+ let execArgs;
104
+ const doubleDashIndex = args.indexOf('--');
105
+ if (doubleDashIndex !== -1) {
106
+ mongodArgs = args.slice(0, doubleDashIndex);
107
+ execArgs = args.slice(doubleDashIndex + 1);
108
+ }
109
+ else {
110
+ mongodArgs = [];
111
+ execArgs = args;
112
+ }
113
+ const cluster = await mongocluster_1.MongoCluster.start({
114
+ ...argv,
115
+ args: mongodArgs,
116
+ });
117
+ try {
118
+ const [prog, ...progArgs] = execArgs;
119
+ const child = (0, child_process_1.spawn)(prog, progArgs, {
120
+ stdio: 'inherit',
121
+ env: {
122
+ ...process.env,
123
+ MONGODB_URI: cluster.connectionString,
124
+ MONGODB_URL: cluster.connectionString,
125
+ MONGODB_HOSTPORT: cluster.hostport,
126
+ },
127
+ });
128
+ [process.exitCode] = await (0, events_1.once)(child, 'exit');
129
+ }
130
+ finally {
131
+ await cluster.close();
132
+ }
133
+ }
98
134
  //# sourceMappingURL=runner-helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runner-helpers.js","sourceRoot":"","sources":["../src/runner-helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner-helpers.js","sourceRoot":"","sources":["../src/runner-helpers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBA,sBA4BC;AAED,8BAcC;AAMD,sBAeC;AAED,oBAUC;AAED,oBAsCC;AArID,qCAA+B;AAC/B,gDAAwB;AAExB,iDAA8C;AAC9C,iCAAyC;AACzC,gDAAkC;AAClC,iDAAsC;AACtC,mCAA8B;AASvB,KAAK,UAAU,KAAK,CACzB,IAGuB,EACvB,IAAe;IAEf,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,cAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACpD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,wCAAwC,CAAC,CAAC;IACrE,CAAC;IACD,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEpD,MAAM,OAAO,GAAG,MAAM,2BAAY,CAAC,KAAK,CAAC;QACvC,GAAG,IAAI;QACP,IAAI;KACL,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC;IAC7C,MAAM,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC;IAErC,MAAM,EAAE,CAAC,SAAS,CAChB,cAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,EACzC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC,CACrD,CAAC;IAEF,OAAO,CAAC,KAAK,EAAE,CAAC;IAEhB,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AACzB,CAAC;AAEM,KAAK,SAAS,CAAC,CAAC,SAAS,CAAC,IAEhC;IACC,IAAI,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9D,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACpD,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBACjD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;gBAC/D,MAAM,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,CAAC;YAChC,CAAC;YAAC,MAAM,CAAC;YAET,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAMM,KAAK,UAAU,KAAK,CAAC,IAA2B;IACrD,KAAK,UAAU,OAAO,CAAC,QAAwB;QAC7C,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,2BAAY,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YACpE,MAAM,OAAO,CAAC,UAAU,CACtB,GAAG,EAAE;YAEL,CAAC,EACD,EAAE,wBAAwB,EAAE,IAAI,EAAE,CACnC,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IACD,MAAM,IAAA,sBAAe,EAAC,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;AAClD,CAAC;AAEM,KAAK,UAAU,IAAI,CAAC,IAI1B;IACC,MAAM,IAAA,sBAAe,EAAC,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAwB,EAAE,EAAE;QACxE,IAAI,QAAQ,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG;YAAE,OAAO;QACjD,MAAM,CAAC,MAAM,2BAAY,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QACpE,MAAM,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,IAAI,CACxB,IAGuB,EACvB,IAAc;IAEd,IAAI,UAAoB,CAAC;IACzB,IAAI,QAAkB,CAAC;IAEvB,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,eAAe,KAAK,CAAC,CAAC,EAAE,CAAC;QAC3B,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;QAC5C,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC;IAC7C,CAAC;SAAM,CAAC;QACN,UAAU,GAAG,EAAE,CAAC;QAChB,QAAQ,GAAG,IAAI,CAAC;IAClB,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,2BAAY,CAAC,KAAK,CAAC;QACvC,GAAG,IAAI;QACP,IAAI,EAAE,UAAU;KACjB,CAAC,CAAC;IACH,IAAI,CAAC;QACH,MAAM,CAAC,IAAI,EAAE,GAAG,QAAQ,CAAC,GAAG,QAAQ,CAAC;QACrC,MAAM,KAAK,GAAG,IAAA,qBAAK,EAAC,IAAI,EAAE,QAAQ,EAAE;YAClC,KAAK,EAAE,SAAS;YAChB,GAAG,EAAE;gBACH,GAAG,OAAO,CAAC,GAAG;gBAEd,WAAW,EAAE,OAAO,CAAC,gBAAgB;gBACrC,WAAW,EAAE,OAAO,CAAC,gBAAgB;gBACrC,gBAAgB,EAAE,OAAO,CAAC,QAAQ;aACnC;SACF,CAAC,CAAC;QACH,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,MAAM,IAAA,aAAI,EAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACjD,CAAC;YAAS,CAAC;QACT,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -13,7 +13,7 @@
13
13
  "email": "compass@mongodb.com"
14
14
  },
15
15
  "homepage": "https://github.com/mongodb-js/devtools-shared",
16
- "version": "5.11.1",
16
+ "version": "6.1.0",
17
17
  "repository": {
18
18
  "type": "git",
19
19
  "url": "https://github.com/mongodb-js/devtools-shared.git"
@@ -56,7 +56,8 @@
56
56
  "reformat": "npm run prettier -- --write ."
57
57
  },
58
58
  "dependencies": {
59
- "@mongodb-js/mongodb-downloader": "^0.5.0",
59
+ "@mongodb-js/mongodb-downloader": "^1.0.0",
60
+ "@mongodb-js/oidc-mock-provider": "^0.12.0",
60
61
  "@mongodb-js/saslprep": "^1.3.2",
61
62
  "debug": "^4.4.0",
62
63
  "mongodb": "^6.9.0",
@@ -84,5 +85,5 @@
84
85
  "sinon": "^9.2.3",
85
86
  "typescript": "^5.0.4"
86
87
  },
87
- "gitHead": "7d1a811a59bf98170d7c1c75b00b92870866d1d8"
88
+ "gitHead": "c39c38576926e2e17c763f91a81549a348c7da3d"
88
89
  }