diff --git a/knip.ts b/knip.ts index 6dd08007a7..38a86a0047 100644 --- a/knip.ts +++ b/knip.ts @@ -129,8 +129,13 @@ const config: KnipConfig = { "karma-mocha", "karma-mocha-reporter", "karma-typescript", - // Resolved as `/` + // Resolved as `/` in config/webpack.config.base.js + "assert", "buffer", + "events", + "process", + "punycode", + "string_decoder", "util", ], }, @@ -143,6 +148,9 @@ const config: KnipConfig = { "tr46", "assert", "buffer", + "events", + "punycode", + "string_decoder", "util", // Needed to run tests "@mongosh/cli-repl", diff --git a/package-lock.json b/package-lock.json index 1220e5d681..ceed1331a3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -270,6 +270,121 @@ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "license": "0BSD" }, + "node_modules/@aws-sdk/checksums": { + "version": "3.1000.28", + "resolved": "https://registry.npmjs.org/@aws-sdk/checksums/-/checksums-3.1000.28.tgz", + "integrity": "sha512-VCpnmyHQ1IH49ni3LXnQj7DPr7rmcJmzYeiCkYdCcfgNtkvOj38cdcL9lapBWoItZWFACJPFJlymqC7/gem3Gw==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.977.8", + "@aws-sdk/types": "^3.974.4", + "@smithy/core": "^3.31.1", + "@smithy/types": "^4.16.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/checksums/node_modules/@aws-sdk/core": { + "version": "3.977.8", + "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.977.8.tgz", + "integrity": "sha512-7+Kcrkvrk9lM/m7jRhHpT4jCdvzGHsuaSRbF8TdzzkY1mRzp/Ogwf9c7H29k4gGhey0BBWhCWr16+t0J61gwmg==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "^3.974.4", + "@aws-sdk/xml-builder": "^3.972.39", + "@aws/lambda-invoke-store": "^0.3.0", + "@smithy/core": "^3.31.1", + "@smithy/signature-v4": "^5.6.12", + "@smithy/types": "^4.16.1", + "bowser": "^2.11.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/checksums/node_modules/@aws-sdk/types": { + "version": "3.974.4", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.974.4.tgz", + "integrity": "sha512-dSFDNG00MEz0/xl5gxL62giLd1iYyJsTxZ1I1DOj6lC+bbgLB4TRsYClJg3b62dhXT1uATzsTNXPnC+33EJV3A==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.16.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/checksums/node_modules/@aws-sdk/xml-builder": { + "version": "3.972.39", + "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.972.39.tgz", + "integrity": "sha512-FTti8DS5MMWXNUWiRwXAJeYS+0GHHiMy0+7XOhcwk63ILHmfS2UFy2z/HNpZCSOJJ3P3dnWY6hfYNW3DF0nXUA==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.16.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/checksums/node_modules/@aws/lambda-invoke-store": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@aws/lambda-invoke-store/-/lambda-invoke-store-0.3.0.tgz", + "integrity": "sha512-sl4Bm6yiMNYrZKkqqDFWN0UfnWhlS8ivKxrYl+6t0gCLrqr8y3B2IqZZbFRkfaVVp7C/baApyh71P+LeE1A2sQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/checksums/node_modules/@smithy/core": { + "version": "3.33.3", + "resolved": "https://registry.npmjs.org/@smithy/core/-/core-3.33.3.tgz", + "integrity": "sha512-CsOeKq/9kA3y6VJHt+/+VTCtBaxJ4OTFpgrjIUhPpDIKxBci1k2bJaQASF2h/ELWrulGp+t97DZ0mevfAD8idg==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.17.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/checksums/node_modules/@smithy/signature-v4": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-5.7.3.tgz", + "integrity": "sha512-7ImGm+FkHRLcBaRttIAMZ6bzJZWb2cJGoYjq46F2UjycujWzrL9GEN9h4w7eQyXJYnltrUhxbbieBAIRrdqpow==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/core": "^3.33.3", + "@smithy/types": "^4.17.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/checksums/node_modules/@smithy/types": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-4.17.2.tgz", + "integrity": "sha512-FOKpVZob9MPTn2znRzGrnsMHv7BOsKVw3XiP/cOyYLDVZ9qKp4nifIiSCuUU/fIj5Vu0UOAxCFr+qRAtG0NUkA==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/checksums/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, "node_modules/@aws-sdk/client-cognito-identity": { "version": "3.1014.0", "resolved": "https://registry.npmjs.org/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.1014.0.tgz", @@ -326,6 +441,353 @@ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "license": "0BSD" }, + "node_modules/@aws-sdk/client-s3": { + "version": "3.1115.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.1115.0.tgz", + "integrity": "sha512-oeniaXZCRrKMaffnyjOSxp1xJNsuiku2SxyzVI1Bi1Gycpck/dRTVsloSa5E+nBKz1c5y5eMfbK4GAhGUCCC2Q==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/checksums": "^3.1000.28", + "@aws-sdk/core": "^3.977.8", + "@aws-sdk/credential-provider-node": "^3.972.80", + "@aws-sdk/middleware-sdk-s3": "^3.972.74", + "@aws-sdk/signature-v4-multi-region": "^3.996.45", + "@aws-sdk/types": "^3.974.4", + "@smithy/core": "^3.31.1", + "@smithy/fetch-http-handler": "^5.6.13", + "@smithy/node-http-handler": "^4.9.13", + "@smithy/types": "^4.16.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/core": { + "version": "3.977.8", + "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.977.8.tgz", + "integrity": "sha512-7+Kcrkvrk9lM/m7jRhHpT4jCdvzGHsuaSRbF8TdzzkY1mRzp/Ogwf9c7H29k4gGhey0BBWhCWr16+t0J61gwmg==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "^3.974.4", + "@aws-sdk/xml-builder": "^3.972.39", + "@aws/lambda-invoke-store": "^0.3.0", + "@smithy/core": "^3.31.1", + "@smithy/signature-v4": "^5.6.12", + "@smithy/types": "^4.16.1", + "bowser": "^2.11.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/credential-provider-env": { + "version": "3.972.69", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.972.69.tgz", + "integrity": "sha512-AreCFzcB4kH2HF9031Ot0jSJr3KXvRg6e8uDeub20JEVdZU3Bv0sTq1plc7VsT3KiqutlzH7l0j50UcCWHUioA==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.977.8", + "@aws-sdk/types": "^3.974.4", + "@smithy/core": "^3.31.1", + "@smithy/types": "^4.16.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/credential-provider-http": { + "version": "3.972.71", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.972.71.tgz", + "integrity": "sha512-A8ObcqVmDMnk4F9NozZ7JwmUu9Q4xyBJkmyq1C5U+wNM9ht9J7+EuuyabsLWXZnOoTqFaJuYBYTKf5CTipkEjA==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.977.8", + "@aws-sdk/types": "^3.974.4", + "@smithy/core": "^3.31.1", + "@smithy/fetch-http-handler": "^5.6.13", + "@smithy/node-http-handler": "^4.9.13", + "@smithy/types": "^4.16.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/credential-provider-ini": { + "version": "3.973.14", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.973.14.tgz", + "integrity": "sha512-7c+Wti2LsERNWMfm7ySz3/6RPopFW3Nmn7s63Xpcq6R/tRuY5hpvkHA2xVgi5ukJbvok9l0IDtVEvqTtg+X7dw==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.977.8", + "@aws-sdk/credential-provider-env": "^3.972.69", + "@aws-sdk/credential-provider-http": "^3.972.71", + "@aws-sdk/credential-provider-login": "^3.972.76", + "@aws-sdk/credential-provider-process": "^3.972.69", + "@aws-sdk/credential-provider-sso": "^3.973.13", + "@aws-sdk/credential-provider-web-identity": "^3.972.75", + "@aws-sdk/nested-clients": "^3.997.43", + "@aws-sdk/types": "^3.974.4", + "@smithy/core": "^3.31.1", + "@smithy/credential-provider-imds": "^4.4.16", + "@smithy/types": "^4.16.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/credential-provider-login": { + "version": "3.972.76", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-login/-/credential-provider-login-3.972.76.tgz", + "integrity": "sha512-LVixwOnEJfrrfKHeZjBA8pIMTZjNDq8ak8VpcoWUuCJDrSnBNU8POJksULMgvN089P0MXtQYH2Zs627/MK1K0g==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.977.8", + "@aws-sdk/nested-clients": "^3.997.43", + "@aws-sdk/types": "^3.974.4", + "@smithy/core": "^3.31.1", + "@smithy/types": "^4.16.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/credential-provider-node": { + "version": "3.972.80", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.972.80.tgz", + "integrity": "sha512-bE2qh8ww4iClO1jHsBXdOE8FUgzDbdxbyorNjSCoPSkQd51k3jODItuPZfuwcLHZqDXsH+bI4AMHhqtuyR7mSg==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/credential-provider-env": "^3.972.69", + "@aws-sdk/credential-provider-http": "^3.972.71", + "@aws-sdk/credential-provider-ini": "^3.973.14", + "@aws-sdk/credential-provider-process": "^3.972.69", + "@aws-sdk/credential-provider-sso": "^3.973.13", + "@aws-sdk/credential-provider-web-identity": "^3.972.75", + "@aws-sdk/types": "^3.974.4", + "@smithy/core": "^3.31.1", + "@smithy/credential-provider-imds": "^4.4.16", + "@smithy/types": "^4.16.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/credential-provider-process": { + "version": "3.972.69", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.972.69.tgz", + "integrity": "sha512-9kpTNdZTrcqXTfhxM7fgl9Z68ek3Fu5oe3Yf+A/pJGibEqpgZxz2tSY7SinmyCIU2PJ+ygY4FPoBBnLpocMtrQ==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.977.8", + "@aws-sdk/types": "^3.974.4", + "@smithy/core": "^3.31.1", + "@smithy/types": "^4.16.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/credential-provider-sso": { + "version": "3.973.13", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.973.13.tgz", + "integrity": "sha512-Oc81qauMPzUoTnAS2YKpNwY6sY/LUyQTEeaf6yP197WMxkEBQfcKLR1MFpD7+pNTubXnfkH6gwpji+Gc7iyD2Q==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.977.8", + "@aws-sdk/nested-clients": "^3.997.43", + "@aws-sdk/token-providers": "3.1111.0", + "@aws-sdk/types": "^3.974.4", + "@smithy/core": "^3.31.1", + "@smithy/types": "^4.16.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/credential-provider-web-identity": { + "version": "3.972.75", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.972.75.tgz", + "integrity": "sha512-YPN6uoGDgjjjeVFZrcOeCJqmB6zpXoeeNgIjqe+DexJaWqdjVfCCe+VAZwli9Z2h8KhFW8oxkO39emQ1tyz/Mw==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.977.8", + "@aws-sdk/nested-clients": "^3.997.43", + "@aws-sdk/types": "^3.974.4", + "@smithy/core": "^3.31.1", + "@smithy/types": "^4.16.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/nested-clients": { + "version": "3.997.43", + "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.997.43.tgz", + "integrity": "sha512-bit+VpqWNyi3wHxFoTsTliNXimCSL2r2OeDTm7ZrG+YsTZ2D7ofDJ6r/t9PVBn80i6/v0X2h9Tgw6QP2MAKfPw==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.977.8", + "@aws-sdk/signature-v4-multi-region": "^3.996.45", + "@aws-sdk/types": "^3.974.4", + "@smithy/core": "^3.31.1", + "@smithy/fetch-http-handler": "^5.6.13", + "@smithy/node-http-handler": "^4.9.13", + "@smithy/types": "^4.16.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/token-providers": { + "version": "3.1111.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.1111.0.tgz", + "integrity": "sha512-JfljgoVtl+s3Qy21n9a7Z48uCQaOXcN74KJ3TEQfPoB293GrXFSt6HSQJF1sTZ8c/5QedEvd3NjJQMO4u9qa5A==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.977.8", + "@aws-sdk/nested-clients": "^3.997.43", + "@aws-sdk/types": "^3.974.4", + "@smithy/core": "^3.31.1", + "@smithy/types": "^4.16.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/types": { + "version": "3.974.4", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.974.4.tgz", + "integrity": "sha512-dSFDNG00MEz0/xl5gxL62giLd1iYyJsTxZ1I1DOj6lC+bbgLB4TRsYClJg3b62dhXT1uATzsTNXPnC+33EJV3A==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.16.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/xml-builder": { + "version": "3.972.39", + "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.972.39.tgz", + "integrity": "sha512-FTti8DS5MMWXNUWiRwXAJeYS+0GHHiMy0+7XOhcwk63ILHmfS2UFy2z/HNpZCSOJJ3P3dnWY6hfYNW3DF0nXUA==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.16.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/client-s3/node_modules/@aws/lambda-invoke-store": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@aws/lambda-invoke-store/-/lambda-invoke-store-0.3.0.tgz", + "integrity": "sha512-sl4Bm6yiMNYrZKkqqDFWN0UfnWhlS8ivKxrYl+6t0gCLrqr8y3B2IqZZbFRkfaVVp7C/baApyh71P+LeE1A2sQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/client-s3/node_modules/@smithy/core": { + "version": "3.33.3", + "resolved": "https://registry.npmjs.org/@smithy/core/-/core-3.33.3.tgz", + "integrity": "sha512-CsOeKq/9kA3y6VJHt+/+VTCtBaxJ4OTFpgrjIUhPpDIKxBci1k2bJaQASF2h/ELWrulGp+t97DZ0mevfAD8idg==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.17.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/client-s3/node_modules/@smithy/credential-provider-imds": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-4.5.2.tgz", + "integrity": "sha512-A9uSdn72ozbRUSit0eib0TW7nXuNPlaeM0zcGkJ+nE6tFcSDbnmtwoxbTCFBukVQcszDAyvsd7+rTduPTXpygg==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/core": "^3.33.2", + "@smithy/types": "^4.17.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/client-s3/node_modules/@smithy/fetch-http-handler": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-5.7.2.tgz", + "integrity": "sha512-nZyWTmSpJEXl6VtWVMBJve/7x12DZu6sIX1z1a+ZMaHlQQRs9Zpu6NbTe/gmxYXVRpkjxyDYpZ5gx2IM6f/Wkw==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/core": "^3.33.2", + "@smithy/types": "^4.17.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/client-s3/node_modules/@smithy/node-http-handler": { + "version": "4.11.3", + "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.11.3.tgz", + "integrity": "sha512-2jY1tSpERfPfWqyBV2pH+iGFaghVsIJszJNsT7hxtQYhVJpWDyc0LqOWI+nXOxOAHaEfZ4PXXtp1wW1TGpHhkA==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/core": "^3.33.3", + "@smithy/types": "^4.17.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/client-s3/node_modules/@smithy/signature-v4": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-5.7.3.tgz", + "integrity": "sha512-7ImGm+FkHRLcBaRttIAMZ6bzJZWb2cJGoYjq46F2UjycujWzrL9GEN9h4w7eQyXJYnltrUhxbbieBAIRrdqpow==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/core": "^3.33.3", + "@smithy/types": "^4.17.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/client-s3/node_modules/@smithy/types": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-4.17.2.tgz", + "integrity": "sha512-FOKpVZob9MPTn2znRzGrnsMHv7BOsKVw3XiP/cOyYLDVZ9qKp4nifIiSCuUU/fIj5Vu0UOAxCFr+qRAtG0NUkA==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/client-s3/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, "node_modules/@aws-sdk/core": { "version": "3.973.23", "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.973.23.tgz", @@ -684,6 +1146,122 @@ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "license": "0BSD" }, + "node_modules/@aws-sdk/middleware-sdk-s3": { + "version": "3.972.74", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.972.74.tgz", + "integrity": "sha512-2lzoV2z2QO5KJZYGOCnIZ1WVQgzMECvwuzr1xb034a++8QW4U4eGrmC2u4yg1xvNv4TLL/Uv5DLyuAiw0b9z7Q==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.977.8", + "@aws-sdk/signature-v4-multi-region": "^3.996.45", + "@aws-sdk/types": "^3.974.4", + "@smithy/core": "^3.31.1", + "@smithy/types": "^4.16.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/middleware-sdk-s3/node_modules/@aws-sdk/core": { + "version": "3.977.8", + "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.977.8.tgz", + "integrity": "sha512-7+Kcrkvrk9lM/m7jRhHpT4jCdvzGHsuaSRbF8TdzzkY1mRzp/Ogwf9c7H29k4gGhey0BBWhCWr16+t0J61gwmg==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "^3.974.4", + "@aws-sdk/xml-builder": "^3.972.39", + "@aws/lambda-invoke-store": "^0.3.0", + "@smithy/core": "^3.31.1", + "@smithy/signature-v4": "^5.6.12", + "@smithy/types": "^4.16.1", + "bowser": "^2.11.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/middleware-sdk-s3/node_modules/@aws-sdk/types": { + "version": "3.974.4", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.974.4.tgz", + "integrity": "sha512-dSFDNG00MEz0/xl5gxL62giLd1iYyJsTxZ1I1DOj6lC+bbgLB4TRsYClJg3b62dhXT1uATzsTNXPnC+33EJV3A==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.16.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/middleware-sdk-s3/node_modules/@aws-sdk/xml-builder": { + "version": "3.972.39", + "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.972.39.tgz", + "integrity": "sha512-FTti8DS5MMWXNUWiRwXAJeYS+0GHHiMy0+7XOhcwk63ILHmfS2UFy2z/HNpZCSOJJ3P3dnWY6hfYNW3DF0nXUA==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.16.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/middleware-sdk-s3/node_modules/@aws/lambda-invoke-store": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@aws/lambda-invoke-store/-/lambda-invoke-store-0.3.0.tgz", + "integrity": "sha512-sl4Bm6yiMNYrZKkqqDFWN0UfnWhlS8ivKxrYl+6t0gCLrqr8y3B2IqZZbFRkfaVVp7C/baApyh71P+LeE1A2sQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/middleware-sdk-s3/node_modules/@smithy/core": { + "version": "3.33.3", + "resolved": "https://registry.npmjs.org/@smithy/core/-/core-3.33.3.tgz", + "integrity": "sha512-CsOeKq/9kA3y6VJHt+/+VTCtBaxJ4OTFpgrjIUhPpDIKxBci1k2bJaQASF2h/ELWrulGp+t97DZ0mevfAD8idg==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.17.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/middleware-sdk-s3/node_modules/@smithy/signature-v4": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-5.7.3.tgz", + "integrity": "sha512-7ImGm+FkHRLcBaRttIAMZ6bzJZWb2cJGoYjq46F2UjycujWzrL9GEN9h4w7eQyXJYnltrUhxbbieBAIRrdqpow==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/core": "^3.33.3", + "@smithy/types": "^4.17.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/middleware-sdk-s3/node_modules/@smithy/types": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-4.17.2.tgz", + "integrity": "sha512-FOKpVZob9MPTn2znRzGrnsMHv7BOsKVw3XiP/cOyYLDVZ9qKp4nifIiSCuUU/fIj5Vu0UOAxCFr+qRAtG0NUkA==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/middleware-sdk-s3/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, "node_modules/@aws-sdk/middleware-user-agent": { "version": "3.972.24", "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.972.24.tgz", @@ -786,6 +1364,79 @@ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "license": "0BSD" }, + "node_modules/@aws-sdk/signature-v4-multi-region": { + "version": "3.996.45", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.996.45.tgz", + "integrity": "sha512-bBuyztukzXq6plzFGHAWiQt0QXo+HL8b8lX5cFTzkez/74PtS1c0qPFCIVuHkyoT+miH2qOjAcm1/yoro2ESPA==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "^3.974.4", + "@smithy/signature-v4": "^5.6.12", + "@smithy/types": "^4.16.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/signature-v4-multi-region/node_modules/@aws-sdk/types": { + "version": "3.974.4", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.974.4.tgz", + "integrity": "sha512-dSFDNG00MEz0/xl5gxL62giLd1iYyJsTxZ1I1DOj6lC+bbgLB4TRsYClJg3b62dhXT1uATzsTNXPnC+33EJV3A==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.16.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/signature-v4-multi-region/node_modules/@smithy/core": { + "version": "3.33.3", + "resolved": "https://registry.npmjs.org/@smithy/core/-/core-3.33.3.tgz", + "integrity": "sha512-CsOeKq/9kA3y6VJHt+/+VTCtBaxJ4OTFpgrjIUhPpDIKxBci1k2bJaQASF2h/ELWrulGp+t97DZ0mevfAD8idg==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.17.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/signature-v4-multi-region/node_modules/@smithy/signature-v4": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-5.7.3.tgz", + "integrity": "sha512-7ImGm+FkHRLcBaRttIAMZ6bzJZWb2cJGoYjq46F2UjycujWzrL9GEN9h4w7eQyXJYnltrUhxbbieBAIRrdqpow==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/core": "^3.33.3", + "@smithy/types": "^4.17.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/signature-v4-multi-region/node_modules/@smithy/types": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-4.17.2.tgz", + "integrity": "sha512-FOKpVZob9MPTn2znRzGrnsMHv7BOsKVw3XiP/cOyYLDVZ9qKp4nifIiSCuUU/fIj5Vu0UOAxCFr+qRAtG0NUkA==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/signature-v4-multi-region/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, "node_modules/@aws-sdk/token-providers": { "version": "3.1014.0", "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.1014.0.tgz", @@ -6933,16 +7584,38 @@ } }, "node_modules/@mongodb-js/dl-center": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/@mongodb-js/dl-center/-/dl-center-1.6.4.tgz", - "integrity": "sha512-izmNwjKVhkvLqx7IAeUAt05e0Buz4C+xApmz5BCdfXpTV1hD95EM3n/b4CJKpdfGluihDVai6vE9K79PoY7eXw==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@mongodb-js/dl-center/-/dl-center-1.7.0.tgz", + "integrity": "sha512-U1SUTum9u5QOAoLCSZaATx2Gme4YQsR1daQAQrK9GJckX8240k7RPHsAJbVEI9CuV1ld4YiUzCxHSdfINteFVw==", "license": "Apache-2.0", "dependencies": { - "ajv": "^6.12.5", - "aws-sdk": "^2.1441.0", + "@aws-sdk/client-s3": "^3.1098.0", + "ajv": "^8.18.0", "node-fetch": "^2.7.0" } }, + "node_modules/@mongodb-js/dl-center/node_modules/ajv": { + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", + "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@mongodb-js/dl-center/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" + }, "node_modules/@mongodb-js/eslint-config-devtools": { "version": "0.9.9", "resolved": "https://registry.npmjs.org/@mongodb-js/eslint-config-devtools/-/eslint-config-devtools-0.9.9.tgz", @@ -13879,31 +14552,17 @@ "license": "0BSD" }, "node_modules/assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", - "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", - "dev": true, - "license": "MIT", - "dependencies": { - "object-assign": "^4.1.1", - "util": "0.10.3" - } - }, - "node_modules/assert/node_modules/inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha512-8nWq2nLTAwd02jTqJExUYFSD/fKq6VH9Y/oG2accc/kdI0V98Bag8d5a4gi3XHz73rDWa2PvTtvcWYquKqSENA==", - "dev": true, - "license": "ISC" - }, - "node_modules/assert/node_modules/util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha512-5KiHfsmkqacuKjkRkdV7SsfDJ2EGiPsK92s2MhNSY0craxjTdKTtqKsJaCWp4LW33ZZ0OPUv1WO/TFvNQRiQxQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-2.1.0.tgz", + "integrity": "sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==", "dev": true, "license": "MIT", "dependencies": { - "inherits": "2.0.1" + "call-bind": "^1.0.2", + "is-nan": "^1.3.2", + "object-is": "^1.1.5", + "object.assign": "^4.1.4", + "util": "^0.12.5" } }, "node_modules/assertion-error": { @@ -13987,36 +14646,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/aws-sdk": { - "version": "2.1442.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1442.0.tgz", - "integrity": "sha512-Rp6kP813tdlg3R3Zi6Olt5NSutlx1UjhhoogJpEeIUQFXul7t/mu5FpyUZmYRsBN6TPCj9QD0eJOtBaFN4LZtg==", - "license": "Apache-2.0", - "dependencies": { - "buffer": "4.9.2", - "events": "1.1.1", - "ieee754": "1.1.13", - "jmespath": "0.16.0", - "querystring": "0.2.0", - "sax": "1.2.1", - "url": "0.10.3", - "util": "^0.12.4", - "uuid": "8.0.0", - "xml2js": "0.5.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/aws-sdk/node_modules/uuid": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.0.0.tgz", - "integrity": "sha512-jOXGuXZAWdsTH7eZLtyXMqUb9EcWMGZNbL9YcGBJl4MH4nrxHmZJhEHvyLFrkxo+28uLb/NYRcStH48fnD0Vzw==", - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, "node_modules/axe-core": { "version": "4.7.2", "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.7.2.tgz", @@ -15032,17 +15661,6 @@ "node": ">=20.19.0" } }, - "node_modules/buffer": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", - "license": "MIT", - "dependencies": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, "node_modules/buffer-alloc": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", @@ -17551,15 +18169,6 @@ "ieee754": "^1.2.1" } }, - "node_modules/duplexpair/node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "license": "MIT", - "engines": { - "node": ">=0.8.x" - } - }, "node_modules/duplexpair/node_modules/ieee754": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", @@ -18723,12 +19332,12 @@ "license": "MIT" }, "node_modules/events": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", - "integrity": "sha512-kEcvvCBByWXGnZy6JUlgAp2gBIUjfCAV6P6TgT1/aaQKcmuAEC4OZTV1I4EWQLz2gxZw76atuVyvHhTxvi0Flw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "license": "MIT", "engines": { - "node": ">=0.4.x" + "node": ">=0.8.x" } }, "node_modules/events-universal": { @@ -21704,6 +22313,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.2", @@ -22720,15 +23330,6 @@ "dev": true, "license": "MIT" }, - "node_modules/jmespath": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.16.0.tgz", - "integrity": "sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==", - "license": "Apache-2.0", - "engines": { - "node": ">= 0.6.0" - } - }, "node_modules/jose": { "version": "6.0.12", "resolved": "https://registry.npmjs.org/jose/-/jose-6.0.12.tgz", @@ -23266,20 +23867,6 @@ "node": ">=0.4.0" } }, - "node_modules/karma-typescript/node_modules/assert": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-2.1.0.tgz", - "integrity": "sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "is-nan": "^1.3.2", - "object-is": "^1.1.5", - "object.assign": "^4.1.4", - "util": "^0.12.5" - } - }, "node_modules/karma-typescript/node_modules/buffer": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", @@ -23325,16 +23912,6 @@ "url": "https://bevry.me/fund" } }, - "node_modules/karma-typescript/node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.x" - } - }, "node_modules/karma-typescript/node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -29326,14 +29903,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==", - "engines": { - "node": ">=0.4.x" - } - }, "node_modules/querystring-es3": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", @@ -30694,12 +31263,6 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "license": "MIT" }, - "node_modules/sax": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz", - "integrity": "sha512-8I2a3LovHTOpm7NV5yOyO8IHqgVsfK4+UuySrXU8YXkSRX7k6hCV9b3HrkKCr3nMpgj+0bmocaJJWpvp1oc7ZA==", - "license": "ISC" - }, "node_modules/scheduler": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", @@ -33625,16 +34188,6 @@ "punycode": "^2.1.0" } }, - "node_modules/url": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz", - "integrity": "sha512-hzSUW2q06EqL1gKM/a+obYHLIO6ct2hwPuviqTTOcfFVc61UbfJ2Q32+uGL/HCPxKqrdGB5QUwIe7UqlDgwsOQ==", - "license": "MIT", - "dependencies": { - "punycode": "1.3.2", - "querystring": "0.2.0" - } - }, "node_modules/url-parse-lax": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", @@ -33656,16 +34209,11 @@ "node": ">= 4" } }, - "node_modules/url/node_modules/punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==", - "license": "MIT" - }, "node_modules/util": { "version": "0.12.5", "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", + "dev": true, "license": "MIT", "dependencies": { "inherits": "^2.0.3", @@ -34119,16 +34667,6 @@ "node": ">=10.13.0" } }, - "node_modules/webpack/node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.x" - } - }, "node_modules/webpack/node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", @@ -34588,28 +35126,6 @@ "node": ">=16.0.0" } }, - "node_modules/xml2js": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz", - "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==", - "license": "MIT", - "dependencies": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", - "license": "MIT", - "engines": { - "node": ">=4.0" - } - }, "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", @@ -34891,10 +35407,12 @@ "@types/react-dom": "^18.0.8", "@types/text-table": "^0.2.1", "@wojtekmaj/enzyme-adapter-react-17": "^0.8.0", + "assert": "^2.1.0", "babel-loader": "^8.3.0", "buffer": "^6.0.3", "enzyme": "^3.11.0", "eslint": "^7.25.0", + "events": "^3.3.0", "html-webpack-plugin": "^5.5.0", "karma": "^6.3.9", "karma-chrome-launcher": "^3.1.0", @@ -34907,13 +35425,16 @@ "mongodb": "^7.5.0", "path-browserify": "^1.0.1", "prettier": "^2.8.8", + "process": "^0.11.10", "prop-types": "^15.7.2", + "punycode": "^2.3.1", "puppeteer": "^24.31.0", "react": "^17.0.2", "react-dom": "^17.0.2", "react-refresh": "^0.14.0", "rimraf": "^3.0.2", "stream-browserify": "^3.0.0", + "string_decoder": "^1.3.0", "strip-ansi": "^6.0.0", "util": "^0.12.5", "webpack": "^5.99.9", @@ -36241,14 +36762,14 @@ "version": "3.12.0", "license": "Apache-2.0", "dependencies": { + "@aws-sdk/client-s3": "^3.1098.0", "@mongodb-js/devtools-github-repo": "^1.4.2", - "@mongodb-js/dl-center": "^1.6.4", + "@mongodb-js/dl-center": "^1.7.0", "@mongodb-js/mongodb-downloader": "^1.1.7", "@mongodb-js/monorepo-tools": "^1.4.5", "@mongodb-js/signing-utils": "^0.5.14", "@octokit/rest": "^22.0.1", "ajv": "^8.17.1", - "aws-sdk": "^2.674.0", "boxednode": "^3.0.0", "command-exists": "^1.2.9", "download": "^8.0.0", @@ -36686,15 +37207,18 @@ "@mongodb-js/tsconfig-mongosh": "^1.0.0", "@mongosh/cli-repl": "2.10.0", "@mongosh/testing": "2.2.0", - "assert": "^1.5.0", + "assert": "^2.1.0", "bson": "^7.3.1", "buffer": "^6.0.3", "crypto-browserify": "^3.12.0", + "events": "^3.3.0", "https-browserify": "^1.0.0", "os-browserify": "^0.3.0", "path-browserify": "^1.0.1", + "punycode": "^2.3.1", "stream-browserify": "^3.0.0", "stream-http": "^3.2.0", + "string_decoder": "^1.3.0", "util": "^0.12.5", "webpack-merge": "^5.8.0" }, diff --git a/packages/browser-repl/config/webpack.config.base.js b/packages/browser-repl/config/webpack.config.base.js index 88ec6d78fc..66fb4fe0fa 100644 --- a/packages/browser-repl/config/webpack.config.base.js +++ b/packages/browser-repl/config/webpack.config.base.js @@ -14,7 +14,8 @@ module.exports = { module: false, // node specific and require a polyfill // path polyfill is required for following packages: - // async-rewriter2, @mongodb-js/compass-components, mongodb-log-writer, shell-api + // async-rewriter2, @mongodb-js/compass-components, mongodb-log-writer, + // shell-api path: require.resolve('path-browserify'), // stream polyfill is required for following packages: // mongodb-log-writer, @leafygreen-ui/emotion @@ -24,6 +25,23 @@ module.exports = { buffer: require.resolve('buffer/'), // util polyfill is required by browser-repl itself util: require.resolve('util/'), + // events is required by: readable-stream, stream-browserify, node-cache, + // shell-api, browser-runtime-core + events: require.resolve('events/'), + // assert is required by: @babel/helper-module-imports, + // @babel/helper-module-transforms + assert: require.resolve('assert/'), + // process is required by: semver, @mongodb-js/compass-components + process: require.resolve('process/'), + // string_decoder is required by: readable-stream + string_decoder: require.resolve('string_decoder/'), + // punycode is required by: tr46 + punycode: require.resolve('punycode/'), + // Requested by typescript.js behind guarded require() calls that never + // run in a browser, so there is nothing to polyfill. + os: false, + inspector: false, + perf_hooks: false, // compass specific electron: false, '@electron/remote': false, diff --git a/packages/browser-repl/package.json b/packages/browser-repl/package.json index 3cac216a4f..1679d10ae2 100644 --- a/packages/browser-repl/package.json +++ b/packages/browser-repl/package.json @@ -88,10 +88,12 @@ "@types/react-dom": "^18.0.8", "@types/text-table": "^0.2.1", "@wojtekmaj/enzyme-adapter-react-17": "^0.8.0", + "assert": "^2.1.0", "babel-loader": "^8.3.0", "buffer": "^6.0.3", "enzyme": "^3.11.0", "eslint": "^7.25.0", + "events": "^3.3.0", "html-webpack-plugin": "^5.5.0", "karma": "^6.3.9", "karma-chrome-launcher": "^3.1.0", @@ -104,13 +106,16 @@ "mongodb": "^7.5.0", "path-browserify": "^1.0.1", "prettier": "^2.8.8", + "process": "^0.11.10", "prop-types": "^15.7.2", + "punycode": "^2.3.1", "puppeteer": "^24.31.0", "react": "^17.0.2", "react-dom": "^17.0.2", "react-refresh": "^0.14.0", "rimraf": "^3.0.2", "stream-browserify": "^3.0.0", + "string_decoder": "^1.3.0", "strip-ansi": "^6.0.0", "util": "^0.12.5", "webpack": "^5.99.9", diff --git a/packages/build/package.json b/packages/build/package.json index f7e46c9d33..fb9a7bca1c 100644 --- a/packages/build/package.json +++ b/packages/build/package.json @@ -61,14 +61,14 @@ "yaml": "^2.3.1" }, "dependencies": { + "@aws-sdk/client-s3": "^3.1098.0", "@mongodb-js/devtools-github-repo": "^1.4.2", - "@mongodb-js/dl-center": "^1.6.4", + "@mongodb-js/dl-center": "^1.7.0", "@mongodb-js/mongodb-downloader": "^1.1.7", "@mongodb-js/monorepo-tools": "^1.4.5", "@mongodb-js/signing-utils": "^0.5.14", "@octokit/rest": "^22.0.1", "ajv": "^8.17.1", - "aws-sdk": "^2.674.0", "boxednode": "^3.0.0", "command-exists": "^1.2.9", "download": "^8.0.0", diff --git a/packages/build/src/download-center/artifacts.spec.ts b/packages/build/src/download-center/artifacts.spec.ts index 2bf207f6e7..bd5b3d705e 100644 --- a/packages/build/src/download-center/artifacts.spec.ts +++ b/packages/build/src/download-center/artifacts.spec.ts @@ -25,9 +25,11 @@ describe('DownloadCenter artifacts', function () { expect(dlCenter).to.have.been.calledWith({ bucket: 'cdn-origin-compass', - accessKeyId: 'accessKey', - secretAccessKey: 'secretKey', - sessionToken: 'sessionToken', + credentials: { + accessKeyId: 'accessKey', + secretAccessKey: 'secretKey', + sessionToken: 'sessionToken', + }, }); expect(uploadAsset).to.have.been.calledWith( 'compass/artifacts.spec.ts', diff --git a/packages/build/src/download-center/artifacts.ts b/packages/build/src/download-center/artifacts.ts index f95d356ffe..987cd554a0 100644 --- a/packages/build/src/download-center/artifacts.ts +++ b/packages/build/src/download-center/artifacts.ts @@ -12,9 +12,11 @@ export async function uploadArtifactToDownloadCenter( ): Promise { const dlcenter = new DownloadCenter({ bucket: ARTIFACTS_BUCKET, - accessKeyId: awsAccessKeyId, - secretAccessKey: awsSecretAccessKey, - sessionToken: awsSessionToken, + credentials: { + accessKeyId: awsAccessKeyId, + secretAccessKey: awsSecretAccessKey, + sessionToken: awsSessionToken, + }, }); await dlcenter.uploadAsset( diff --git a/packages/build/src/download-center/config.spec.ts b/packages/build/src/download-center/config.spec.ts index 08e8e30b1d..85c284d5fa 100644 --- a/packages/build/src/download-center/config.spec.ts +++ b/packages/build/src/download-center/config.spec.ts @@ -305,7 +305,7 @@ describe('DownloadCenter config', function () { context('when a configuration does not exist', function () { it('publishes the created configuration with the fallback provided in fallback.json', async function () { - downloadConfig.throws({ code: 'NoSuchKey' }); + downloadConfig.throws({ name: 'NoSuchKey' }); await createAndPublishDownloadCenterConfig( outputDir, @@ -325,14 +325,18 @@ describe('DownloadCenter config', function () { expect(dlCenterConfig).to.have.been.calledWith({ bucket: 'info-mongodb-com', - accessKeyId: DUMMY_ACCESS_KEY, - secretAccessKey: DUMMY_SECRET_KEY, + credentials: { + accessKeyId: DUMMY_ACCESS_KEY, + secretAccessKey: DUMMY_SECRET_KEY, + }, }); expect(dlCenterArtifacts).to.have.been.calledWith({ bucket: 'cdn-origin-compass', - accessKeyId: DUMMY_ACCESS_KEY, - secretAccessKey: DUMMY_SECRET_KEY, - sessionToken: DUMMY_SESSION_TOKEN, + credentials: { + accessKeyId: DUMMY_ACCESS_KEY, + secretAccessKey: DUMMY_SECRET_KEY, + sessionToken: DUMMY_SESSION_TOKEN, + }, }); expect(uploadConfig).to.be.calledOnce; @@ -389,14 +393,18 @@ describe('DownloadCenter config', function () { expect(dlCenterConfig).to.have.been.calledWith({ bucket: 'info-mongodb-com', - accessKeyId: DUMMY_ACCESS_KEY, - secretAccessKey: DUMMY_SECRET_KEY, + credentials: { + accessKeyId: DUMMY_ACCESS_KEY, + secretAccessKey: DUMMY_SECRET_KEY, + }, }); expect(dlCenterArtifacts).to.have.been.calledWith({ bucket: 'cdn-origin-compass', - accessKeyId: DUMMY_ACCESS_KEY, - secretAccessKey: DUMMY_SECRET_KEY, - sessionToken: DUMMY_SESSION_TOKEN, + credentials: { + accessKeyId: DUMMY_ACCESS_KEY, + secretAccessKey: DUMMY_SECRET_KEY, + sessionToken: DUMMY_SESSION_TOKEN, + }, }); expect(uploadConfig).to.be.calledOnce; @@ -473,7 +481,10 @@ describe('DownloadCenter config', function () { 'mongosh-versions.json' )); existingUploadedJsonFeed.versions[0].version = '1.10.2'; - downloadAsset.returns(JSON.stringify(existingUploadedJsonFeed)); + downloadAsset.returns({ + transformToString: () => + Promise.resolve(JSON.stringify(existingUploadedJsonFeed)), + }); await createAndPublishDownloadCenterConfig( outputDir, @@ -500,14 +511,18 @@ describe('DownloadCenter config', function () { expect(dlCenterConfig).to.have.been.calledWith({ bucket: 'info-mongodb-com', - accessKeyId: DUMMY_ACCESS_KEY, - secretAccessKey: DUMMY_SECRET_KEY, + credentials: { + accessKeyId: DUMMY_ACCESS_KEY, + secretAccessKey: DUMMY_SECRET_KEY, + }, }); expect(dlCenterArtifacts).to.have.been.calledWith({ bucket: 'cdn-origin-compass', - accessKeyId: DUMMY_ACCESS_KEY, - secretAccessKey: DUMMY_SECRET_KEY, - sessionToken: DUMMY_SESSION_TOKEN, + credentials: { + accessKeyId: DUMMY_ACCESS_KEY, + secretAccessKey: DUMMY_SECRET_KEY, + sessionToken: DUMMY_SESSION_TOKEN, + }, }); expect(uploadConfig).to.be.calledOnce; @@ -626,7 +641,10 @@ describe('DownloadCenter config', function () { downloadAsset = sinon.stub(); dlCenter = sinon.stub(); - downloadAsset.returns(JSON.stringify(existingUploadedJsonFeed)); + downloadAsset.returns({ + transformToString: () => + Promise.resolve(JSON.stringify(existingUploadedJsonFeed)), + }); dlCenter.returns({ downloadConfig, diff --git a/packages/build/src/download-center/config.ts b/packages/build/src/download-center/config.ts index 3761033e5b..0b9fb00ced 100644 --- a/packages/build/src/download-center/config.ts +++ b/packages/build/src/download-center/config.ts @@ -42,11 +42,11 @@ async function getCurrentJsonFeed( ); } catch (err: any) { console.warn('Failed to get existing JSON feed text', err); - if (err?.code !== 'NoSuchKey') throw err; + if (err?.name !== 'NoSuchKey') throw err; } return existingJsonFeedText - ? JSON.parse(existingJsonFeedText.toString()) + ? JSON.parse(await existingJsonFeedText.transformToString()) : undefined; } @@ -67,8 +67,10 @@ export async function createAndPublishDownloadCenterConfig( ): Promise { const dlcenterConfig = new DownloadCenterConfig({ bucket: CONFIGURATIONS_BUCKET, - accessKeyId: awsAccessKeyIdConfig, - secretAccessKey: awsSecretAccessKeyConfig, + credentials: { + accessKeyId: awsAccessKeyIdConfig, + secretAccessKey: awsSecretAccessKeyConfig, + }, }); let existingDownloadCenterConfig: DownloadCenterConfig | undefined; try { @@ -77,7 +79,7 @@ export async function createAndPublishDownloadCenterConfig( ); } catch (err: any) { console.warn('Failed to get existing download center config', err); - if (err?.code !== 'NoSuchKey') { + if (err?.name !== 'NoSuchKey') { throw err; } else { existingDownloadCenterConfig = { ...ARTIFACTS_FALLBACK }; @@ -100,9 +102,11 @@ export async function createAndPublishDownloadCenterConfig( const dlcenterArtifacts = new DownloadCenterArtifacts({ bucket: ARTIFACTS_BUCKET, - accessKeyId: awsAccessKeyIdArtifacts, - secretAccessKey: awsSecretAccessKeyArtifacts, - sessionToken: awsSessionTokenArtifacts, + credentials: { + accessKeyId: awsAccessKeyIdArtifacts, + secretAccessKey: awsSecretAccessKeyArtifacts, + sessionToken: awsSessionTokenArtifacts, + }, }); const existingJsonFeed = await getCurrentJsonFeed(dlcenterArtifacts); @@ -154,9 +158,11 @@ export async function updateJsonFeedCTA( ) { const dlcenterArtifacts = new DownloadCenter({ bucket: ARTIFACTS_BUCKET, - accessKeyId: awsAccessKeyId, - secretAccessKey: awsSecretAccessKey, - sessionToken: awsSessionToken, + credentials: { + accessKeyId: awsAccessKeyId, + secretAccessKey: awsSecretAccessKey, + sessionToken: awsSessionToken, + }, }); const jsonFeed = await getCurrentJsonFeed(dlcenterArtifacts); diff --git a/packages/build/src/evergreen/artifacts.spec.ts b/packages/build/src/evergreen/artifacts.spec.ts index cd2d55c31c..1bf068865a 100644 --- a/packages/build/src/evergreen/artifacts.spec.ts +++ b/packages/build/src/evergreen/artifacts.spec.ts @@ -1,11 +1,79 @@ +import { PutObjectCommand } from '@aws-sdk/client-s3'; import { expect } from 'chai'; import { promises as fs } from 'fs'; import path from 'path'; import rimraf from 'rimraf'; +import sinon from 'sinon'; import { promisify } from 'util'; -import { downloadArtifactFromEvergreen } from './artifacts'; +import { + downloadArtifactFromEvergreen, + uploadArtifactToEvergreen, +} from './artifacts'; describe('evergreen artifacts', function () { + describe('uploadArtifactToEvergreen', function () { + let send: sinon.SinonStub; + let S3: sinon.SinonStub; + + beforeEach(function () { + send = sinon.stub().resolves({}); + S3 = sinon.stub().returns({ send }); + }); + + it('uploads to the evergreen bucket and returns the artifact url', async function () { + const url = await uploadArtifactToEvergreen( + __filename, + 'accessKey', + 'secretKey', + 'mongosh', + 'abc123', + undefined, + S3 as any + ); + + expect(S3).to.have.been.calledWithExactly({ + region: 'us-east-1', + credentials: { + accessKeyId: 'accessKey', + secretAccessKey: 'secretKey', + }, + }); + + expect(send).to.have.been.calledOnce; + const command = send.lastCall.args[0]; + expect(command).to.be.instanceOf(PutObjectCommand); + expect(command.input).to.include({ + ACL: 'public-read', + Bucket: 'mciuploads', + Key: 'mongosh/abc123/artifacts.spec.ts', + }); + + expect(url).to.equal( + 'https://s3.amazonaws.com/mciuploads/mongosh/abc123/artifacts.spec.ts' + ); + }); + + it('includes the extra tag in the object key when provided', async function () { + const url = await uploadArtifactToEvergreen( + __filename, + 'accessKey', + 'secretKey', + 'mongosh', + 'abc123', + 'extra-tag', + S3 as any + ); + + expect(send.lastCall.args[0].input).to.have.property( + 'Key', + 'mongosh/abc123/extra-tag/artifacts.spec.ts' + ); + expect(url).to.equal( + 'https://s3.amazonaws.com/mciuploads/mongosh/abc123/extra-tag/artifacts.spec.ts' + ); + }); + }); + describe('downloadArtifactFromEvergreen', function () { let tmpDir: string; diff --git a/packages/build/src/evergreen/artifacts.ts b/packages/build/src/evergreen/artifacts.ts index 807b79dd3b..5b540f13fc 100644 --- a/packages/build/src/evergreen/artifacts.ts +++ b/packages/build/src/evergreen/artifacts.ts @@ -1,4 +1,4 @@ -import S3 from 'aws-sdk/clients/s3'; +import { PutObjectCommand, S3Client } from '@aws-sdk/client-s3'; import download from 'download'; import fs from 'fs'; import path from 'path'; @@ -8,6 +8,11 @@ import path from 'path'; */ const BUCKET = 'mciuploads'; +/** + * The region the S3 bucket lives in. + */ +const BUCKET_REGION = 'us-east-1'; + /** * Upload the provided argument to evergreen s3 bucket. * @@ -25,7 +30,8 @@ export async function uploadArtifactToEvergreen( awsSecret: string, project: string, revisionOrVersion: string, - artifactUrlExtraTag: string | undefined + artifactUrlExtraTag: string | undefined, + S3: typeof S3Client = S3Client ): Promise { const key = getS3ObjectKey( project, @@ -40,18 +46,21 @@ export async function uploadArtifactToEvergreen( ); const s3 = new S3({ - accessKeyId: awsKey, - secretAccessKey: awsSecret, + region: BUCKET_REGION, + credentials: { + accessKeyId: awsKey, + secretAccessKey: awsSecret, + }, }); - await s3 - .upload({ + await s3.send( + new PutObjectCommand({ ACL: 'public-read', Bucket: BUCKET, Key: key, Body: fs.createReadStream(artifact), }) - .promise(); + ); const url = getArtifactUrl( project, diff --git a/packages/java-shell/package.json b/packages/java-shell/package.json index 76b14ea68a..62b0f368c6 100644 --- a/packages/java-shell/package.json +++ b/packages/java-shell/package.json @@ -20,13 +20,16 @@ "devDependencies": { "@mongodb-js/tsconfig-mongosh": "^1.0.0", "@mongosh/cli-repl": "2.10.0", - "assert": "^1.5.0", + "assert": "^2.1.0", "buffer": "^6.0.3", "crypto-browserify": "^3.12.0", + "events": "^3.3.0", "stream-http": "^3.2.0", "https-browserify": "^1.0.0", "os-browserify": "^0.3.0", "path-browserify": "^1.0.1", + "punycode": "^2.3.1", + "string_decoder": "^1.3.0", "stream-browserify": "^3.0.0", "util": "^0.12.5", "webpack-merge": "^5.8.0", diff --git a/packages/java-shell/webpack.config.js b/packages/java-shell/webpack.config.js index 50b0a653b5..2b302607d3 100644 --- a/packages/java-shell/webpack.config.js +++ b/packages/java-shell/webpack.config.js @@ -14,7 +14,7 @@ const config = { }, resolve: { alias: { - assert: require.resolve('assert'), + assert: require.resolve('assert/'), crypto: require.resolve('crypto-browserify'), http: require.resolve('stream-http'), https: require.resolve('https-browserify'), @@ -25,6 +25,21 @@ const config = { module: false, tr46: require.resolve('tr46') }, + fallback: { + // required by readable-stream, ripemd160, safe-buffer, safer-buffer + buffer: require.resolve('buffer/'), + // required by readable-stream + events: require.resolve('events/'), + // required by readable-stream, cipher-base + string_decoder: require.resolve('string_decoder/'), + // required by shell-api, shell-bson, readable-stream + util: require.resolve('util/'), + // required by tr46 + punycode: require.resolve('punycode/'), + // shell-evaluator requires v8 inside a try/catch to detect Node.js, so + // there is nothing to polyfill for a browser bundle. + v8: false + }, }, entry: './src/main/js/all.js', target: 'web',