diff --git a/packages/mongodb-memory-server-core/package.json b/packages/mongodb-memory-server-core/package.json index 6c89dfd2e..6ac83b949 100644 --- a/packages/mongodb-memory-server-core/package.json +++ b/packages/mongodb-memory-server-core/package.json @@ -33,6 +33,7 @@ "devDependencies": { "@types/debug": "^4.1.8", "@types/find-cache-dir": "^3.2.1", + "@types/follow-redirects": "^1.14.1", "@types/semver": "^7.5.0", "@types/tar-stream": "^2.2.2", "@types/uuid": "^9.0.2", @@ -46,6 +47,7 @@ "camelcase": "^6.3.0", "debug": "^4.3.4", "find-cache-dir": "^3.3.2", + "follow-redirects": "^1.15.2", "get-port": "^5.1.1", "https-proxy-agent": "^5.0.1", "md5-file": "^5.0.0", @@ -68,6 +70,5 @@ "test": "yarn run lint && yarn run coverage", "test:watch": "yarn run watch", "tscheck": "tsc --noEmit" - }, - "optionalDependencies": {} + } } diff --git a/packages/mongodb-memory-server-core/src/util/MongoBinaryDownload.ts b/packages/mongodb-memory-server-core/src/util/MongoBinaryDownload.ts index 60986a6e2..d4142cfb5 100644 --- a/packages/mongodb-memory-server-core/src/util/MongoBinaryDownload.ts +++ b/packages/mongodb-memory-server-core/src/util/MongoBinaryDownload.ts @@ -3,7 +3,7 @@ import { URL } from 'url'; import path from 'path'; import { promises as fspromises, createWriteStream, createReadStream, constants } from 'fs'; import md5File from 'md5-file'; -import https from 'https'; +import { https } from 'follow-redirects'; import { createUnzip } from 'zlib'; import tar from 'tar-stream'; import yauzl from 'yauzl'; @@ -16,6 +16,7 @@ import { DryMongoBinary } from './DryMongoBinary'; import { MongoBinaryOpts } from './MongoBinary'; import { clearLine } from 'readline'; import { DownloadError, GenericMMSError, Md5CheckFailedError } from './errors'; +import { RequestOptions } from 'https'; const log = debug('MongoMS:MongoBinaryDownload'); @@ -234,7 +235,7 @@ export class MongoBinaryDownload { const urlObject = new URL(downloadUrl); urlObject.port = urlObject.port || '443'; - const requestOptions: https.RequestOptions = { + const requestOptions: RequestOptions = { method: 'GET', rejectUnauthorized: strictSsl, protocol: envToBool(resolveConfig(ResolveConfigVariables.USE_HTTP)) ? 'http:' : 'https:', @@ -402,7 +403,7 @@ export class MongoBinaryDownload { */ async httpDownload( url: URL, - httpOptions: https.RequestOptions, + httpOptions: RequestOptions, downloadLocation: string, tempDownloadLocation: string ): Promise {