diff --git a/packages/browser-repl/config/empty.js b/packages/browser-repl/config/empty.js deleted file mode 100644 index f053ebf79..000000000 --- a/packages/browser-repl/config/empty.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = {}; diff --git a/packages/browser-repl/config/plain-url.js b/packages/browser-repl/config/plain-url.js new file mode 100644 index 000000000..f59a6c499 --- /dev/null +++ b/packages/browser-repl/config/plain-url.js @@ -0,0 +1 @@ +module.exports = { URL: window.URL, URLSearchParams: window.URLSearchParams, __from: __filename }; diff --git a/packages/browser-repl/config/webpack.config.base.js b/packages/browser-repl/config/webpack.config.base.js index 5293933b3..6b5a31476 100644 --- a/packages/browser-repl/config/webpack.config.base.js +++ b/packages/browser-repl/config/webpack.config.base.js @@ -6,7 +6,7 @@ module.exports = { extensions: ['.tsx', '.ts', '.jsx', '.js', '.less'], alias: { // imports in service-provider-core that can break the browser build - 'whatwg-url': path.resolve(__dirname, 'empty.js'), + 'whatwg-url': path.resolve(__dirname, 'plain-url.js'), } }, module: { diff --git a/packages/service-provider-core/package-lock.json b/packages/service-provider-core/package-lock.json index d5ca88373..ca165c971 100644 --- a/packages/service-provider-core/package-lock.json +++ b/packages/service-provider-core/package-lock.json @@ -298,10 +298,11 @@ } }, "mongodb-connection-string-url": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-1.0.0.tgz", - "integrity": "sha512-s2kSyqM/PgvLHKzc67eK/syC4n2eXu4Q2XWA4gJOgMvOk1/bsZ8jW04EBFabfNHgw66gYSovx9F623eKEkpfGA==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-1.1.2.tgz", + "integrity": "sha512-mp5lv4guWuykOpkwNNqQ0tKKytuJUjL/aC/bu/DqoJVWL5NSh4j/u+gJ+EiOdweLujHyq6JZZqcTVipHhL5xRg==", "requires": { + "@types/whatwg-url": "^8.0.0", "whatwg-url": "^8.4.0" } }, diff --git a/packages/service-provider-core/package.json b/packages/service-provider-core/package.json index 9a298e7df..98f316fd7 100644 --- a/packages/service-provider-core/package.json +++ b/packages/service-provider-core/package.json @@ -35,7 +35,7 @@ "bson": "^4.4.1", "mongodb": "^4.1.0", "mongodb-build-info": "^1.2.0", - "mongodb-connection-string-url": "^1.0.0" + "mongodb-connection-string-url": "^1.1.2" }, "optionalDependencies": { "mongodb-client-encryption": "^1.2.6" diff --git a/packages/service-provider-core/src/uri-generator.ts b/packages/service-provider-core/src/uri-generator.ts index 32a0362a5..5e464fedc 100644 --- a/packages/service-provider-core/src/uri-generator.ts +++ b/packages/service-provider-core/src/uri-generator.ts @@ -3,7 +3,7 @@ import { CommonErrors, MongoshInvalidInputError } from '@mongosh/errors'; import i18n from '@mongosh/i18n'; import CliOptions from './cli-options'; -import ConnectionString from 'mongodb-connection-string-url'; +import ConnectionString, { CommaAndColonSeparatedRecord } from 'mongodb-connection-string-url'; import { DEFAULT_DB } from './index'; /** @@ -58,8 +58,9 @@ function validateConflicts(options: CliOptions, connectionString?: ConnectionStr } if (options.gssapiServiceName && connectionString?.searchParams.has('authMechanismProperties')) { - const authProperties = connectionString.searchParams.get('authMechanismProperties') ?? ''; - const serviceName = /,?SERVICE_NAME:([^,]+)/.exec(authProperties)?.[1]; + const authProperties = new CommaAndColonSeparatedRecord( + connectionString.searchParams.get('authMechanismProperties')); + const serviceName = authProperties.get('SERVICE_NAME'); if (serviceName !== undefined && options.gssapiServiceName !== serviceName) { throw new MongoshInvalidInputError(i18n.__(DIVERGING_SERVICE_NAME), CommonErrors.InvalidArgument); } diff --git a/packages/service-provider-server/package-lock.json b/packages/service-provider-server/package-lock.json index 540289825..8c6cbf82a 100644 --- a/packages/service-provider-server/package-lock.json +++ b/packages/service-provider-server/package-lock.json @@ -328,10 +328,11 @@ } }, "mongodb-connection-string-url": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-1.0.0.tgz", - "integrity": "sha512-s2kSyqM/PgvLHKzc67eK/syC4n2eXu4Q2XWA4gJOgMvOk1/bsZ8jW04EBFabfNHgw66gYSovx9F623eKEkpfGA==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-1.1.2.tgz", + "integrity": "sha512-mp5lv4guWuykOpkwNNqQ0tKKytuJUjL/aC/bu/DqoJVWL5NSh4j/u+gJ+EiOdweLujHyq6JZZqcTVipHhL5xRg==", "requires": { + "@types/whatwg-url": "^8.0.0", "whatwg-url": "^8.4.0" } }, diff --git a/packages/service-provider-server/package.json b/packages/service-provider-server/package.json index 18c623ac1..b37de66be 100644 --- a/packages/service-provider-server/package.json +++ b/packages/service-provider-server/package.json @@ -44,7 +44,7 @@ "@types/sinon-chai": "^3.2.3", "mongodb": "^4.1.0", "saslprep": "mongodb-js/saslprep#v1.0.4", - "mongodb-connection-string-url": "^1.0.0" + "mongodb-connection-string-url": "^1.1.2" }, "optionalDependencies": { "mongodb-client-encryption": "^1.2.6",