From 5fc4eba93dd44a1f2fa1fdd81a686746242e887c Mon Sep 17 00:00:00 2001 From: Nicolas Thouvenin Date: Tue, 6 Aug 2024 15:34:33 +0200 Subject: [PATCH 01/19] upgrade mongodb driver --- package-lock.json | 1978 +++++++++++++-------------------------------- package.json | 2 +- 2 files changed, 549 insertions(+), 1431 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5a6955424..4634ee40b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -95,7 +95,7 @@ "mime": "1.6.0", "mime-types": "2.1.35", "moment": "2.29.4", - "mongodb": "4.17.1", + "mongodb": "6.8.0", "mongodb-restore": "1.6.2", "mui-file-dropzone": "4.0.2", "multistream": "^2.1.1", @@ -346,735 +346,482 @@ "license": "0BSD", "optional": true }, - "node_modules/@aws-sdk/client-cognito-identity": { - "version": "3.454.0", + "node_modules/@aws-sdk/types": { + "version": "3.451.0", "license": "Apache-2.0", "optional": true, "dependencies": { - "@aws-crypto/sha256-browser": "3.0.0", - "@aws-crypto/sha256-js": "3.0.0", - "@aws-sdk/client-sts": "3.454.0", - "@aws-sdk/core": "3.451.0", - "@aws-sdk/credential-provider-node": "3.451.0", - "@aws-sdk/middleware-host-header": "3.451.0", - "@aws-sdk/middleware-logger": "3.451.0", - "@aws-sdk/middleware-recursion-detection": "3.451.0", - "@aws-sdk/middleware-signing": "3.451.0", - "@aws-sdk/middleware-user-agent": "3.451.0", - "@aws-sdk/region-config-resolver": "3.451.0", - "@aws-sdk/types": "3.451.0", - "@aws-sdk/util-endpoints": "3.451.0", - "@aws-sdk/util-user-agent-browser": "3.451.0", - "@aws-sdk/util-user-agent-node": "3.451.0", - "@smithy/config-resolver": "^2.0.18", - "@smithy/fetch-http-handler": "^2.2.6", - "@smithy/hash-node": "^2.0.15", - "@smithy/invalid-dependency": "^2.0.13", - "@smithy/middleware-content-length": "^2.0.15", - "@smithy/middleware-endpoint": "^2.2.0", - "@smithy/middleware-retry": "^2.0.20", - "@smithy/middleware-serde": "^2.0.13", - "@smithy/middleware-stack": "^2.0.7", - "@smithy/node-config-provider": "^2.1.5", - "@smithy/node-http-handler": "^2.1.9", - "@smithy/protocol-http": "^3.0.9", - "@smithy/smithy-client": "^2.1.15", "@smithy/types": "^2.5.0", - "@smithy/url-parser": "^2.0.13", - "@smithy/util-base64": "^2.0.1", - "@smithy/util-body-length-browser": "^2.0.0", - "@smithy/util-body-length-node": "^2.1.0", - "@smithy/util-defaults-mode-browser": "^2.0.19", - "@smithy/util-defaults-mode-node": "^2.0.25", - "@smithy/util-endpoints": "^1.0.4", - "@smithy/util-retry": "^2.0.6", - "@smithy/util-utf8": "^2.0.2", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-sso": { - "version": "3.451.0", + "node_modules/@aws-sdk/util-locate-window": { + "version": "3.310.0", "license": "Apache-2.0", "optional": true, "dependencies": { - "@aws-crypto/sha256-browser": "3.0.0", - "@aws-crypto/sha256-js": "3.0.0", - "@aws-sdk/core": "3.451.0", - "@aws-sdk/middleware-host-header": "3.451.0", - "@aws-sdk/middleware-logger": "3.451.0", - "@aws-sdk/middleware-recursion-detection": "3.451.0", - "@aws-sdk/middleware-user-agent": "3.451.0", - "@aws-sdk/region-config-resolver": "3.451.0", - "@aws-sdk/types": "3.451.0", - "@aws-sdk/util-endpoints": "3.451.0", - "@aws-sdk/util-user-agent-browser": "3.451.0", - "@aws-sdk/util-user-agent-node": "3.451.0", - "@smithy/config-resolver": "^2.0.18", - "@smithy/fetch-http-handler": "^2.2.6", - "@smithy/hash-node": "^2.0.15", - "@smithy/invalid-dependency": "^2.0.13", - "@smithy/middleware-content-length": "^2.0.15", - "@smithy/middleware-endpoint": "^2.2.0", - "@smithy/middleware-retry": "^2.0.20", - "@smithy/middleware-serde": "^2.0.13", - "@smithy/middleware-stack": "^2.0.7", - "@smithy/node-config-provider": "^2.1.5", - "@smithy/node-http-handler": "^2.1.9", - "@smithy/protocol-http": "^3.0.9", - "@smithy/smithy-client": "^2.1.15", - "@smithy/types": "^2.5.0", - "@smithy/url-parser": "^2.0.13", - "@smithy/util-base64": "^2.0.1", - "@smithy/util-body-length-browser": "^2.0.0", - "@smithy/util-body-length-node": "^2.1.0", - "@smithy/util-defaults-mode-browser": "^2.0.19", - "@smithy/util-defaults-mode-node": "^2.0.25", - "@smithy/util-endpoints": "^1.0.4", - "@smithy/util-retry": "^2.0.6", - "@smithy/util-utf8": "^2.0.2", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-sts": { - "version": "3.454.0", + "node_modules/@aws-sdk/util-utf8-browser": { + "version": "3.259.0", "license": "Apache-2.0", "optional": true, "dependencies": { - "@aws-crypto/sha256-browser": "3.0.0", - "@aws-crypto/sha256-js": "3.0.0", - "@aws-sdk/core": "3.451.0", - "@aws-sdk/credential-provider-node": "3.451.0", - "@aws-sdk/middleware-host-header": "3.451.0", - "@aws-sdk/middleware-logger": "3.451.0", - "@aws-sdk/middleware-recursion-detection": "3.451.0", - "@aws-sdk/middleware-sdk-sts": "3.451.0", - "@aws-sdk/middleware-signing": "3.451.0", - "@aws-sdk/middleware-user-agent": "3.451.0", - "@aws-sdk/region-config-resolver": "3.451.0", - "@aws-sdk/types": "3.451.0", - "@aws-sdk/util-endpoints": "3.451.0", - "@aws-sdk/util-user-agent-browser": "3.451.0", - "@aws-sdk/util-user-agent-node": "3.451.0", - "@smithy/config-resolver": "^2.0.18", - "@smithy/fetch-http-handler": "^2.2.6", - "@smithy/hash-node": "^2.0.15", - "@smithy/invalid-dependency": "^2.0.13", - "@smithy/middleware-content-length": "^2.0.15", - "@smithy/middleware-endpoint": "^2.2.0", - "@smithy/middleware-retry": "^2.0.20", - "@smithy/middleware-serde": "^2.0.13", - "@smithy/middleware-stack": "^2.0.7", - "@smithy/node-config-provider": "^2.1.5", - "@smithy/node-http-handler": "^2.1.9", - "@smithy/protocol-http": "^3.0.9", - "@smithy/smithy-client": "^2.1.15", - "@smithy/types": "^2.5.0", - "@smithy/url-parser": "^2.0.13", - "@smithy/util-base64": "^2.0.1", - "@smithy/util-body-length-browser": "^2.0.0", - "@smithy/util-body-length-node": "^2.1.0", - "@smithy/util-defaults-mode-browser": "^2.0.19", - "@smithy/util-defaults-mode-node": "^2.0.25", - "@smithy/util-endpoints": "^1.0.4", - "@smithy/util-retry": "^2.0.6", - "@smithy/util-utf8": "^2.0.2", - "fast-xml-parser": "4.2.5", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" + "tslib": "^2.3.1" } }, - "node_modules/@aws-sdk/core": { - "version": "3.451.0", - "license": "Apache-2.0", - "optional": true, + "node_modules/@babel/cli": { + "version": "7.23.9", + "license": "MIT", "dependencies": { - "@smithy/smithy-client": "^2.1.15", - "tslib": "^2.5.0" + "@jridgewell/trace-mapping": "^0.3.17", + "commander": "^4.0.1", + "convert-source-map": "^2.0.0", + "fs-readdir-recursive": "^1.1.0", + "glob": "^7.2.0", + "make-dir": "^2.1.0", + "slash": "^2.0.0" + }, + "bin": { + "babel": "bin/babel.js", + "babel-external-helpers": "bin/babel-external-helpers.js" }, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" + }, + "optionalDependencies": { + "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents.3", + "chokidar": "^3.4.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@aws-sdk/credential-provider-cognito-identity": { - "version": "3.454.0", - "license": "Apache-2.0", - "optional": true, + "node_modules/@babel/cli/node_modules/convert-source-map": { + "version": "2.0.0", + "license": "MIT" + }, + "node_modules/@babel/code-frame": { + "version": "7.23.5", + "license": "MIT", "dependencies": { - "@aws-sdk/client-cognito-identity": "3.454.0", - "@aws-sdk/types": "3.451.0", - "@smithy/property-provider": "^2.0.0", - "@smithy/types": "^2.5.0", - "tslib": "^2.5.0" + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" }, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" } }, - "node_modules/@aws-sdk/credential-provider-env": { - "version": "3.451.0", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@aws-sdk/types": "3.451.0", - "@smithy/property-provider": "^2.0.0", - "@smithy/types": "^2.5.0", - "tslib": "^2.5.0" - }, + "node_modules/@babel/compat-data": { + "version": "7.23.5", + "license": "MIT", "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" } }, - "node_modules/@aws-sdk/credential-provider-http": { - "version": "3.451.0", - "license": "Apache-2.0", - "optional": true, + "node_modules/@babel/core": { + "version": "7.23.9", + "license": "MIT", "dependencies": { - "@aws-sdk/types": "3.451.0", - "@smithy/fetch-http-handler": "^2.2.6", - "@smithy/node-http-handler": "^2.1.9", - "@smithy/property-provider": "^2.0.0", - "@smithy/protocol-http": "^3.0.9", - "@smithy/smithy-client": "^2.1.15", - "@smithy/types": "^2.5.0", - "@smithy/util-stream": "^2.0.20", - "tslib": "^2.5.0" + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.23.9", + "@babel/parser": "^7.23.9", + "@babel/template": "^7.23.9", + "@babel/traverse": "^7.23.9", + "@babel/types": "^7.23.9", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" }, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" } }, - "node_modules/@aws-sdk/credential-provider-ini": { - "version": "3.451.0", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@aws-sdk/credential-provider-env": "3.451.0", - "@aws-sdk/credential-provider-process": "3.451.0", - "@aws-sdk/credential-provider-sso": "3.451.0", - "@aws-sdk/credential-provider-web-identity": "3.451.0", - "@aws-sdk/types": "3.451.0", - "@smithy/credential-provider-imds": "^2.0.0", - "@smithy/property-provider": "^2.0.0", - "@smithy/shared-ini-file-loader": "^2.0.6", - "@smithy/types": "^2.5.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" + "node_modules/@babel/core/node_modules/convert-source-map": { + "version": "2.0.0", + "license": "MIT" + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/@aws-sdk/credential-provider-node": { - "version": "3.451.0", - "license": "Apache-2.0", - "optional": true, + "node_modules/@babel/eslint-parser": { + "version": "7.23.10", + "dev": true, + "license": "MIT", "dependencies": { - "@aws-sdk/credential-provider-env": "3.451.0", - "@aws-sdk/credential-provider-ini": "3.451.0", - "@aws-sdk/credential-provider-process": "3.451.0", - "@aws-sdk/credential-provider-sso": "3.451.0", - "@aws-sdk/credential-provider-web-identity": "3.451.0", - "@aws-sdk/types": "3.451.0", - "@smithy/credential-provider-imds": "^2.0.0", - "@smithy/property-provider": "^2.0.0", - "@smithy/shared-ini-file-loader": "^2.0.6", - "@smithy/types": "^2.5.0", - "tslib": "^2.5.0" + "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", + "eslint-visitor-keys": "^2.1.0", + "semver": "^6.3.1" }, "engines": { - "node": ">=14.0.0" + "node": "^10.13.0 || ^12.13.0 || >=14.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.11.0", + "eslint": "^7.5.0 || ^8.0.0" } }, - "node_modules/@aws-sdk/credential-provider-process": { - "version": "3.451.0", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@aws-sdk/types": "3.451.0", - "@smithy/property-provider": "^2.0.0", - "@smithy/shared-ini-file-loader": "^2.0.6", - "@smithy/types": "^2.5.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" + "node_modules/@babel/eslint-parser/node_modules/semver": { + "version": "6.3.1", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/@aws-sdk/credential-provider-sso": { - "version": "3.451.0", - "license": "Apache-2.0", - "optional": true, + "node_modules/@babel/generator": { + "version": "7.23.6", + "license": "MIT", "dependencies": { - "@aws-sdk/client-sso": "3.451.0", - "@aws-sdk/token-providers": "3.451.0", - "@aws-sdk/types": "3.451.0", - "@smithy/property-provider": "^2.0.0", - "@smithy/shared-ini-file-loader": "^2.0.6", - "@smithy/types": "^2.5.0", - "tslib": "^2.5.0" + "@babel/types": "^7.23.6", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" }, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" } }, - "node_modules/@aws-sdk/credential-provider-web-identity": { - "version": "3.451.0", - "license": "Apache-2.0", - "optional": true, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "license": "MIT", "dependencies": { - "@aws-sdk/types": "3.451.0", - "@smithy/property-provider": "^2.0.0", - "@smithy/types": "^2.5.0", - "tslib": "^2.5.0" + "@babel/types": "^7.22.5" }, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" } }, - "node_modules/@aws-sdk/credential-providers": { - "version": "3.454.0", - "license": "Apache-2.0", - "optional": true, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.22.15", + "license": "MIT", "dependencies": { - "@aws-sdk/client-cognito-identity": "3.454.0", - "@aws-sdk/client-sso": "3.451.0", - "@aws-sdk/client-sts": "3.454.0", - "@aws-sdk/credential-provider-cognito-identity": "3.454.0", - "@aws-sdk/credential-provider-env": "3.451.0", - "@aws-sdk/credential-provider-http": "3.451.0", - "@aws-sdk/credential-provider-ini": "3.451.0", - "@aws-sdk/credential-provider-node": "3.451.0", - "@aws-sdk/credential-provider-process": "3.451.0", - "@aws-sdk/credential-provider-sso": "3.451.0", - "@aws-sdk/credential-provider-web-identity": "3.451.0", - "@aws-sdk/types": "3.451.0", - "@smithy/credential-provider-imds": "^2.0.0", - "@smithy/property-provider": "^2.0.0", - "@smithy/types": "^2.5.0", - "tslib": "^2.5.0" + "@babel/types": "^7.22.15" }, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" } }, - "node_modules/@aws-sdk/middleware-host-header": { - "version": "3.451.0", - "license": "Apache-2.0", - "optional": true, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.23.6", + "license": "MIT", "dependencies": { - "@aws-sdk/types": "3.451.0", - "@smithy/protocol-http": "^3.0.9", - "@smithy/types": "^2.5.0", - "tslib": "^2.5.0" + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" }, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" } }, - "node_modules/@aws-sdk/middleware-logger": { - "version": "3.451.0", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@aws-sdk/types": "3.451.0", - "@smithy/types": "^2.5.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/@aws-sdk/middleware-recursion-detection": { - "version": "3.451.0", - "license": "Apache-2.0", - "optional": true, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.22.15", + "license": "MIT", "dependencies": { - "@aws-sdk/types": "3.451.0", - "@smithy/protocol-http": "^3.0.9", - "@smithy/types": "^2.5.0", - "tslib": "^2.5.0" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" }, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@aws-sdk/middleware-sdk-sts": { - "version": "3.451.0", - "license": "Apache-2.0", - "optional": true, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.22.15", + "license": "MIT", "dependencies": { - "@aws-sdk/middleware-signing": "3.451.0", - "@aws-sdk/types": "3.451.0", - "@smithy/types": "^2.5.0", - "tslib": "^2.5.0" + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" }, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@aws-sdk/middleware-signing": { - "version": "3.451.0", - "license": "Apache-2.0", - "optional": true, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { + "version": "6.3.1", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.5.0", + "license": "MIT", "dependencies": { - "@aws-sdk/types": "3.451.0", - "@smithy/property-provider": "^2.0.0", - "@smithy/protocol-http": "^3.0.9", - "@smithy/signature-v4": "^2.0.0", - "@smithy/types": "^2.5.0", - "@smithy/util-middleware": "^2.0.6", - "tslib": "^2.5.0" + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "license": "MIT", "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" } }, - "node_modules/@aws-sdk/middleware-user-agent": { - "version": "3.451.0", - "license": "Apache-2.0", - "optional": true, + "node_modules/@babel/helper-function-name": { + "version": "7.23.0", + "license": "MIT", "dependencies": { - "@aws-sdk/types": "3.451.0", - "@aws-sdk/util-endpoints": "3.451.0", - "@smithy/protocol-http": "^3.0.9", - "@smithy/types": "^2.5.0", - "tslib": "^2.5.0" + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" }, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" } }, - "node_modules/@aws-sdk/region-config-resolver": { - "version": "3.451.0", - "license": "Apache-2.0", - "optional": true, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "license": "MIT", "dependencies": { - "@smithy/node-config-provider": "^2.1.5", - "@smithy/types": "^2.5.0", - "@smithy/util-config-provider": "^2.0.0", - "@smithy/util-middleware": "^2.0.6", - "tslib": "^2.5.0" + "@babel/types": "^7.22.5" }, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" } }, - "node_modules/@aws-sdk/token-providers": { - "version": "3.451.0", - "license": "Apache-2.0", - "optional": true, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.23.0", + "license": "MIT", "dependencies": { - "@aws-crypto/sha256-browser": "3.0.0", - "@aws-crypto/sha256-js": "3.0.0", - "@aws-sdk/middleware-host-header": "3.451.0", - "@aws-sdk/middleware-logger": "3.451.0", - "@aws-sdk/middleware-recursion-detection": "3.451.0", - "@aws-sdk/middleware-user-agent": "3.451.0", - "@aws-sdk/region-config-resolver": "3.451.0", - "@aws-sdk/types": "3.451.0", - "@aws-sdk/util-endpoints": "3.451.0", - "@aws-sdk/util-user-agent-browser": "3.451.0", - "@aws-sdk/util-user-agent-node": "3.451.0", - "@smithy/config-resolver": "^2.0.18", - "@smithy/fetch-http-handler": "^2.2.6", - "@smithy/hash-node": "^2.0.15", - "@smithy/invalid-dependency": "^2.0.13", - "@smithy/middleware-content-length": "^2.0.15", - "@smithy/middleware-endpoint": "^2.2.0", - "@smithy/middleware-retry": "^2.0.20", - "@smithy/middleware-serde": "^2.0.13", - "@smithy/middleware-stack": "^2.0.7", - "@smithy/node-config-provider": "^2.1.5", - "@smithy/node-http-handler": "^2.1.9", - "@smithy/property-provider": "^2.0.0", - "@smithy/protocol-http": "^3.0.9", - "@smithy/shared-ini-file-loader": "^2.0.6", - "@smithy/smithy-client": "^2.1.15", - "@smithy/types": "^2.5.0", - "@smithy/url-parser": "^2.0.13", - "@smithy/util-base64": "^2.0.1", - "@smithy/util-body-length-browser": "^2.0.0", - "@smithy/util-body-length-node": "^2.1.0", - "@smithy/util-defaults-mode-browser": "^2.0.19", - "@smithy/util-defaults-mode-node": "^2.0.25", - "@smithy/util-endpoints": "^1.0.4", - "@smithy/util-retry": "^2.0.6", - "@smithy/util-utf8": "^2.0.2", - "tslib": "^2.5.0" + "@babel/types": "^7.23.0" }, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" } }, - "node_modules/@aws-sdk/types": { - "version": "3.451.0", - "license": "Apache-2.0", - "optional": true, + "node_modules/@babel/helper-module-imports": { + "version": "7.22.15", + "license": "MIT", "dependencies": { - "@smithy/types": "^2.5.0", - "tslib": "^2.5.0" + "@babel/types": "^7.22.15" }, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" } }, - "node_modules/@aws-sdk/util-endpoints": { - "version": "3.451.0", - "license": "Apache-2.0", - "optional": true, + "node_modules/@babel/helper-module-transforms": { + "version": "7.23.3", + "license": "MIT", "dependencies": { - "@aws-sdk/types": "3.451.0", - "@smithy/util-endpoints": "^1.0.4", - "tslib": "^2.5.0" + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" }, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@aws-sdk/util-locate-window": { - "version": "3.310.0", - "license": "Apache-2.0", - "optional": true, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.22.5", + "license": "MIT", "dependencies": { - "tslib": "^2.5.0" + "@babel/types": "^7.22.5" }, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" } }, - "node_modules/@aws-sdk/util-user-agent-browser": { - "version": "3.451.0", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@aws-sdk/types": "3.451.0", - "@smithy/types": "^2.5.0", - "bowser": "^2.11.0", - "tslib": "^2.5.0" + "node_modules/@babel/helper-plugin-utils": { + "version": "7.22.5", + "license": "MIT", + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@aws-sdk/util-user-agent-browser/node_modules/bowser": { - "version": "2.11.0", + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.22.20", "license": "MIT", - "optional": true - }, - "node_modules/@aws-sdk/util-user-agent-node": { - "version": "3.451.0", - "license": "Apache-2.0", - "optional": true, "dependencies": { - "@aws-sdk/types": "3.451.0", - "@smithy/node-config-provider": "^2.1.5", - "@smithy/types": "^2.5.0", - "tslib": "^2.5.0" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-wrap-function": "^7.22.20" }, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" }, "peerDependencies": { - "aws-crt": ">=1.0.0" - }, - "peerDependenciesMeta": { - "aws-crt": { - "optional": true - } - } - }, - "node_modules/@aws-sdk/util-utf8-browser": { - "version": "3.259.0", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "tslib": "^2.3.1" + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/cli": { - "version": "7.23.9", + "node_modules/@babel/helper-replace-supers": { + "version": "7.22.20", "license": "MIT", "dependencies": { - "@jridgewell/trace-mapping": "^0.3.17", - "commander": "^4.0.1", - "convert-source-map": "^2.0.0", - "fs-readdir-recursive": "^1.1.0", - "glob": "^7.2.0", - "make-dir": "^2.1.0", - "slash": "^2.0.0" - }, - "bin": { - "babel": "bin/babel.js", - "babel-external-helpers": "bin/babel-external-helpers.js" + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-optimise-call-expression": "^7.22.5" }, "engines": { "node": ">=6.9.0" }, - "optionalDependencies": { - "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents.3", - "chokidar": "^3.4.0" - }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/cli/node_modules/convert-source-map": { - "version": "2.0.0", - "license": "MIT" - }, - "node_modules/@babel/code-frame": { - "version": "7.23.5", + "node_modules/@babel/helper-simple-access": { + "version": "7.22.5", "license": "MIT", "dependencies": { - "@babel/highlight": "^7.23.4", - "chalk": "^2.4.2" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/compat-data": { - "version": "7.23.5", + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.22.5", "license": "MIT", + "dependencies": { + "@babel/types": "^7.22.5" + }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/core": { - "version": "7.23.9", + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", "license": "MIT", "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.6", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.23.9", - "@babel/parser": "^7.23.9", - "@babel/template": "^7.23.9", - "@babel/traverse": "^7.23.9", - "@babel/types": "^7.23.9", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" } }, - "node_modules/@babel/core/node_modules/convert-source-map": { - "version": "2.0.0", - "license": "MIT" - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.1", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "node_modules/@babel/helper-string-parser": { + "version": "7.23.4", + "license": "MIT", + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@babel/eslint-parser": { - "version": "7.23.10", - "dev": true, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.20", "license": "MIT", - "dependencies": { - "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", - "eslint-visitor-keys": "^2.1.0", - "semver": "^6.3.1" - }, "engines": { - "node": "^10.13.0 || ^12.13.0 || >=14.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.11.0", - "eslint": "^7.5.0 || ^8.0.0" - } - }, - "node_modules/@babel/eslint-parser/node_modules/semver": { - "version": "6.3.1", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "node": ">=6.9.0" } }, - "node_modules/@babel/generator": { - "version": "7.23.6", + "node_modules/@babel/helper-validator-option": { + "version": "7.23.5", "license": "MIT", - "dependencies": { - "@babel/types": "^7.23.6", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.22.5", + "node_modules/@babel/helper-wrap-function": { + "version": "7.22.20", "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/helper-function-name": "^7.22.5", + "@babel/template": "^7.22.15", + "@babel/types": "^7.22.19" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.22.15", + "node_modules/@babel/helpers": { + "version": "7.23.9", "license": "MIT", "dependencies": { - "@babel/types": "^7.22.15" + "@babel/template": "^7.23.9", + "@babel/traverse": "^7.23.9", + "@babel/types": "^7.23.9" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.23.6", + "node_modules/@babel/highlight": { + "version": "7.23.4", "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.23.5", - "@babel/helper-validator-option": "^7.23.5", - "browserslist": "^4.22.2", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.1", - "license": "ISC", + "node_modules/@babel/parser": { + "version": "7.23.9", + "license": "MIT", "bin": { - "semver": "bin/semver.js" + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" } }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.22.15", + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.23.3", "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-member-expression-to-functions": "^7.22.15", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "semver": "^6.3.1" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1083,435 +830,170 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { - "version": "6.3.1", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.22.15", + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.23.3", "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "regexpu-core": "^5.3.1", - "semver": "^6.3.1" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.23.3" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { - "version": "6.3.1", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "@babel/core": "^7.13.0" } }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.5.0", + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.23.7", "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", "license": "MIT", "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-function-name": { - "version": "7.23.0", + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", "license": "MIT", "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" + "@babel/helper-plugin-utils": "^7.8.0" }, - "engines": { - "node": ">=6.9.0" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/helper-plugin-utils": "^7.8.0" }, - "engines": { - "node": ">=6.9.0" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.23.0", + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", "license": "MIT", "dependencies": { - "@babel/types": "^7.23.0" + "@babel/helper-plugin-utils": "^7.12.13" }, - "engines": { - "node": ">=6.9.0" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-module-imports": { - "version": "7.22.15", + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", "license": "MIT", "dependencies": { - "@babel/types": "^7.22.15" + "@babel/helper-plugin-utils": "^7.14.5" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.23.3", + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.22.5", + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/helper-plugin-utils": "^7.8.3" }, - "engines": { - "node": ">=6.9.0" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.22.5", + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.23.3", "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.22.20", + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.23.3", "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-wrap-function": "^7.22.20" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.22.20", + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-member-expression-to-functions": "^7.22.15", - "@babel/helper-optimise-call-expression": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-plugin-utils": "^7.10.4" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/helper-plugin-utils": "^7.8.0" }, - "engines": { - "node": ">=6.9.0" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "node_modules/@babel/plugin-syntax-jsx": { "version": "7.22.5", "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.23.4", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.23.5", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.22.20", - "license": "MIT", - "dependencies": { - "@babel/helper-function-name": "^7.22.5", - "@babel/template": "^7.22.15", - "@babel/types": "^7.22.19" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.23.9", - "license": "MIT", - "dependencies": { - "@babel/template": "^7.23.9", - "@babel/traverse": "^7.23.9", - "@babel/types": "^7.23.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.23.4", - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.23.9", - "license": "MIT", - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.23.3", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.23.3", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.23.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.13.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.23.7", - "license": "MIT", - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0-placeholder-for-preset-env.2", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.23.3", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.23.3", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.22.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" @@ -6107,9 +5589,9 @@ "license": "MIT" }, "node_modules/@mongodb-js/saslprep": { - "version": "1.1.1", - "license": "MIT", - "optional": true, + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.1.8.tgz", + "integrity": "sha512-qKwC/M/nNNaKUBMQ0nuzm47b7ZYWQHN3pcXq4IIcoSBc2hOIrflAxJduIvvqmhoz3gR2TacTAs8vlsCVPkiEdQ==", "dependencies": { "sparse-bitfield": "^3.0.3" } @@ -6661,548 +6143,130 @@ "async": "~2.6.1", "debug": "~4.3.1", "eventemitter2": "^6.3.1", - "require-in-the-middle": "^5.0.0", - "semver": "~7.5.4", - "shimmer": "^1.2.0", - "signal-exit": "^3.0.3", - "tslib": "1.9.3" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/@pm2/io/node_modules/lru-cache": { - "version": "6.0.0", - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@pm2/io/node_modules/semver": { - "version": "7.5.4", - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@pm2/io/node_modules/tslib": { - "version": "1.9.3", - "license": "Apache-2.0" - }, - "node_modules/@pm2/io/node_modules/yallist": { - "version": "4.0.0", - "license": "ISC" - }, - "node_modules/@pm2/js-api": { - "version": "0.8.0", - "license": "Apache-2", - "dependencies": { - "async": "^2.6.3", - "debug": "~4.3.1", - "eventemitter2": "^6.3.1", - "extrareqp2": "^1.0.0", - "ws": "^7.0.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/@pm2/pm2-version-check": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@pm2/pm2-version-check/-/pm2-version-check-1.0.4.tgz", - "integrity": "sha512-SXsM27SGH3yTWKc2fKR4SYNxsmnvuBQ9dd6QHtEWmiZ/VqaOYPAIlS8+vMcn27YLtAEBGvNRSh3TPNvtjZgfqA==", - "dependencies": { - "debug": "^4.3.1" - } - }, - "node_modules/@polka/url": { - "version": "1.0.0-next.23", - "dev": true, - "license": "MIT" - }, - "node_modules/@popperjs/core": { - "version": "2.11.4", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/popperjs" - } - }, - "node_modules/@recuperateur/async-busboy": { - "resolved": "packages/@recuperateur/async-busboy", - "link": true - }, - "node_modules/@recuperateur/resumablejs": { - "resolved": "packages/@recuperateur/resumablejs", - "link": true - }, - "node_modules/@shelf/jest-mongodb": { - "version": "3.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "4.3.4", - "mongodb-memory-server": "7.6.3", - "uuid": "8.3.2" - }, - "engines": { - "node": ">=12" - }, - "peerDependencies": { - "jest-environment-node": "27.x.x || 28.x", - "mongodb": "3.x.x || 4.x" - } - }, - "node_modules/@sindresorhus/is": { - "version": "2.1.1", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" - } - }, - "node_modules/@smithy/abort-controller": { - "version": "2.0.13", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@smithy/types": "^2.5.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@smithy/config-resolver": { - "version": "2.0.18", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@smithy/node-config-provider": "^2.1.5", - "@smithy/types": "^2.5.0", - "@smithy/util-config-provider": "^2.0.0", - "@smithy/util-middleware": "^2.0.6", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@smithy/credential-provider-imds": { - "version": "2.1.1", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@smithy/node-config-provider": "^2.1.5", - "@smithy/property-provider": "^2.0.14", - "@smithy/types": "^2.5.0", - "@smithy/url-parser": "^2.0.13", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@smithy/eventstream-codec": { - "version": "2.0.13", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@aws-crypto/crc32": "3.0.0", - "@smithy/types": "^2.5.0", - "@smithy/util-hex-encoding": "^2.0.0", - "tslib": "^2.5.0" - } - }, - "node_modules/@smithy/fetch-http-handler": { - "version": "2.2.6", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@smithy/protocol-http": "^3.0.9", - "@smithy/querystring-builder": "^2.0.13", - "@smithy/types": "^2.5.0", - "@smithy/util-base64": "^2.0.1", - "tslib": "^2.5.0" - } - }, - "node_modules/@smithy/hash-node": { - "version": "2.0.15", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@smithy/types": "^2.5.0", - "@smithy/util-buffer-from": "^2.0.0", - "@smithy/util-utf8": "^2.0.2", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@smithy/invalid-dependency": { - "version": "2.0.13", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@smithy/types": "^2.5.0", - "tslib": "^2.5.0" - } - }, - "node_modules/@smithy/is-array-buffer": { - "version": "2.0.0", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@smithy/middleware-content-length": { - "version": "2.0.15", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@smithy/protocol-http": "^3.0.9", - "@smithy/types": "^2.5.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@smithy/middleware-endpoint": { - "version": "2.2.0", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@smithy/middleware-serde": "^2.0.13", - "@smithy/node-config-provider": "^2.1.5", - "@smithy/shared-ini-file-loader": "^2.2.4", - "@smithy/types": "^2.5.0", - "@smithy/url-parser": "^2.0.13", - "@smithy/util-middleware": "^2.0.6", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@smithy/middleware-retry": { - "version": "2.0.20", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@smithy/node-config-provider": "^2.1.5", - "@smithy/protocol-http": "^3.0.9", - "@smithy/service-error-classification": "^2.0.6", - "@smithy/types": "^2.5.0", - "@smithy/util-middleware": "^2.0.6", - "@smithy/util-retry": "^2.0.6", - "tslib": "^2.5.0", - "uuid": "^8.3.2" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@smithy/middleware-serde": { - "version": "2.0.13", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@smithy/types": "^2.5.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@smithy/middleware-stack": { - "version": "2.0.7", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@smithy/types": "^2.5.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@smithy/node-config-provider": { - "version": "2.1.5", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@smithy/property-provider": "^2.0.14", - "@smithy/shared-ini-file-loader": "^2.2.4", - "@smithy/types": "^2.5.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@smithy/node-http-handler": { - "version": "2.1.9", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@smithy/abort-controller": "^2.0.13", - "@smithy/protocol-http": "^3.0.9", - "@smithy/querystring-builder": "^2.0.13", - "@smithy/types": "^2.5.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@smithy/property-provider": { - "version": "2.0.14", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@smithy/types": "^2.5.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@smithy/protocol-http": { - "version": "3.0.9", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@smithy/types": "^2.5.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@smithy/querystring-builder": { - "version": "2.0.13", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@smithy/types": "^2.5.0", - "@smithy/util-uri-escape": "^2.0.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@smithy/querystring-parser": { - "version": "2.0.13", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@smithy/types": "^2.5.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@smithy/service-error-classification": { - "version": "2.0.6", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@smithy/types": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@smithy/shared-ini-file-loader": { - "version": "2.2.4", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@smithy/types": "^2.5.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@smithy/signature-v4": { - "version": "2.0.15", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@smithy/eventstream-codec": "^2.0.13", - "@smithy/is-array-buffer": "^2.0.0", - "@smithy/types": "^2.5.0", - "@smithy/util-hex-encoding": "^2.0.0", - "@smithy/util-middleware": "^2.0.6", - "@smithy/util-uri-escape": "^2.0.0", - "@smithy/util-utf8": "^2.0.2", - "tslib": "^2.5.0" + "require-in-the-middle": "^5.0.0", + "semver": "~7.5.4", + "shimmer": "^1.2.0", + "signal-exit": "^3.0.3", + "tslib": "1.9.3" }, "engines": { - "node": ">=14.0.0" + "node": ">=6.0" } }, - "node_modules/@smithy/smithy-client": { - "version": "2.1.15", - "license": "Apache-2.0", - "optional": true, + "node_modules/@pm2/io/node_modules/lru-cache": { + "version": "6.0.0", + "license": "ISC", "dependencies": { - "@smithy/middleware-stack": "^2.0.7", - "@smithy/types": "^2.5.0", - "@smithy/util-stream": "^2.0.20", - "tslib": "^2.5.0" + "yallist": "^4.0.0" }, "engines": { - "node": ">=14.0.0" + "node": ">=10" } }, - "node_modules/@smithy/types": { - "version": "2.5.0", - "license": "Apache-2.0", - "optional": true, + "node_modules/@pm2/io/node_modules/semver": { + "version": "7.5.4", + "license": "ISC", "dependencies": { - "tslib": "^2.5.0" + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">=14.0.0" + "node": ">=10" } }, - "node_modules/@smithy/url-parser": { - "version": "2.0.13", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@smithy/querystring-parser": "^2.0.13", - "@smithy/types": "^2.5.0", - "tslib": "^2.5.0" - } + "node_modules/@pm2/io/node_modules/tslib": { + "version": "1.9.3", + "license": "Apache-2.0" }, - "node_modules/@smithy/util-base64": { - "version": "2.0.1", - "license": "Apache-2.0", - "optional": true, + "node_modules/@pm2/io/node_modules/yallist": { + "version": "4.0.0", + "license": "ISC" + }, + "node_modules/@pm2/js-api": { + "version": "0.8.0", + "license": "Apache-2", "dependencies": { - "@smithy/util-buffer-from": "^2.0.0", - "tslib": "^2.5.0" + "async": "^2.6.3", + "debug": "~4.3.1", + "eventemitter2": "^6.3.1", + "extrareqp2": "^1.0.0", + "ws": "^7.0.0" }, "engines": { - "node": ">=14.0.0" + "node": ">=4.0" } }, - "node_modules/@smithy/util-body-length-browser": { - "version": "2.0.0", - "license": "Apache-2.0", - "optional": true, + "node_modules/@pm2/pm2-version-check": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@pm2/pm2-version-check/-/pm2-version-check-1.0.4.tgz", + "integrity": "sha512-SXsM27SGH3yTWKc2fKR4SYNxsmnvuBQ9dd6QHtEWmiZ/VqaOYPAIlS8+vMcn27YLtAEBGvNRSh3TPNvtjZgfqA==", "dependencies": { - "tslib": "^2.5.0" + "debug": "^4.3.1" } }, - "node_modules/@smithy/util-body-length-node": { - "version": "2.1.0", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } + "node_modules/@polka/url": { + "version": "1.0.0-next.23", + "dev": true, + "license": "MIT" }, - "node_modules/@smithy/util-buffer-from": { - "version": "2.0.0", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@smithy/is-array-buffer": "^2.0.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" + "node_modules/@popperjs/core": { + "version": "2.11.4", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" } }, - "node_modules/@smithy/util-config-provider": { - "version": "2.0.0", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } + "node_modules/@recuperateur/async-busboy": { + "resolved": "packages/@recuperateur/async-busboy", + "link": true }, - "node_modules/@smithy/util-defaults-mode-browser": { - "version": "2.0.19", - "license": "Apache-2.0", - "optional": true, + "node_modules/@recuperateur/resumablejs": { + "resolved": "packages/@recuperateur/resumablejs", + "link": true + }, + "node_modules/@shelf/jest-mongodb": { + "version": "3.0.2", + "dev": true, + "license": "MIT", "dependencies": { - "@smithy/property-provider": "^2.0.14", - "@smithy/smithy-client": "^2.1.15", - "@smithy/types": "^2.5.0", - "bowser": "^2.11.0", - "tslib": "^2.5.0" + "debug": "4.3.4", + "mongodb-memory-server": "7.6.3", + "uuid": "8.3.2" }, "engines": { - "node": ">= 10.0.0" + "node": ">=12" + }, + "peerDependencies": { + "jest-environment-node": "27.x.x || 28.x", + "mongodb": "3.x.x || 4.x" } }, - "node_modules/@smithy/util-defaults-mode-browser/node_modules/bowser": { - "version": "2.11.0", + "node_modules/@sindresorhus/is": { + "version": "2.1.1", "license": "MIT", - "optional": true - }, - "node_modules/@smithy/util-defaults-mode-node": { - "version": "2.0.25", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@smithy/config-resolver": "^2.0.18", - "@smithy/credential-provider-imds": "^2.1.1", - "@smithy/node-config-provider": "^2.1.5", - "@smithy/property-provider": "^2.0.14", - "@smithy/smithy-client": "^2.1.15", - "@smithy/types": "^2.5.0", - "tslib": "^2.5.0" - }, "engines": { - "node": ">= 10.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" } }, - "node_modules/@smithy/util-endpoints": { - "version": "1.0.4", + "node_modules/@smithy/is-array-buffer": { + "version": "2.0.0", "license": "Apache-2.0", "optional": true, "dependencies": { - "@smithy/node-config-provider": "^2.1.5", - "@smithy/types": "^2.5.0", "tslib": "^2.5.0" }, "engines": { - "node": ">= 14.0.0" + "node": ">=14.0.0" } }, - "node_modules/@smithy/util-hex-encoding": { - "version": "2.0.0", + "node_modules/@smithy/types": { + "version": "2.5.0", "license": "Apache-2.0", "optional": true, "dependencies": { @@ -7212,50 +6276,38 @@ "node": ">=14.0.0" } }, - "node_modules/@smithy/util-middleware": { - "version": "2.0.6", + "node_modules/@smithy/util-body-length-browser": { + "version": "2.0.0", "license": "Apache-2.0", "optional": true, "dependencies": { - "@smithy/types": "^2.5.0", "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" } }, - "node_modules/@smithy/util-retry": { - "version": "2.0.6", + "node_modules/@smithy/util-buffer-from": { + "version": "2.0.0", "license": "Apache-2.0", "optional": true, "dependencies": { - "@smithy/service-error-classification": "^2.0.6", - "@smithy/types": "^2.5.0", + "@smithy/is-array-buffer": "^2.0.0", "tslib": "^2.5.0" }, "engines": { - "node": ">= 14.0.0" + "node": ">=14.0.0" } }, - "node_modules/@smithy/util-stream": { - "version": "2.0.20", + "node_modules/@smithy/util-config-provider": { + "version": "2.0.0", "license": "Apache-2.0", "optional": true, "dependencies": { - "@smithy/fetch-http-handler": "^2.2.6", - "@smithy/node-http-handler": "^2.1.9", - "@smithy/types": "^2.5.0", - "@smithy/util-base64": "^2.0.1", - "@smithy/util-buffer-from": "^2.0.0", - "@smithy/util-hex-encoding": "^2.0.0", - "@smithy/util-utf8": "^2.0.2", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@smithy/util-uri-escape": { + "node_modules/@smithy/util-hex-encoding": { "version": "2.0.0", "license": "Apache-2.0", "optional": true, @@ -7266,12 +6318,11 @@ "node": ">=14.0.0" } }, - "node_modules/@smithy/util-utf8": { - "version": "2.0.2", + "node_modules/@smithy/util-uri-escape": { + "version": "2.0.0", "license": "Apache-2.0", "optional": true, "dependencies": { - "@smithy/util-buffer-from": "^2.0.0", "tslib": "^2.5.0" }, "engines": { @@ -24048,8 +23099,7 @@ }, "node_modules/memory-pager": { "version": "1.5.0", - "license": "MIT", - "optional": true + "license": "MIT" }, "node_modules/memorystream": { "version": "0.3.1", @@ -24716,19 +23766,48 @@ } }, "node_modules/mongodb": { - "version": "4.17.1", - "license": "Apache-2.0", + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.8.0.tgz", + "integrity": "sha512-HGQ9NWDle5WvwMnrvUxsFYPd3JEbqD3RgABHBQRuoCEND0qzhsd0iH5ypHsf1eJ+sXmvmyKpP+FLOKY8Il7jMw==", "dependencies": { - "bson": "^4.7.2", - "mongodb-connection-string-url": "^2.6.0", - "socks": "^2.7.1" + "@mongodb-js/saslprep": "^1.1.5", + "bson": "^6.7.0", + "mongodb-connection-string-url": "^3.0.0" }, "engines": { - "node": ">=12.9.0" + "node": ">=16.20.1" }, - "optionalDependencies": { - "@aws-sdk/credential-providers": "^3.186.0", - "@mongodb-js/saslprep": "^1.1.0" + "peerDependencies": { + "@aws-sdk/credential-providers": "^3.188.0", + "@mongodb-js/zstd": "^1.1.0", + "gcp-metadata": "^5.2.0", + "kerberos": "^2.0.1", + "mongodb-client-encryption": ">=6.0.0 <7", + "snappy": "^7.2.2", + "socks": "^2.7.1" + }, + "peerDependenciesMeta": { + "@aws-sdk/credential-providers": { + "optional": true + }, + "@mongodb-js/zstd": { + "optional": true + }, + "gcp-metadata": { + "optional": true + }, + "kerberos": { + "optional": true + }, + "mongodb-client-encryption": { + "optional": true + }, + "snappy": { + "optional": true + }, + "socks": { + "optional": true + } } }, "node_modules/mongodb-connection-string-url": { @@ -25103,21 +24182,60 @@ "inherits": "2" } }, - "node_modules/mongodb/node_modules/ip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.1.tgz", - "integrity": "sha512-lJUL9imLTNi1ZfXT+DU6rBBdbiKGBuay9B6xGSPVjUeQwaH1RIGqef8RZkUtHioLmSNpPR5M4HVKJGm1j8FWVQ==" + "node_modules/mongodb/node_modules/@types/whatwg-url": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-11.0.5.tgz", + "integrity": "sha512-coYR071JRaHa+xoEvvYqvnIHaVqaYrLPbsufM9BF63HkwI5Lgmy2QR8Q5K/lYDYo5AK82wOvSOS0UsLTpTG7uQ==", + "dependencies": { + "@types/webidl-conversions": "*" + } }, - "node_modules/mongodb/node_modules/socks": { - "version": "2.7.1", - "license": "MIT", + "node_modules/mongodb/node_modules/bson": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/bson/-/bson-6.8.0.tgz", + "integrity": "sha512-iOJg8pr7wq2tg/zSlCCHMi3hMm5JTOxLTagf3zxhcenHsFp+c6uOs6K7W5UE7A4QIJGtqh/ZovFNMP4mOPJynQ==", + "engines": { + "node": ">=16.20.1" + } + }, + "node_modules/mongodb/node_modules/mongodb-connection-string-url": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-3.0.1.tgz", + "integrity": "sha512-XqMGwRX0Lgn05TDB4PyG2h2kKO/FfWJyCzYQbIhXUxz7ETt0I/FqHjUeqj37irJ+Dl1ZtU82uYyj14u2XsZKfg==", "dependencies": { - "ip": "^2.0.0", - "smart-buffer": "^4.2.0" + "@types/whatwg-url": "^11.0.2", + "whatwg-url": "^13.0.0" + } + }, + "node_modules/mongodb/node_modules/tr46": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-4.1.1.tgz", + "integrity": "sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==", + "dependencies": { + "punycode": "^2.3.0" }, "engines": { - "node": ">= 10.13.0", - "npm": ">= 3.0.0" + "node": ">=14" + } + }, + "node_modules/mongodb/node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "engines": { + "node": ">=12" + } + }, + "node_modules/mongodb/node_modules/whatwg-url": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-13.0.0.tgz", + "integrity": "sha512-9WWbymnqj57+XEuqADHrCJ2eSXzn8WXIW/YSGaZtb2WKAInQ6CHfaUUcTyyver0p8BDg5StLQq8h1vtZuwmOig==", + "dependencies": { + "tr46": "^4.1.1", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=16" } }, "node_modules/moo": { @@ -27350,8 +26468,9 @@ } }, "node_modules/punycode": { - "version": "2.1.1", - "license": "MIT", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "engines": { "node": ">=6" } @@ -29907,7 +29026,6 @@ "node_modules/sparse-bitfield": { "version": "3.0.3", "license": "MIT", - "optional": true, "dependencies": { "memory-pager": "^1.0.2" } diff --git a/package.json b/package.json index 8e783b3f8..120d50fee 100644 --- a/package.json +++ b/package.json @@ -141,7 +141,7 @@ "mime": "1.6.0", "mime-types": "2.1.35", "moment": "2.29.4", - "mongodb": "4.17.1", + "mongodb": "6.8.0", "mongodb-restore": "1.6.2", "mui-file-dropzone": "4.0.2", "multistream": "^2.1.1", From baee61a0598b9ac8c2f230f8a69c0ddab08886e9 Mon Sep 17 00:00:00 2001 From: Nicolas Thouvenin Date: Tue, 6 Aug 2024 15:38:53 +0200 Subject: [PATCH 02/19] update lock file --- package-lock.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4634ee40b..f13930312 100644 --- a/package-lock.json +++ b/package-lock.json @@ -24191,11 +24191,11 @@ } }, "node_modules/mongodb/node_modules/bson": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/bson/-/bson-6.8.0.tgz", - "integrity": "sha512-iOJg8pr7wq2tg/zSlCCHMi3hMm5JTOxLTagf3zxhcenHsFp+c6uOs6K7W5UE7A4QIJGtqh/ZovFNMP4mOPJynQ==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.6.tgz", + "integrity": "sha512-EvVNVeGo4tHxwi8L6bPj3y3itEvStdwvvlojVxxbyYfoaxJ6keLgrTuKdyfEAszFK+H3olzBuafE0yoh0D1gdg==", "engines": { - "node": ">=16.20.1" + "node": ">=0.6.19" } }, "node_modules/mongodb/node_modules/mongodb-connection-string-url": { From bccf06797ee3fd3d014fd2f0c96129f8628412b8 Mon Sep 17 00:00:00 2001 From: Nicolas Thouvenin Date: Wed, 7 Aug 2024 17:05:46 +0200 Subject: [PATCH 03/19] replace mapReduce helper --- jest.config.js | 3 + package-lock.json | 3516 +++++++------------ package.json | 2 +- packages/ezsLodex/jest-setup.js | 1 + packages/ezsLodex/package.json | 2 +- packages/ezsLodex/src/reduceQuery.js | 29 +- packages/ezsLodex/test/mongoQueries.spec.js | 68 +- 7 files changed, 1251 insertions(+), 2370 deletions(-) create mode 100644 packages/ezsLodex/jest-setup.js diff --git a/jest.config.js b/jest.config.js index cbd424e91..98d84b7b5 100644 --- a/jest.config.js +++ b/jest.config.js @@ -57,6 +57,9 @@ module.exports = { '/node_modules/(?!quick-lru)', ], testTimeout: 8000, + setupFilesAfterEnv: [ + './jest-setup.js', + ] }, ], }; diff --git a/package-lock.json b/package-lock.json index f13930312..c32cfd4cf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -182,7 +182,7 @@ }, "devDependencies": { "@babel/eslint-parser": "^7.23.10", - "@shelf/jest-mongodb": "3.0.2", + "@shelf/jest-mongodb": "4.3.2", "@testing-library/jest-dom": "5.16.5", "@testing-library/react": "11.2.7", "@types/ejs": "3.1.5", @@ -230,14 +230,6 @@ "node": ">= 16" } }, - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/@adobe/css-tools": { "version": "4.3.3", "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.3.3.tgz", @@ -255,128 +247,6 @@ "node": ">=6.0.0" } }, - "node_modules/@aws-crypto/crc32": { - "version": "3.0.0", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@aws-crypto/util": "^3.0.0", - "@aws-sdk/types": "^3.222.0", - "tslib": "^1.11.1" - } - }, - "node_modules/@aws-crypto/crc32/node_modules/tslib": { - "version": "1.14.1", - "license": "0BSD", - "optional": true - }, - "node_modules/@aws-crypto/ie11-detection": { - "version": "3.0.0", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "tslib": "^1.11.1" - } - }, - "node_modules/@aws-crypto/ie11-detection/node_modules/tslib": { - "version": "1.14.1", - "license": "0BSD", - "optional": true - }, - "node_modules/@aws-crypto/sha256-browser": { - "version": "3.0.0", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@aws-crypto/ie11-detection": "^3.0.0", - "@aws-crypto/sha256-js": "^3.0.0", - "@aws-crypto/supports-web-crypto": "^3.0.0", - "@aws-crypto/util": "^3.0.0", - "@aws-sdk/types": "^3.222.0", - "@aws-sdk/util-locate-window": "^3.0.0", - "@aws-sdk/util-utf8-browser": "^3.0.0", - "tslib": "^1.11.1" - } - }, - "node_modules/@aws-crypto/sha256-browser/node_modules/tslib": { - "version": "1.14.1", - "license": "0BSD", - "optional": true - }, - "node_modules/@aws-crypto/sha256-js": { - "version": "3.0.0", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@aws-crypto/util": "^3.0.0", - "@aws-sdk/types": "^3.222.0", - "tslib": "^1.11.1" - } - }, - "node_modules/@aws-crypto/sha256-js/node_modules/tslib": { - "version": "1.14.1", - "license": "0BSD", - "optional": true - }, - "node_modules/@aws-crypto/supports-web-crypto": { - "version": "3.0.0", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "tslib": "^1.11.1" - } - }, - "node_modules/@aws-crypto/supports-web-crypto/node_modules/tslib": { - "version": "1.14.1", - "license": "0BSD", - "optional": true - }, - "node_modules/@aws-crypto/util": { - "version": "3.0.0", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@aws-sdk/types": "^3.222.0", - "@aws-sdk/util-utf8-browser": "^3.0.0", - "tslib": "^1.11.1" - } - }, - "node_modules/@aws-crypto/util/node_modules/tslib": { - "version": "1.14.1", - "license": "0BSD", - "optional": true - }, - "node_modules/@aws-sdk/types": { - "version": "3.451.0", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@smithy/types": "^2.5.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-sdk/util-locate-window": { - "version": "3.310.0", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-sdk/util-utf8-browser": { - "version": "3.259.0", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "tslib": "^2.3.1" - } - }, "node_modules/@babel/cli": { "version": "7.23.9", "license": "MIT", @@ -2019,20 +1889,26 @@ } }, "node_modules/@babel/runtime-corejs3": { - "version": "7.15.4", - "dev": true, - "license": "MIT", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.25.0.tgz", + "integrity": "sha512-BOehWE7MgQ8W8Qn0CQnMtg2tHPHPulcS/5AVpFvs2KCK1ET+0WqZqPvnpRpFN81gYoFopdIEJX9Sgjw3ZBccPg==", "dependencies": { - "core-js-pure": "^3.16.0", - "regenerator-runtime": "^0.13.4" + "core-js-pure": "^3.30.2", + "regenerator-runtime": "^0.14.0" }, "engines": { "node": ">=6.9.0" } }, + "node_modules/@babel/runtime-corejs3/node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + }, "node_modules/@babel/runtime/node_modules/regenerator-runtime": { - "version": "0.14.0", - "license": "MIT" + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" }, "node_modules/@babel/template": { "version": "7.23.9", @@ -2202,9 +2078,10 @@ } }, "node_modules/@cypress/request/node_modules/tough-cookie": { - "version": "4.1.3", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", + "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "psl": "^1.1.33", "punycode": "^2.1.1", @@ -2408,10 +2285,6 @@ "csstype": "^3.0.2" } }, - "node_modules/@emotion/serialize/node_modules/csstype": { - "version": "3.0.10", - "license": "MIT" - }, "node_modules/@emotion/sheet": { "version": "1.1.0", "license": "MIT" @@ -2704,16 +2577,6 @@ "node": "*" } }, - "node_modules/@ezs/basics/node_modules/lru-cache": { - "version": "6.0.0", - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@ezs/basics/node_modules/make-dir": { "version": "4.0.0", "license": "MIT", @@ -2753,11 +2616,9 @@ } }, "node_modules/@ezs/basics/node_modules/semver": { - "version": "7.5.4", - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "bin": { "semver": "bin/semver.js" }, @@ -2790,10 +2651,6 @@ "webidl-conversions": "^3.0.0" } }, - "node_modules/@ezs/basics/node_modules/yallist": { - "version": "4.0.0", - "license": "ISC" - }, "node_modules/@ezs/conditor": { "version": "2.12.2", "resolved": "https://registry.npmjs.org/@ezs/conditor/-/conditor-2.12.2.tgz", @@ -2902,10 +2759,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@ezs/conditor/node_modules/ramda": { - "version": "0.27.1", - "license": "MIT" - }, "node_modules/@ezs/conditor/node_modules/tr46": { "version": "0.0.3", "license": "MIT" @@ -3087,11 +2940,9 @@ } }, "node_modules/@ezs/core/node_modules/semver": { - "version": "7.5.4", - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "bin": { "semver": "bin/semver.js" }, @@ -3099,16 +2950,6 @@ "node": ">=10" } }, - "node_modules/@ezs/core/node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@ezs/core/node_modules/ssri": { "version": "9.0.1", "license": "ISC", @@ -3119,10 +2960,6 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/@ezs/core/node_modules/yallist": { - "version": "4.0.0", - "license": "ISC" - }, "node_modules/@ezs/istex": { "version": "1.5.9", "license": "MIT", @@ -3166,13 +3003,6 @@ "node": ">=8" } }, - "node_modules/@ezs/istex/node_modules/is-stream": { - "version": "2.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/@ezs/istex/node_modules/node-fetch": { "version": "2.7.0", "license": "MIT", @@ -3204,10 +3034,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@ezs/istex/node_modules/ramda": { - "version": "0.27.1", - "license": "MIT" - }, "node_modules/@ezs/istex/node_modules/tr46": { "version": "0.0.3", "license": "MIT" @@ -3876,6 +3702,25 @@ "node": ">=0.10.0" } }, + "node_modules/@jest/core/node_modules/fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "deprecated": "The v1 package contains DANGEROUS / INSECURE binaries. Upgrade to safe fsevents v2", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + }, + "engines": { + "node": ">= 4.0" + } + }, "node_modules/@jest/core/node_modules/is-number": { "version": "3.0.0", "dev": true, @@ -4271,6 +4116,25 @@ "node": ">=0.10.0" } }, + "node_modules/@jest/environment/node_modules/fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "deprecated": "The v1 package contains DANGEROUS / INSECURE binaries. Upgrade to safe fsevents v2", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + }, + "engines": { + "node": ">= 4.0" + } + }, "node_modules/@jest/environment/node_modules/is-number": { "version": "3.0.0", "dev": true, @@ -4830,6 +4694,25 @@ "node": ">=0.10.0" } }, + "node_modules/@jest/reporters/node_modules/fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "deprecated": "The v1 package contains DANGEROUS / INSECURE binaries. Upgrade to safe fsevents v2", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + }, + "engines": { + "node": ">= 4.0" + } + }, "node_modules/@jest/reporters/node_modules/is-number": { "version": "3.0.0", "dev": true, @@ -5198,6 +5081,25 @@ "node": ">=0.10.0" } }, + "node_modules/@jest/test-sequencer/node_modules/fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "deprecated": "The v1 package contains DANGEROUS / INSECURE binaries. Upgrade to safe fsevents v2", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + }, + "engines": { + "node": ">= 4.0" + } + }, "node_modules/@jest/test-sequencer/node_modules/is-number": { "version": "3.0.0", "dev": true, @@ -5697,10 +5599,6 @@ } } }, - "node_modules/@mui/material/node_modules/csstype": { - "version": "3.0.11", - "license": "MIT" - }, "node_modules/@mui/material/node_modules/react-is": { "version": "17.0.2", "license": "MIT" @@ -5797,10 +5695,6 @@ } } }, - "node_modules/@mui/system/node_modules/csstype": { - "version": "3.0.11", - "license": "MIT" - }, "node_modules/@mui/types": { "version": "7.1.3", "license": "MIT", @@ -5840,8 +5734,9 @@ } }, "node_modules/@mui/utils/node_modules/react-is": { - "version": "18.2.0", - "license": "MIT" + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" }, "node_modules/@mui/x-data-grid": { "version": "5.8.0", @@ -5866,8 +5761,9 @@ } }, "node_modules/@mui/x-data-grid/node_modules/reselect": { - "version": "4.1.5", - "license": "MIT" + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.8.tgz", + "integrity": "sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ==" }, "node_modules/@nicolo-ribaudo/chokidar-2": { "version": "2.1.8-no-fsevents.3", @@ -6115,25 +6011,6 @@ "node": ">=8" } }, - "node_modules/@pm2/agent/node_modules/ws": { - "version": "7.4.6", - "license": "MIT", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, "node_modules/@pm2/io": { "version": "5.0.2", "license": "Apache-2", @@ -6228,20 +6105,20 @@ "link": true }, "node_modules/@shelf/jest-mongodb": { - "version": "3.0.2", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@shelf/jest-mongodb/-/jest-mongodb-4.3.2.tgz", + "integrity": "sha512-LL7NBaT04sJspoOZXqw3HGLw0+XnZNlIV72x2ymzyuloqIKXwgUl8eL1XKDUh4Ud8dUBRMrOngCQBcHKjWnrHQ==", "dev": true, - "license": "MIT", "dependencies": { "debug": "4.3.4", - "mongodb-memory-server": "7.6.3", - "uuid": "8.3.2" + "mongodb-memory-server": "9.2.0" }, "engines": { - "node": ">=12" + "node": ">=16" }, "peerDependencies": { - "jest-environment-node": "27.x.x || 28.x", - "mongodb": "3.x.x || 4.x" + "jest-environment-node": "28.x || 29.x", + "mongodb": "3.x.x || 4.x || 5.x || 6.x" } }, "node_modules/@sindresorhus/is": { @@ -6254,118 +6131,43 @@ "url": "https://github.com/sindresorhus/is?sponsor=1" } }, - "node_modules/@smithy/is-array-buffer": { - "version": "2.0.0", - "license": "Apache-2.0", - "optional": true, + "node_modules/@socket.io/component-emitter": { + "version": "3.1.0", + "license": "MIT" + }, + "node_modules/@swc/helpers": { + "version": "0.3.17", + "license": "MIT", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "4.0.6", + "license": "MIT", "dependencies": { - "tslib": "^2.5.0" + "defer-to-connect": "^2.0.0" }, "engines": { - "node": ">=14.0.0" + "node": ">=10" } }, - "node_modules/@smithy/types": { - "version": "2.5.0", - "license": "Apache-2.0", - "optional": true, + "node_modules/@testing-library/dom": { + "version": "7.31.2", + "dev": true, + "license": "MIT", "dependencies": { - "tslib": "^2.5.0" + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^4.2.0", + "aria-query": "^4.2.2", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.6", + "lz-string": "^1.4.4", + "pretty-format": "^26.6.2" }, "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@smithy/util-body-length-browser": { - "version": "2.0.0", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "tslib": "^2.5.0" - } - }, - "node_modules/@smithy/util-buffer-from": { - "version": "2.0.0", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@smithy/is-array-buffer": "^2.0.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@smithy/util-config-provider": { - "version": "2.0.0", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@smithy/util-hex-encoding": { - "version": "2.0.0", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@smithy/util-uri-escape": { - "version": "2.0.0", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@socket.io/component-emitter": { - "version": "3.1.0", - "license": "MIT" - }, - "node_modules/@swc/helpers": { - "version": "0.3.17", - "license": "MIT", - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@szmarczak/http-timer": { - "version": "4.0.6", - "license": "MIT", - "dependencies": { - "defer-to-connect": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@testing-library/dom": { - "version": "7.31.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/runtime": "^7.12.5", - "@types/aria-query": "^4.2.0", - "aria-query": "^4.2.2", - "chalk": "^4.1.0", - "dom-accessibility-api": "^0.5.6", - "lz-string": "^1.4.4", - "pretty-format": "^26.6.2" - }, - "engines": { - "node": ">=10" + "node": ">=10" } }, "node_modules/@testing-library/dom/node_modules/ansi-styles": { @@ -6468,11 +6270,12 @@ } }, "node_modules/@testing-library/jest-dom/node_modules/aria-query": { - "version": "5.1.3", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", "dev": true, - "license": "Apache-2.0", "dependencies": { - "deep-equal": "^2.0.5" + "dequal": "^2.0.3" } }, "node_modules/@testing-library/jest-dom/node_modules/chalk": { @@ -6503,33 +6306,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@testing-library/jest-dom/node_modules/deep-equal": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "es-get-iterator": "^1.1.2", - "get-intrinsic": "^1.1.3", - "is-arguments": "^1.1.1", - "is-array-buffer": "^3.0.1", - "is-date-object": "^1.0.5", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "isarray": "^2.0.5", - "object-is": "^1.1.5", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", - "side-channel": "^1.0.4", - "which-boxed-primitive": "^1.0.2", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.9" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/@testing-library/jest-dom/node_modules/has-flag": { "version": "4.0.0", "dev": true, @@ -6538,11 +6314,6 @@ "node": ">=8" } }, - "node_modules/@testing-library/jest-dom/node_modules/isarray": { - "version": "2.0.5", - "dev": true, - "license": "MIT" - }, "node_modules/@testing-library/jest-dom/node_modules/supports-color": { "version": "7.2.0", "dev": true, @@ -6633,14 +6404,6 @@ "@types/node": "*" } }, - "node_modules/@types/bson": { - "version": "4.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "bson": "*" - } - }, "node_modules/@types/busboy": { "version": "1.5.3", "dev": true, @@ -6779,8 +6542,9 @@ } }, "node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "license": "MIT", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", "dependencies": { "@types/istanbul-lib-report": "*" } @@ -6819,15 +6583,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@types/mongodb": { - "version": "3.6.20", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/bson": "*", - "@types/node": "*" - } - }, "node_modules/@types/node": { "version": "18.18.9", "license": "MIT", @@ -6870,11 +6625,12 @@ "license": "MIT" }, "node_modules/@types/react": { - "version": "17.0.32", - "license": "MIT", + "version": "16.14.60", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.14.60.tgz", + "integrity": "sha512-wIFmnczGsTcgwCBeIYOuy2mdXEiKZ5znU/jNOnMZPQyCcIxauMGWlX0TNG4lZ7NxRKj7YUIZRneJQSSdB2jKgg==", "dependencies": { "@types/prop-types": "*", - "@types/scheduler": "*", + "@types/scheduler": "^0.16", "csstype": "^3.0.2" } }, @@ -6894,10 +6650,6 @@ "@types/react": "*" } }, - "node_modules/@types/react/node_modules/csstype": { - "version": "3.0.9", - "license": "MIT" - }, "node_modules/@types/responselike": { "version": "1.0.0", "license": "MIT", @@ -6965,8 +6717,9 @@ } }, "node_modules/@types/stack-utils": { - "version": "2.0.1", - "license": "MIT" + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==" }, "node_modules/@types/testing-library__jest-dom": { "version": "5.14.5", @@ -6976,11 +6729,6 @@ "@types/jest": "*" } }, - "node_modules/@types/tmp": { - "version": "0.2.4", - "dev": true, - "license": "MIT" - }, "node_modules/@types/triple-beam": { "version": "1.3.5", "license": "MIT" @@ -6991,6 +6739,7 @@ }, "node_modules/@types/whatwg-url": { "version": "8.2.2", + "dev": true, "license": "MIT", "dependencies": { "@types/node": "*", @@ -7006,8 +6755,9 @@ } }, "node_modules/@types/yargs": { - "version": "15.0.14", - "license": "MIT", + "version": "15.0.19", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.19.tgz", + "integrity": "sha512-2XUaGVmyQjgyAZldf0D0c14vvo/yv0MhQBSTJcejMMaitsn3nxCB6TmH4G0ZQf+uxROOa9mpanoSm8h6SG/1ZA==", "dependencies": { "@types/yargs-parser": "*" } @@ -7368,8 +7118,9 @@ "license": "BSD-3-Clause" }, "node_modules/abbrev": { - "version": "1.1.1", - "license": "ISC" + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", + "integrity": "sha512-LEyx4aLEC3x6T0UguF6YILf+ntvmOaWsVfENmIW0E9H09vKlLDGelMjjSm0jkDHALj8A8quZ/HapKNigzwge+Q==" }, "node_modules/abstract-leveldown": { "version": "7.2.0", @@ -7478,9 +7229,25 @@ } }, "node_modules/acorn-walk": { - "version": "8.3.0", + "version": "8.3.3", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.3.tgz", + "integrity": "sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==", "dev": true, - "license": "MIT", + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk/node_modules/acorn": { + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, "engines": { "node": ">=0.4.0" } @@ -7675,8 +7442,9 @@ "license": "MIT" }, "node_modules/anymatch": { - "version": "3.1.2", - "license": "ISC", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -7769,13 +7537,6 @@ "util-deprecate": "~1.0.1" } }, - "node_modules/archiver-utils/node_modules/string_decoder": { - "version": "1.1.1", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, "node_modules/argparse": { "version": "1.0.10", "license": "MIT", @@ -8135,11 +7896,12 @@ } }, "node_modules/async-mutex": { - "version": "0.3.2", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.4.1.tgz", + "integrity": "sha512-WfoBo4E/TbCX1G95XTjbWTE3X2XLG0m1Xbv2cwOtuPdyH9CZvnaA5nCt1ucjaKEgW2A5IF71hxrRhr83Je5xjA==", "dev": true, - "license": "MIT", "dependencies": { - "tslib": "^2.3.1" + "tslib": "^2.4.0" } }, "node_modules/async-retry": { @@ -8511,8 +8273,9 @@ } }, "node_modules/babel-loader/node_modules/yocto-queue": { - "version": "1.0.0", - "license": "MIT", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.1.1.tgz", + "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==", "engines": { "node": ">=12.20" }, @@ -8806,6 +8569,16 @@ "node": ">=8" } }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "optional": true, + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, "node_modules/bintrees": { "version": "1.0.2", "license": "MIT" @@ -8986,15 +8759,6 @@ "node": ">= 0.8" } }, - "node_modules/body-parser/node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, "node_modules/bonjour-service": { "version": "1.2.1", "dev": true, @@ -9022,10 +8786,11 @@ } }, "node_modules/braces": { - "version": "3.0.2", - "license": "MIT", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dependencies": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" }, "engines": { "node": ">=8" @@ -9095,24 +8860,6 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, - "node_modules/browserslist/node_modules/caniuse-lite": { - "version": "1.0.30001589", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "CC-BY-4.0" - }, "node_modules/bser": { "version": "2.1.1", "dev": true, @@ -9122,35 +8869,11 @@ } }, "node_modules/bson": { - "version": "4.7.2", - "license": "Apache-2.0", - "dependencies": { - "buffer": "^5.6.0" - }, + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/bson/-/bson-6.8.0.tgz", + "integrity": "sha512-iOJg8pr7wq2tg/zSlCCHMi3hMm5JTOxLTagf3zxhcenHsFp+c6uOs6K7W5UE7A4QIJGtqh/ZovFNMP4mOPJynQ==", "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/bson/node_modules/buffer": { - "version": "5.7.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" + "node": ">=16.20.1" } }, "node_modules/buffer": { @@ -9276,8 +8999,9 @@ } }, "node_modules/cacache/node_modules/@npmcli/fs": { - "version": "3.1.0", - "license": "ISC", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.1.tgz", + "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==", "dependencies": { "semver": "^7.3.5" }, @@ -9287,7 +9011,8 @@ }, "node_modules/cacache/node_modules/brace-expansion": { "version": "2.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dependencies": { "balanced-match": "^1.0.0" } @@ -9303,21 +9028,20 @@ } }, "node_modules/cacache/node_modules/glob": { - "version": "10.3.10", - "license": "ISC", + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, "funding": { "url": "https://github.com/sponsors/isaacs" } @@ -9330,8 +9054,9 @@ } }, "node_modules/cacache/node_modules/minimatch": { - "version": "9.0.3", - "license": "ISC", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -9343,8 +9068,9 @@ } }, "node_modules/cacache/node_modules/minipass": { - "version": "7.0.4", - "license": "ISC", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "engines": { "node": ">=16 || 14 >=14.17" } @@ -9629,129 +9355,19 @@ "url": "https://github.com/sponsors/fb55" } }, - "node_modules/cheerio-select/node_modules/dom-serializer": { - "version": "1.3.2", + "node_modules/cheerio/node_modules/entities": { + "version": "2.2.0", "dev": true, - "license": "MIT", - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - }, + "license": "BSD-2-Clause", "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/cheerio-select/node_modules/domelementtype": { - "version": "2.2.0", + "node_modules/cheerio/node_modules/htmlparser2": { + "version": "6.1.0", "dev": true, "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "BSD-2-Clause" - }, - "node_modules/cheerio-select/node_modules/domhandler": { - "version": "4.2.2", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/cheerio-select/node_modules/domutils": { - "version": "2.8.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/cheerio-select/node_modules/entities": { - "version": "2.2.0", - "dev": true, - "license": "BSD-2-Clause", - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/cheerio/node_modules/dom-serializer": { - "version": "1.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/cheerio/node_modules/domelementtype": { - "version": "2.2.0", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "BSD-2-Clause" - }, - "node_modules/cheerio/node_modules/domhandler": { - "version": "4.2.2", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/cheerio/node_modules/domutils": { - "version": "2.8.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/cheerio/node_modules/entities": { - "version": "2.2.0", - "dev": true, - "license": "BSD-2-Clause", - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/cheerio/node_modules/htmlparser2": { - "version": "6.1.0", - "dev": true, - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", + "https://github.com/fb55/htmlparser2?sponsor=1", { "type": "github", "url": "https://github.com/sponsors/fb55" @@ -9803,9 +9419,19 @@ } }, "node_modules/ci-info": { - "version": "3.2.0", + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", "dev": true, - "license": "MIT" + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } }, "node_modules/cjson": { "version": "0.3.0", @@ -10232,13 +9858,6 @@ "util-deprecate": "~1.0.1" } }, - "node_modules/compress-commons/node_modules/string_decoder": { - "version": "1.1.1", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, "node_modules/compressible": { "version": "2.0.18", "dev": true, @@ -10440,13 +10059,6 @@ "node": ">=8" } }, - "node_modules/concurrently/node_modules/rxjs": { - "version": "7.8.1", - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.1.0" - } - }, "node_modules/concurrently/node_modules/supports-color": { "version": "8.1.1", "license": "MIT", @@ -10672,11 +10284,9 @@ } }, "node_modules/convert-source-map": { - "version": "1.8.0", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.1" - } + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" }, "node_modules/cookie": { "version": "0.6.0", @@ -10831,18 +10441,19 @@ } }, "node_modules/core-js-pure": { - "version": "3.19.0", - "dev": true, + "version": "3.38.0", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.38.0.tgz", + "integrity": "sha512-8balb/HAXo06aHP58mZMtXgD8vcnXz9tUDePgqBgJgKdmTlMt+jw3ujqniuBDQXMvTzxnMpxHFeuSM3g1jWQuQ==", "hasInstallScript": true, - "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" } }, "node_modules/core-util-is": { - "version": "1.0.3", - "license": "MIT" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" }, "node_modules/cors": { "version": "2.8.5", @@ -11055,65 +10666,6 @@ "url": "https://github.com/sponsors/fb55" } }, - "node_modules/css-select/node_modules/dom-serializer": { - "version": "1.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/css-select/node_modules/domelementtype": { - "version": "2.2.0", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "BSD-2-Clause" - }, - "node_modules/css-select/node_modules/domhandler": { - "version": "4.2.2", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/css-select/node_modules/domutils": { - "version": "2.8.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/css-select/node_modules/entities": { - "version": "2.2.0", - "dev": true, - "license": "BSD-2-Clause", - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, "node_modules/css-tree": { "version": "1.1.3", "license": "MIT", @@ -11171,6 +10723,11 @@ "cssom": "0.3.x" } }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + }, "node_modules/csv": { "version": "5.5.3", "license": "MIT", @@ -11455,17 +11012,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cypress/node_modules/lru-cache": { - "version": "6.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/cypress/node_modules/mimic-fn": { "version": "2.1.0", "dev": true, @@ -11474,14 +11020,6 @@ "node": ">=6" } }, - "node_modules/cypress/node_modules/minimist": { - "version": "1.2.8", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/cypress/node_modules/onetime": { "version": "5.1.2", "dev": true, @@ -11514,12 +11052,10 @@ } }, "node_modules/cypress/node_modules/semver": { - "version": "7.5.4", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, "bin": { "semver": "bin/semver.js" }, @@ -11541,11 +11077,6 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/cypress/node_modules/yallist": { - "version": "4.0.0", - "dev": true, - "license": "ISC" - }, "node_modules/d3": { "version": "5.16.0", "license": "BSD-3-Clause", @@ -11721,8 +11252,9 @@ "license": "BSD-3-Clause" }, "node_modules/d3-geo": { - "version": "1.12.1", - "license": "BSD-3-Clause", + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-1.6.3.tgz", + "integrity": "sha512-Sat4T+brCBbHPuFytEJoyoytfPgjDZqPkJhiinenByxTPTkKLWduKsxDtyUpuVgDp1njkjfWHQoolplCiHU1Mw==", "dependencies": { "d3-array": "1" } @@ -11909,8 +11441,9 @@ "license": "MIT" }, "node_modules/dayjs": { - "version": "1.11.10", - "license": "MIT" + "version": "1.11.12", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.12.tgz", + "integrity": "sha512-Rt2g+nTbLlDWZTwwrIXjy9MeiZmSDI375FvZs72ngxx8PDC6YXOeR3q5LAuPzjZQxhiWdRKac7RKV+YyQYfYIg==" }, "node_modules/debounce": { "version": "1.2.1", @@ -12331,13 +11864,44 @@ "csstype": "^3.0.2" } }, - "node_modules/dom-helpers/node_modules/csstype": { - "version": "3.0.9", - "license": "MIT" + "node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/dom-serializer/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } }, "node_modules/dom-walk": { "version": "0.1.2" }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, "node_modules/domexception": { "version": "1.0.1", "dev": true, @@ -12346,19 +11910,48 @@ "webidl-conversions": "^4.0.2" } }, - "node_modules/dot-prop": { - "version": "5.1.1", - "license": "MIT", + "node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, "dependencies": { - "is-obj": "^2.0.0" + "domelementtype": "^2.2.0" }, "engines": { - "node": ">=8" + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" } }, - "node_modules/dotenv": { - "version": "8.2.0", - "license": "BSD-2-Clause", + "node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-prop": { + "version": "5.1.1", + "license": "MIT", + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dotenv": { + "version": "8.2.0", + "license": "BSD-2-Clause", "engines": { "node": ">=8" } @@ -12388,13 +11981,6 @@ "util-deprecate": "~1.0.1" } }, - "node_modules/duplexer2/node_modules/string_decoder": { - "version": "1.1.1", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, "node_modules/duplexer3": { "version": "0.1.5", "license": "BSD-3-Clause" @@ -12637,25 +12223,16 @@ } }, "node_modules/enquirer": { - "version": "2.4.1", - "dev": true, - "license": "MIT", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", "dependencies": { - "ansi-colors": "^4.1.1", - "strip-ansi": "^6.0.1" + "ansi-colors": "^4.1.1" }, "engines": { "node": ">=8.6" } }, - "node_modules/enquirer/node_modules/ansi-colors": { - "version": "4.1.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/entities": { "version": "3.0.1", "license": "BSD-2-Clause", @@ -13623,16 +13200,17 @@ } }, "node_modules/eslint/node_modules/optionator": { - "version": "0.9.3", + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, - "license": "MIT", "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" }, "engines": { "node": ">= 0.8.0" @@ -13732,9 +13310,10 @@ } }, "node_modules/espree/node_modules/acorn": { - "version": "8.11.3", + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", "dev": true, - "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -13794,9 +13373,10 @@ } }, "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.2.0", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, - "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } @@ -14212,14 +13792,6 @@ "node": ">= 0.8" } }, - "node_modules/express/node_modules/toidentifier": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.6" - } - }, "node_modules/extend": { "version": "3.0.2", "license": "MIT" @@ -14381,6 +13953,11 @@ "dev": true, "license": "MIT" }, + "node_modules/fast-loops": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/fast-loops/-/fast-loops-1.1.4.tgz", + "integrity": "sha512-8dbd3XWoKCTms18ize6JmQF1SFnnfj5s0B7rRry22EofgMu7B6LKHVh+XfFqFGsqnbH54xgeO83PzpKI+ODhlg==" + }, "node_modules/fast-shallow-equal": { "version": "1.0.0" }, @@ -14388,27 +13965,6 @@ "version": "2.1.1", "license": "MIT" }, - "node_modules/fast-xml-parser": { - "version": "4.2.5", - "funding": [ - { - "type": "paypal", - "url": "https://paypal.me/naturalintelligence" - }, - { - "type": "github", - "url": "https://github.com/sponsors/NaturalIntelligence" - } - ], - "license": "MIT", - "optional": true, - "dependencies": { - "strnum": "^1.0.5" - }, - "bin": { - "fxparser": "src/cli/cli.js" - } - }, "node_modules/fastest-levenshtein": { "version": "1.0.16", "dev": true, @@ -14466,8 +14022,9 @@ } }, "node_modules/fbemitter/node_modules/fbjs": { - "version": "3.0.4", - "license": "MIT", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.5.tgz", + "integrity": "sha512-ztsSx77JBtkuMrEypfhgc3cI0+0h+svqeie7xHbh1k/IKdcydnvadp/mUaGgjAOXQmQSxsqgaRhS3q9fy+1kxg==", "dependencies": { "cross-fetch": "^3.1.5", "fbjs-css-vars": "^1.0.0", @@ -14475,7 +14032,7 @@ "object-assign": "^4.1.0", "promise": "^7.1.1", "setimmediate": "^1.0.5", - "ua-parser-js": "^0.7.30" + "ua-parser-js": "^1.0.35" } }, "node_modules/fbemitter/node_modules/object-assign": { @@ -14485,6 +14042,28 @@ "node": ">=0.10.0" } }, + "node_modules/fbemitter/node_modules/ua-parser-js": { + "version": "1.0.38", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.38.tgz", + "integrity": "sha512-Aq5ppTOfvrCMgAPneW1HfWj66Xi7XL+/mIy996R1/CLS/rcyJQm6QZdsKrUeivDFQ+Oc9Wyuwor8Ze8peEoUoQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + }, + { + "type": "github", + "url": "https://github.com/sponsors/faisalman" + } + ], + "engines": { + "node": "*" + } + }, "node_modules/fbjs": { "version": "0.8.18", "license": "MIT", @@ -14675,6 +14254,13 @@ "node": ">= 10" } }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "optional": true + }, "node_modules/filelist": { "version": "1.0.4", "license": "Apache-2.0", @@ -14707,8 +14293,9 @@ } }, "node_modules/fill-range": { - "version": "7.0.1", - "license": "MIT", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -14813,8 +14400,9 @@ } }, "node_modules/flux/node_modules/fbjs": { - "version": "3.0.4", - "license": "MIT", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.5.tgz", + "integrity": "sha512-ztsSx77JBtkuMrEypfhgc3cI0+0h+svqeie7xHbh1k/IKdcydnvadp/mUaGgjAOXQmQSxsqgaRhS3q9fy+1kxg==", "dependencies": { "cross-fetch": "^3.1.5", "fbjs-css-vars": "^1.0.0", @@ -14822,7 +14410,7 @@ "object-assign": "^4.1.0", "promise": "^7.1.1", "setimmediate": "^1.0.5", - "ua-parser-js": "^0.7.30" + "ua-parser-js": "^1.0.35" } }, "node_modules/flux/node_modules/object-assign": { @@ -14832,6 +14420,28 @@ "node": ">=0.10.0" } }, + "node_modules/flux/node_modules/ua-parser-js": { + "version": "1.0.38", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.38.tgz", + "integrity": "sha512-Aq5ppTOfvrCMgAPneW1HfWj66Xi7XL+/mIy996R1/CLS/rcyJQm6QZdsKrUeivDFQ+Oc9Wyuwor8Ze8peEoUoQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + }, + { + "type": "github", + "url": "https://github.com/sponsors/faisalman" + } + ], + "engines": { + "node": "*" + } + }, "node_modules/fn.name": { "version": "1.1.0", "license": "MIT" @@ -14878,14 +14488,16 @@ } }, "node_modules/fontkit/node_modules/deep-equal": { - "version": "2.2.0", - "license": "MIT", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.3.tgz", + "integrity": "sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==", "dependencies": { - "call-bind": "^1.0.2", - "es-get-iterator": "^1.1.2", - "get-intrinsic": "^1.1.3", + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.5", + "es-get-iterator": "^1.1.3", + "get-intrinsic": "^1.2.2", "is-arguments": "^1.1.1", - "is-array-buffer": "^3.0.1", + "is-array-buffer": "^3.0.2", "is-date-object": "^1.0.5", "is-regex": "^1.1.4", "is-shared-array-buffer": "^1.0.2", @@ -14893,11 +14505,14 @@ "object-is": "^1.1.5", "object-keys": "^1.1.1", "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", + "regexp.prototype.flags": "^1.5.1", "side-channel": "^1.0.4", "which-boxed-primitive": "^1.0.2", "which-collection": "^1.0.1", - "which-typed-array": "^1.1.9" + "which-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -15061,8 +14676,9 @@ } }, "node_modules/fs-extra/node_modules/universalify": { - "version": "2.0.0", - "license": "MIT", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "engines": { "node": ">= 10.0.0" } @@ -15092,8 +14708,9 @@ } }, "node_modules/fs-write-stream-atomic/node_modules/readable-stream": { - "version": "2.3.7", - "license": "MIT", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -15104,17 +14721,23 @@ "util-deprecate": "~1.0.1" } }, - "node_modules/fs-write-stream-atomic/node_modules/string_decoder": { - "version": "1.1.1", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, "node_modules/fs.realpath": { "version": "1.0.0", "license": "ISC" }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, "node_modules/fstream": { "version": "1.0.12", "license": "ISC", @@ -15942,9 +15565,10 @@ } }, "node_modules/getos/node_modules/async": { - "version": "3.2.4", - "dev": true, - "license": "MIT" + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", + "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", + "dev": true }, "node_modules/getpass": { "version": "0.1.7", @@ -16489,9 +16113,10 @@ } }, "node_modules/hpack.js/node_modules/readable-stream": { - "version": "2.3.7", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, - "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -16502,14 +16127,6 @@ "util-deprecate": "~1.0.1" } }, - "node_modules/hpack.js/node_modules/string_decoder": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, "node_modules/html-element-map": { "version": "1.3.1", "dev": true, @@ -16571,14 +16188,15 @@ "license": "MIT" }, "node_modules/http-errors": { - "version": "1.8.0", - "license": "MIT", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", "dependencies": { "depd": "~1.1.2", "inherits": "2.0.4", "setprototypeof": "1.2.0", "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" + "toidentifier": "1.0.1" }, "engines": { "node": ">= 0.6" @@ -16773,30 +16391,6 @@ "npm": ">=4.0.0" } }, - "node_modules/imask/node_modules/@babel/runtime-corejs3": { - "version": "7.23.1", - "license": "MIT", - "dependencies": { - "core-js-pure": "^3.30.2", - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/imask/node_modules/core-js-pure": { - "version": "3.33.0", - "hasInstallScript": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/imask/node_modules/regenerator-runtime": { - "version": "0.14.0", - "license": "MIT" - }, "node_modules/immutable": { "version": "3.8.2", "license": "MIT", @@ -16826,9 +16420,10 @@ } }, "node_modules/import-local": { - "version": "3.1.0", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", + "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", "dev": true, - "license": "MIT", "dependencies": { "pkg-dir": "^4.2.0", "resolve-cwd": "^3.0.0" @@ -17045,9 +16640,10 @@ "license": "BSD-3-Clause" }, "node_modules/ipaddr.js": { - "version": "2.1.0", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz", + "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==", "dev": true, - "license": "MIT", "engines": { "node": ">= 10" } @@ -17508,13 +17104,11 @@ } }, "node_modules/is-stream": { - "version": "2.0.1", - "license": "MIT", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-string": { @@ -17809,11 +17403,6 @@ "node": ">=6" } }, - "node_modules/istanbul/node_modules/abbrev": { - "version": "1.0.9", - "dev": true, - "license": "ISC" - }, "node_modules/istanbul/node_modules/async": { "version": "1.5.2", "dev": true, @@ -17933,14 +17522,12 @@ } }, "node_modules/jackspeak": { - "version": "2.3.6", - "license": "BlueOak-1.0.0", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", "dependencies": { "@isaacs/cliui": "^8.0.2" }, - "engines": { - "node": ">=14" - }, "funding": { "url": "https://github.com/sponsors/isaacs" }, @@ -18611,6 +18198,25 @@ "node": ">=0.10.0" } }, + "node_modules/jest-config/node_modules/fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "deprecated": "The v1 package contains DANGEROUS / INSECURE binaries. Upgrade to safe fsevents v2", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + }, + "engines": { + "node": ">= 4.0" + } + }, "node_modules/jest-config/node_modules/is-number": { "version": "3.0.0", "dev": true, @@ -20174,6 +19780,25 @@ "node": ">=0.10.0" } }, + "node_modules/jest-runner/node_modules/fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "deprecated": "The v1 package contains DANGEROUS / INSECURE binaries. Upgrade to safe fsevents v2", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + }, + "engines": { + "node": ">= 4.0" + } + }, "node_modules/jest-runner/node_modules/is-number": { "version": "3.0.0", "dev": true, @@ -20540,6 +20165,25 @@ "node": ">=0.10.0" } }, + "node_modules/jest-runtime/node_modules/fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "deprecated": "The v1 package contains DANGEROUS / INSECURE binaries. Upgrade to safe fsevents v2", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + }, + "engines": { + "node": ">= 4.0" + } + }, "node_modules/jest-runtime/node_modules/is-fullwidth-code-point": { "version": "2.0.0", "dev": true, @@ -21676,9 +21320,10 @@ "license": "MIT" }, "node_modules/jsdom/node_modules/sax": { - "version": "1.3.0", - "dev": true, - "license": "ISC" + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", + "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", + "dev": true }, "node_modules/jsdom/node_modules/source-map": { "version": "0.6.1", @@ -21690,9 +21335,10 @@ } }, "node_modules/jsdom/node_modules/ws": { - "version": "5.2.3", + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.4.tgz", + "integrity": "sha512-fFCejsuC8f9kOSu9FYaOw8CdO68O3h5v0lg4p74o8JqWpwTf9tniOD+nOB78aWoVSS6WptVUmDrp/KPsMVBWFQ==", "dev": true, - "license": "MIT", "dependencies": { "async-limiter": "~1.0.0" } @@ -21825,22 +21471,10 @@ "npm": ">=6" } }, - "node_modules/jsonwebtoken/node_modules/lru-cache": { - "version": "6.0.0", - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/jsonwebtoken/node_modules/semver": { - "version": "7.6.0", - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "bin": { "semver": "bin/semver.js" }, @@ -21848,10 +21482,6 @@ "node": ">=10" } }, - "node_modules/jsonwebtoken/node_modules/yallist": { - "version": "4.0.0", - "license": "ISC" - }, "node_modules/jsprim": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", @@ -22113,8 +21743,9 @@ } }, "node_modules/koa-router/node_modules/path-to-regexp": { - "version": "6.2.0", - "license": "MIT" + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.2.tgz", + "integrity": "sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw==" }, "node_modules/koa-send": { "version": "5.0.1", @@ -22245,13 +21876,6 @@ "util-deprecate": "~1.0.1" } }, - "node_modules/lazystream/node_modules/string_decoder": { - "version": "1.1.1", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, "node_modules/left-pad": { "version": "1.3.0", "dev": true, @@ -22453,14 +22077,6 @@ "dev": true, "license": "MIT" }, - "node_modules/listr2/node_modules/rxjs": { - "version": "7.8.1", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.1.0" - } - }, "node_modules/listr2/node_modules/slice-ansi": { "version": "3.0.0", "dev": true, @@ -23052,17 +22668,6 @@ "is-buffer": "~1.1.6" } }, - "node_modules/md5-file": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "bin": { - "md5-file": "cli.js" - }, - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/mdn-data": { "version": "2.0.14", "license": "CC0-1.0" @@ -23244,8 +22849,12 @@ } }, "node_modules/minimist": { - "version": "1.2.6", - "license": "MIT" + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/minipass": { "version": "3.3.6", @@ -23362,10 +22971,11 @@ } }, "node_modules/mkdirp": { - "version": "0.5.5", - "license": "MIT", + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dependencies": { - "minimist": "^1.2.5" + "minimist": "^1.2.6" }, "bin": { "mkdirp": "bin/cmd.js" @@ -23812,6 +23422,7 @@ }, "node_modules/mongodb-connection-string-url": { "version": "2.6.0", + "dev": true, "license": "Apache-2.0", "dependencies": { "@types/whatwg-url": "^8.2.1", @@ -23820,6 +23431,7 @@ }, "node_modules/mongodb-connection-string-url/node_modules/tr46": { "version": "3.0.0", + "dev": true, "license": "MIT", "dependencies": { "punycode": "^2.1.1" @@ -23830,6 +23442,7 @@ }, "node_modules/mongodb-connection-string-url/node_modules/webidl-conversions": { "version": "7.0.0", + "dev": true, "license": "BSD-2-Clause", "engines": { "node": ">=12" @@ -23837,6 +23450,7 @@ }, "node_modules/mongodb-connection-string-url/node_modules/whatwg-url": { "version": "11.0.0", + "dev": true, "license": "MIT", "dependencies": { "tr46": "^3.0.0", @@ -23847,78 +23461,68 @@ } }, "node_modules/mongodb-memory-server": { - "version": "7.6.3", + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/mongodb-memory-server/-/mongodb-memory-server-9.2.0.tgz", + "integrity": "sha512-w/usKdYtby5EALERxmA0+et+D0brP0InH3a26shNDgGefXA61hgl6U0P3IfwqZlEGRZdkbZig3n57AHZgDiwvg==", "dev": true, "hasInstallScript": true, - "license": "MIT", "dependencies": { - "mongodb-memory-server-core": "7.6.3", - "tslib": "^2.3.0" + "mongodb-memory-server-core": "9.2.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=12.22.0" + "node": ">=14.20.1" } }, "node_modules/mongodb-memory-server-core": { - "version": "7.6.3", + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/mongodb-memory-server-core/-/mongodb-memory-server-core-9.2.0.tgz", + "integrity": "sha512-9SWZEy+dGj5Fvm5RY/mtqHZKS64o4heDwReD4SsfR7+uNgtYo+JN41kPCcJeIH3aJf04j25i5Dia2s52KmsMPA==", "dev": true, - "license": "MIT", "dependencies": { - "@types/mongodb": "^3.6.20", - "@types/tmp": "^0.2.2", - "async-mutex": "^0.3.2", - "camelcase": "^6.1.0", - "debug": "^4.2.0", + "async-mutex": "^0.4.0", + "camelcase": "^6.3.0", + "debug": "^4.3.4", "find-cache-dir": "^3.3.2", - "get-port": "^5.1.1", - "https-proxy-agent": "^5.0.0", - "md5-file": "^5.0.0", - "mkdirp": "^1.0.4", - "mongodb": "^3.7.3", - "new-find-package-json": "^1.1.0", - "semver": "^7.3.5", - "tar-stream": "^2.1.4", - "tmp": "^0.2.1", - "tslib": "^2.3.0", - "uuid": "^8.3.1", - "yauzl": "^2.10.0" + "follow-redirects": "^1.15.6", + "https-proxy-agent": "^7.0.4", + "mongodb": "^5.9.1", + "new-find-package-json": "^2.0.0", + "semver": "^7.6.0", + "tar-stream": "^3.1.7", + "tslib": "^2.6.2", + "yauzl": "^3.1.3" }, "engines": { - "node": ">=12.22.0" + "node": ">=14.20.1" } }, "node_modules/mongodb-memory-server-core/node_modules/agent-base": { - "version": "6.0.2", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", "dev": true, - "license": "MIT", "dependencies": { - "debug": "4" + "debug": "^4.3.4" }, "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/mongodb-memory-server-core/node_modules/bl": { - "version": "2.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "readable-stream": "^2.3.5", - "safe-buffer": "^5.1.1" + "node": ">= 14" } }, "node_modules/mongodb-memory-server-core/node_modules/bson": { - "version": "1.1.6", + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/bson/-/bson-5.5.1.tgz", + "integrity": "sha512-ix0EwukN2EpC0SRWIj/7B5+A6uQMQy6KMREI9qQqvgpkV2frH63T0UDVd1SYedL6dNCmDBYB3QtXi4ISk9YT+g==", "dev": true, - "license": "Apache-2.0", "engines": { - "node": ">=0.6.19" + "node": ">=14.20.1" } }, "node_modules/mongodb-memory-server-core/node_modules/camelcase": { "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, - "license": "MIT", "engines": { "node": ">=10" }, @@ -23928,8 +23532,9 @@ }, "node_modules/mongodb-memory-server-core/node_modules/find-cache-dir": { "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", "dev": true, - "license": "MIT", "dependencies": { "commondir": "^1.0.1", "make-dir": "^3.0.2", @@ -23944,8 +23549,9 @@ }, "node_modules/mongodb-memory-server-core/node_modules/find-up": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, - "license": "MIT", "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -23955,21 +23561,23 @@ } }, "node_modules/mongodb-memory-server-core/node_modules/https-proxy-agent": { - "version": "5.0.1", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", + "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", "dev": true, - "license": "MIT", "dependencies": { - "agent-base": "6", + "agent-base": "^7.0.2", "debug": "4" }, "engines": { - "node": ">= 6" + "node": ">= 14" } }, "node_modules/mongodb-memory-server-core/node_modules/locate-path": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, - "license": "MIT", "dependencies": { "p-locate": "^4.1.0" }, @@ -23979,8 +23587,9 @@ }, "node_modules/mongodb-memory-server-core/node_modules/make-dir": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, - "license": "MIT", "dependencies": { "semver": "^6.0.0" }, @@ -23993,45 +23602,41 @@ }, "node_modules/mongodb-memory-server-core/node_modules/make-dir/node_modules/semver": { "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "license": "ISC", "bin": { "semver": "bin/semver.js" } }, - "node_modules/mongodb-memory-server-core/node_modules/mkdirp": { - "version": "1.0.4", - "dev": true, - "license": "MIT", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/mongodb-memory-server-core/node_modules/mongodb": { - "version": "3.7.4", + "version": "5.9.2", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-5.9.2.tgz", + "integrity": "sha512-H60HecKO4Bc+7dhOv4sJlgvenK4fQNqqUIlXxZYQNbfEWSALGAwGoyJd/0Qwk4TttFXUOHJ2ZJQe/52ScaUwtQ==", "dev": true, - "license": "Apache-2.0", "dependencies": { - "bl": "^2.2.1", - "bson": "^1.1.4", - "denque": "^1.4.1", - "optional-require": "^1.1.8", - "safe-buffer": "^5.1.2" + "bson": "^5.5.0", + "mongodb-connection-string-url": "^2.6.0", + "socks": "^2.7.1" }, "engines": { - "node": ">=4" + "node": ">=14.20.1" }, "optionalDependencies": { - "saslprep": "^1.0.0" + "@mongodb-js/saslprep": "^1.1.0" + }, + "peerDependencies": { + "@aws-sdk/credential-providers": "^3.188.0", + "@mongodb-js/zstd": "^1.0.0", + "kerberos": "^1.0.0 || ^2.0.0", + "mongodb-client-encryption": ">=2.3.0 <3", + "snappy": "^7.2.2" }, "peerDependenciesMeta": { - "aws4": { + "@aws-sdk/credential-providers": { "optional": true }, - "bson-ext": { + "@mongodb-js/zstd": { "optional": true }, "kerberos": { @@ -24040,9 +23645,6 @@ "mongodb-client-encryption": { "optional": true }, - "mongodb-extjson": { - "optional": true - }, "snappy": { "optional": true } @@ -24050,8 +23652,9 @@ }, "node_modules/mongodb-memory-server-core/node_modules/p-locate": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, - "license": "MIT", "dependencies": { "p-limit": "^2.2.0" }, @@ -24061,16 +23664,18 @@ }, "node_modules/mongodb-memory-server-core/node_modules/path-exists": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/mongodb-memory-server-core/node_modules/pkg-dir": { "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, - "license": "MIT", "dependencies": { "find-up": "^4.0.0" }, @@ -24078,26 +23683,54 @@ "node": ">=8" } }, - "node_modules/mongodb-memory-server-core/node_modules/readable-stream": { - "version": "2.3.8", + "node_modules/mongodb-memory-server-core/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mongodb-memory-server-core/node_modules/socks": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz", + "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", "dev": true, - "license": "MIT", "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "ip-address": "^9.0.5", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.0.0", + "npm": ">= 3.0.0" } }, - "node_modules/mongodb-memory-server-core/node_modules/string_decoder": { - "version": "1.1.1", + "node_modules/mongodb-memory-server-core/node_modules/tar-stream": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", + "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", "dev": true, - "license": "MIT", "dependencies": { - "safe-buffer": "~5.1.0" + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" + } + }, + "node_modules/mongodb-memory-server-core/node_modules/yauzl": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-3.1.3.tgz", + "integrity": "sha512-JCCdmlJJWv7L0q/KylOekyRaUrdEoUxWkWVcgorosTROCFWiS9p2NNPE9Yb91ak7b1N5SxAZEliWpspbZccivw==", + "dev": true, + "dependencies": { + "buffer-crc32": "~0.2.3", + "pend": "~1.2.0" + }, + "engines": { + "node": ">=12" } }, "node_modules/mongodb-restore": { @@ -24115,8 +23748,10 @@ } }, "node_modules/mongodb-restore/node_modules/bson": { - "version": "1.1.6", - "license": "Apache-2.0", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/bson/-/bson-1.0.1.tgz", + "integrity": "sha512-p3oeUToy0bUe0/l+GTsTzGuf4XoiyM44KwZR5VZ/Cbva7OSkyRLS49RfpAMItnzTTcsplDxcLpHaEaOnu1sriA==", + "deprecated": "Fixed a critical issue with BSON serialization documented in CVE-2019-2391, see https://bit.ly/2KcpXdo for more details", "engines": { "node": ">=0.6.19" } @@ -24190,14 +23825,6 @@ "@types/webidl-conversions": "*" } }, - "node_modules/mongodb/node_modules/bson": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.6.tgz", - "integrity": "sha512-EvVNVeGo4tHxwi8L6bPj3y3itEvStdwvvlojVxxbyYfoaxJ6keLgrTuKdyfEAszFK+H3olzBuafE0yoh0D1gdg==", - "engines": { - "node": ">=0.6.19" - } - }, "node_modules/mongodb/node_modules/mongodb-connection-string-url": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-3.0.1.tgz", @@ -24314,8 +23941,9 @@ } }, "node_modules/multistream/node_modules/readable-stream": { - "version": "2.3.7", - "license": "MIT", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -24326,13 +23954,6 @@ "util-deprecate": "~1.0.1" } }, - "node_modules/multistream/node_modules/string_decoder": { - "version": "1.1.1", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, "node_modules/mute-stream": { "version": "0.0.8", "license": "ISC" @@ -24369,15 +23990,21 @@ "react-dom": "*" } }, - "node_modules/nano-css/node_modules/csstype": { - "version": "3.0.11", - "license": "MIT" + "node_modules/nano-css/node_modules/css-in-js-utils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/css-in-js-utils/-/css-in-js-utils-3.1.0.tgz", + "integrity": "sha512-fJAcud6B3rRu+KHYk+Bwf+WFL2MDCJJ1XG9x137tJQ0xYxor7XziQtuGFbWNdqrvF4Tk26O3H73nfVqXt/fW1A==", + "dependencies": { + "hyphenate-style-name": "^1.0.3" + } }, "node_modules/nano-css/node_modules/inline-style-prefixer": { - "version": "6.0.1", - "license": "MIT", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/inline-style-prefixer/-/inline-style-prefixer-6.0.4.tgz", + "integrity": "sha512-FwXmZC2zbeeS7NzGjJ6pAiqRhXR0ugUShSNb6GApMl6da0/XGc4MOJsoWAywia52EEWbXNSy0pzkwz/+Y+swSg==", "dependencies": { - "css-in-js-utils": "^2.0.0" + "css-in-js-utils": "^3.1.0", + "fast-loops": "^1.1.3" } }, "node_modules/nanoid": { @@ -24477,8 +24104,9 @@ } }, "node_modules/needle/node_modules/sax": { - "version": "1.3.0", - "license": "ISC" + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", + "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==" }, "node_modules/negotiator": { "version": "0.6.3", @@ -24500,12 +24128,12 @@ } }, "node_modules/new-find-package-json": { - "version": "1.2.0", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/new-find-package-json/-/new-find-package-json-2.0.0.tgz", + "integrity": "sha512-lDcBsjBSMlj3LXH2v/FW3txlh2pYTjmbOXPYJD93HI5EwuLzI11tdHSIpUMmfq/IOsldj4Ps8M8flhm+pCK4Ew==", "dev": true, - "license": "MIT", "dependencies": { - "debug": "^4.3.4", - "tslib": "^2.4.0" + "debug": "^4.3.4" }, "engines": { "node": ">=12.22.0" @@ -24681,24 +24309,11 @@ "url": "https://opencollective.com/nodemon" } }, - "node_modules/nodemon/node_modules/lru-cache": { - "version": "6.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/nodemon/node_modules/semver": { - "version": "7.6.0", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, "bin": { "semver": "bin/semver.js" }, @@ -24706,11 +24321,6 @@ "node": ">=10" } }, - "node_modules/nodemon/node_modules/yallist": { - "version": "4.0.0", - "dev": true, - "license": "ISC" - }, "node_modules/nomnom": { "version": "1.5.2", "dependencies": { @@ -25147,17 +24757,6 @@ "version": "0.1.4", "license": "MIT" }, - "node_modules/optional-require": { - "version": "1.1.8", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "require-at": "^1.0.6" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/optionator": { "version": "0.8.3", "dev": true, @@ -25403,8 +25002,9 @@ } }, "node_modules/pac-proxy-agent/node_modules/agent-base": { - "version": "7.1.0", - "license": "MIT", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", "dependencies": { "debug": "^4.3.4" }, @@ -25424,8 +25024,9 @@ } }, "node_modules/pac-proxy-agent/node_modules/https-proxy-agent": { - "version": "7.0.4", - "license": "MIT", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", + "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", "dependencies": { "agent-base": "^7.0.2", "debug": "4" @@ -25435,8 +25036,9 @@ } }, "node_modules/pac-proxy-agent/node_modules/socks": { - "version": "2.7.3", - "license": "MIT", + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz", + "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", "dependencies": { "ip-address": "^9.0.5", "smart-buffer": "^4.2.0" @@ -25447,12 +25049,13 @@ } }, "node_modules/pac-proxy-agent/node_modules/socks-proxy-agent": { - "version": "8.0.2", - "license": "MIT", + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.4.tgz", + "integrity": "sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw==", "dependencies": { - "agent-base": "^7.0.2", + "agent-base": "^7.1.1", "debug": "^4.3.4", - "socks": "^2.7.1" + "socks": "^2.8.3" }, "engines": { "node": ">= 14" @@ -25469,6 +25072,11 @@ "node": ">= 14" } }, + "node_modules/package-json-from-dist": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", + "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==" + }, "node_modules/pako": { "version": "0.2.9", "license": "MIT" @@ -25569,29 +25177,29 @@ "license": "MIT" }, "node_modules/path-scurry": { - "version": "1.10.1", - "license": "BlueOak-1.0.0", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dependencies": { - "lru-cache": "^9.1.1 || ^10.0.0", + "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=16 || 14 >=14.18" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.1.0", - "license": "ISC", - "engines": { - "node": "14 || >=16.14" - } + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" }, "node_modules/path-scurry/node_modules/minipass": { - "version": "7.0.4", - "license": "ISC", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "engines": { "node": ">=16 || 14 >=14.17" } @@ -25901,16 +25509,6 @@ "version": "2.15.1", "license": "MIT" }, - "node_modules/pm2/node_modules/enquirer": { - "version": "2.3.6", - "license": "MIT", - "dependencies": { - "ansi-colors": "^4.1.1" - }, - "engines": { - "node": ">=8.6" - } - }, "node_modules/pm2/node_modules/eventemitter2": { "version": "5.0.1", "license": "MIT" @@ -26058,14 +25656,15 @@ "license": "MIT" }, "node_modules/postcss/node_modules/nanoid": { - "version": "3.3.6", + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", "funding": [ { "type": "github", "url": "https://github.com/sponsors/ai" } ], - "license": "MIT", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -26088,9 +25687,10 @@ } }, "node_modules/prettier": { - "version": "3.2.5", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", + "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", "dev": true, - "license": "MIT", "bin": { "prettier": "bin/prettier.cjs" }, @@ -26190,11 +25790,11 @@ } }, "node_modules/prismjs": { - "version": "1.29.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", - "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==", - "engines": { - "node": ">=6" + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.17.1.tgz", + "integrity": "sha512-PrEDJAFdUGbOP6xK/UsfkC5ghJsPJviKgnQOoxaDbBjwc8op68Quupwt1DeAFoG8GImPhiKXAvvsH7wDSLsu1Q==", + "optionalDependencies": { + "clipboard": "^2.0.0" } }, "node_modules/process": { @@ -26380,8 +25980,9 @@ } }, "node_modules/proxy-agent/node_modules/agent-base": { - "version": "7.1.0", - "license": "MIT", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", "dependencies": { "debug": "^4.3.4" }, @@ -26401,8 +26002,9 @@ } }, "node_modules/proxy-agent/node_modules/https-proxy-agent": { - "version": "7.0.4", - "license": "MIT", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", + "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", "dependencies": { "agent-base": "^7.0.2", "debug": "4" @@ -26419,8 +26021,9 @@ } }, "node_modules/proxy-agent/node_modules/socks": { - "version": "2.7.3", - "license": "MIT", + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz", + "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", "dependencies": { "ip-address": "^9.0.5", "smart-buffer": "^4.2.0" @@ -26431,12 +26034,13 @@ } }, "node_modules/proxy-agent/node_modules/socks-proxy-agent": { - "version": "8.0.2", - "license": "MIT", + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.4.tgz", + "integrity": "sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw==", "dependencies": { - "agent-base": "^7.0.2", + "agent-base": "^7.1.1", "debug": "^4.3.4", - "socks": "^2.7.1" + "socks": "^2.8.3" }, "engines": { "node": ">= 14" @@ -26480,10 +26084,11 @@ "license": "MIT" }, "node_modules/qs": { - "version": "6.11.2", - "license": "BSD-3-Clause", + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", "dependencies": { - "side-channel": "^1.0.4" + "side-channel": "^1.0.6" }, "engines": { "node": ">=0.6" @@ -26532,6 +26137,11 @@ "dev": true, "license": "CC0-1.0" }, + "node_modules/ramda": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.1.tgz", + "integrity": "sha512-PgIdVpn5y5Yns8vqb8FzBUEYn98V3xcPgawAkkgj0YJ0qDsnHCiNmZYfOGMgOvoB0eWFLpYbhxUR3mxfDIMvpw==" + }, "node_modules/randexp": { "version": "0.4.6", "dev": true, @@ -26612,13 +26222,6 @@ "node": ">= 0.8" } }, - "node_modules/raw-body/node_modules/toidentifier": { - "version": "1.0.1", - "license": "MIT", - "engines": { - "node": ">=0.6" - } - }, "node_modules/react": { "version": "16.14.0", "license": "MIT", @@ -26892,17 +26495,6 @@ "react-dom": "^0.14.9 || ^15.3.0 || ^16.0.0-rc || ^16.0" } }, - "node_modules/react-simple-maps/node_modules/d3-array": { - "version": "1.2.4", - "license": "BSD-3-Clause" - }, - "node_modules/react-simple-maps/node_modules/d3-geo": { - "version": "1.6.3", - "license": "BSD-3-Clause", - "dependencies": { - "d3-array": "1" - } - }, "node_modules/react-swipeable": { "version": "5.5.1", "license": "MIT", @@ -27058,19 +26650,6 @@ "vega-lite": "*" } }, - "node_modules/react-vega/node_modules/@types/react": { - "version": "16.14.19", - "license": "MIT", - "dependencies": { - "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" - } - }, - "node_modules/react-vega/node_modules/csstype": { - "version": "3.0.9", - "license": "MIT" - }, "node_modules/react-vis-force": { "version": "0.3.1", "license": "MIT", @@ -27371,8 +26950,9 @@ } }, "node_modules/redux-polyglot/node_modules/redux": { - "version": "4.1.1", - "license": "MIT", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz", + "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==", "dependencies": { "@babel/runtime": "^7.9.2" } @@ -27427,13 +27007,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/refractor/node_modules/prismjs": { - "version": "1.17.1", - "license": "MIT", - "optionalDependencies": { - "clipboard": "^2.0.0" - } - }, "node_modules/regenerate": { "version": "1.4.2", "license": "MIT" @@ -27449,8 +27022,9 @@ } }, "node_modules/regenerator-runtime": { - "version": "0.13.9", - "license": "MIT" + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" }, "node_modules/regenerator-transform": { "version": "0.15.2", @@ -27637,14 +27211,6 @@ "semver": "bin/semver" } }, - "node_modules/require-at": { - "version": "1.0.6", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=4" - } - }, "node_modules/require-directory": { "version": "2.1.1", "license": "MIT", @@ -27930,6 +27496,14 @@ "version": "1.3.3", "license": "BSD-3-Clause" }, + "node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dependencies": { + "tslib": "^2.1.0" + } + }, "node_modules/safe-array-concat": { "version": "1.1.0", "license": "MIT", @@ -28240,18 +27814,6 @@ "node": ">=0.10.0" } }, - "node_modules/saslprep": { - "version": "1.0.3", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "sparse-bitfield": "^3.0.3" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/sax": { "version": "0.4.3", "license": "MIT" @@ -28434,18 +27996,11 @@ "node": ">= 0.8" } }, - "node_modules/send/node_modules/toidentifier": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.6" - } - }, "node_modules/serialize-javascript": { - "version": "6.0.1", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "randombytes": "^2.1.0" } @@ -28649,12 +28204,17 @@ "license": "BSD-2-Clause" }, "node_modules/side-channel": { - "version": "1.0.4", - "license": "MIT", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -28690,24 +28250,11 @@ "node": ">=10" } }, - "node_modules/simple-update-notifier/node_modules/lru-cache": { - "version": "6.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/simple-update-notifier/node_modules/semver": { - "version": "7.6.0", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, "bin": { "semver": "bin/semver.js" }, @@ -28715,11 +28262,6 @@ "node": ">=10" } }, - "node_modules/simple-update-notifier/node_modules/yallist": { - "version": "4.0.0", - "dev": true, - "license": "ISC" - }, "node_modules/sirv": { "version": "2.0.3", "dev": true, @@ -29129,8 +28671,9 @@ } }, "node_modules/ssri": { - "version": "10.0.5", - "license": "ISC", + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz", + "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==", "dependencies": { "minipass": "^7.0.3" }, @@ -29139,8 +28682,9 @@ } }, "node_modules/ssri/node_modules/minipass": { - "version": "7.0.4", - "license": "ISC", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "engines": { "node": ">=16 || 14 >=14.17" } @@ -29160,8 +28704,9 @@ } }, "node_modules/stack-utils": { - "version": "2.0.5", - "license": "MIT", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", "dependencies": { "escape-string-regexp": "^2.0.0" }, @@ -29339,30 +28884,13 @@ } }, "node_modules/string_decoder": { - "version": "1.3.0", - "license": "MIT", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dependencies": { - "safe-buffer": "~5.2.0" + "safe-buffer": "~5.1.0" } }, - "node_modules/string_decoder/node_modules/safe-buffer": { - "version": "5.2.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, "node_modules/string-hash": { "version": "1.1.3", "license": "CC0-1.0" @@ -29670,8 +29198,9 @@ } }, "node_modules/tar": { - "version": "6.1.15", - "license": "ISC", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", @@ -29697,8 +29226,9 @@ } }, "node_modules/tar-fs/node_modules/tar-stream": { - "version": "3.1.6", - "license": "MIT", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", + "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", "dependencies": { "b4a": "^1.6.4", "fast-fifo": "^1.2.0", @@ -29909,9 +29439,10 @@ } }, "node_modules/terser/node_modules/acorn": { - "version": "8.11.3", + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", "dev": true, - "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -30117,8 +29648,9 @@ "license": "MIT" }, "node_modules/toidentifier": { - "version": "1.0.0", - "license": "MIT", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", "engines": { "node": ">=0.6" } @@ -30239,8 +29771,9 @@ } }, "node_modules/tslib": { - "version": "2.6.2", - "license": "0BSD" + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", + "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==" }, "node_modules/tsscmp": { "version": "1.0.6", @@ -30656,13 +30189,6 @@ "util-deprecate": "~1.0.1" } }, - "node_modules/unzipper/node_modules/string_decoder": { - "version": "1.1.1", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, "node_modules/update-browserslist-db": { "version": "1.0.13", "funding": [ @@ -31016,8 +30542,9 @@ } }, "node_modules/vega-functions/node_modules/d3-geo": { - "version": "3.1.0", - "license": "ISC", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz", + "integrity": "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==", "dependencies": { "d3-array": "2.5.0 - 3" }, @@ -31047,8 +30574,9 @@ } }, "node_modules/vega-geo/node_modules/d3-geo": { - "version": "3.1.0", - "license": "ISC", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz", + "integrity": "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==", "dependencies": { "d3-array": "2.5.0 - 3" }, @@ -31317,6 +30845,14 @@ "vega-util": "^1.17.2" } }, + "node_modules/vega-parser/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "engines": { + "node": ">= 10" + } + }, "node_modules/vega-parser/node_modules/d3-color": { "version": "3.1.0", "license": "ISC", @@ -31324,73 +30860,322 @@ "node": ">=12" } }, - "node_modules/vega-parser/node_modules/d3-geo": { - "version": "3.1.0", - "license": "ISC", + "node_modules/vega-parser/node_modules/d3-dsv": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", + "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", "dependencies": { - "d3-array": "2.5.0 - 3" + "commander": "7", + "iconv-lite": "0.6", + "rw": "1" + }, + "bin": { + "csv2json": "bin/dsv2json.js", + "csv2tsv": "bin/dsv2dsv.js", + "dsv2dsv": "bin/dsv2dsv.js", + "dsv2json": "bin/dsv2json.js", + "json2csv": "bin/json2dsv.js", + "json2dsv": "bin/json2dsv.js", + "json2tsv": "bin/json2dsv.js", + "tsv2csv": "bin/dsv2dsv.js", + "tsv2json": "bin/dsv2json.js" }, "engines": { "node": ">=12" } }, - "node_modules/vega-parser/node_modules/vega-functions": { - "version": "5.14.0", - "license": "BSD-3-Clause", - "dependencies": { - "d3-array": "^3.2.2", - "d3-color": "^3.1.0", - "d3-geo": "^3.1.0", - "vega-dataflow": "^5.7.5", - "vega-expression": "^5.1.0", - "vega-scale": "^7.3.0", - "vega-scenegraph": "^4.10.2", - "vega-selections": "^5.4.2", - "vega-statistics": "^1.8.1", - "vega-time": "^2.1.1", - "vega-util": "^1.17.1" + "node_modules/vega-parser/node_modules/d3-format": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", + "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", + "engines": { + "node": ">=12" } }, - "node_modules/vega-projection": { - "version": "1.6.0", - "license": "BSD-3-Clause", + "node_modules/vega-parser/node_modules/d3-geo": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz", + "integrity": "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==", "dependencies": { - "d3-geo": "^3.1.0", - "d3-geo-projection": "^4.0.0", - "vega-scale": "^7.3.0" + "d3-array": "2.5.0 - 3" + }, + "engines": { + "node": ">=12" } }, - "node_modules/vega-projection/node_modules/commander": { - "version": "7.2.0", - "license": "MIT", + "node_modules/vega-parser/node_modules/d3-interpolate": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "dependencies": { + "d3-color": "1 - 3" + }, "engines": { - "node": ">= 10" + "node": ">=12" } }, - "node_modules/vega-projection/node_modules/d3-geo": { + "node_modules/vega-parser/node_modules/d3-path": { "version": "3.1.0", - "license": "ISC", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", + "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", + "engines": { + "node": ">=12" + } + }, + "node_modules/vega-parser/node_modules/d3-scale": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", "dependencies": { - "d3-array": "2.5.0 - 3" + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" }, "engines": { "node": ">=12" } }, - "node_modules/vega-projection/node_modules/d3-geo-projection": { - "version": "4.0.0", - "license": "ISC", + "node_modules/vega-parser/node_modules/d3-scale-chromatic": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", + "integrity": "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==", "dependencies": { - "commander": "7", - "d3-array": "1 - 3", - "d3-geo": "1.12.0 - 3" - }, - "bin": { - "geo2svg": "bin/geo2svg.js", - "geograticule": "bin/geograticule.js", - "geoproject": "bin/geoproject.js", - "geoquantize": "bin/geoquantize.js", - "geostitch": "bin/geostitch.js" + "d3-color": "1 - 3", + "d3-interpolate": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/vega-parser/node_modules/d3-shape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", + "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", + "dependencies": { + "d3-path": "^3.1.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/vega-parser/node_modules/d3-time": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", + "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", + "dependencies": { + "d3-array": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/vega-parser/node_modules/d3-time-format": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", + "dependencies": { + "d3-time": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/vega-parser/node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/vega-parser/node_modules/topojson-client": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/topojson-client/-/topojson-client-3.1.0.tgz", + "integrity": "sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==", + "dependencies": { + "commander": "2" + }, + "bin": { + "topo2geo": "bin/topo2geo", + "topomerge": "bin/topomerge", + "topoquantize": "bin/topoquantize" + } + }, + "node_modules/vega-parser/node_modules/topojson-client/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "node_modules/vega-parser/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "node_modules/vega-parser/node_modules/vega-dataflow": { + "version": "5.7.6", + "resolved": "https://registry.npmjs.org/vega-dataflow/-/vega-dataflow-5.7.6.tgz", + "integrity": "sha512-9Md8+5iUC1MVKPKDyZ7pCEHk6I9am+DgaMzZqo/27O/KI4f23/WQXPyuI8jbNmc/mkm340P0TKREmzL5M7+2Dg==", + "dependencies": { + "vega-format": "^1.1.2", + "vega-loader": "^4.5.2", + "vega-util": "^1.17.2" + } + }, + "node_modules/vega-parser/node_modules/vega-expression": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.1.1.tgz", + "integrity": "sha512-zv9L1Hm0KHE9M7mldHyz8sXbGu3KmC0Cdk7qfHkcTNS75Jpsem6jkbu6ZAwx5cNUeW91AxUQOu77r4mygq2wUQ==", + "dependencies": { + "@types/estree": "^1.0.0", + "vega-util": "^1.17.2" + } + }, + "node_modules/vega-parser/node_modules/vega-format": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vega-format/-/vega-format-1.1.2.tgz", + "integrity": "sha512-0kUfAj0dg0U6GcEY0Kp6LiSTCZ8l8jl1qVdQyToMyKmtZg/q56qsiJQZy3WWRr1MtWkTIZL71xSJXgjwjeUaAw==", + "dependencies": { + "d3-array": "^3.2.2", + "d3-format": "^3.1.0", + "d3-time-format": "^4.1.0", + "vega-time": "^2.1.2", + "vega-util": "^1.17.2" + } + }, + "node_modules/vega-parser/node_modules/vega-functions": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/vega-functions/-/vega-functions-5.15.0.tgz", + "integrity": "sha512-pCqmm5efd+3M65jrJGxEy3UGuRksmK6DnWijoSNocnxdCBxez+yqUUVX9o2pN8VxMe3648vZnR9/Vk5CXqRvIQ==", + "dependencies": { + "d3-array": "^3.2.2", + "d3-color": "^3.1.0", + "d3-geo": "^3.1.0", + "vega-dataflow": "^5.7.6", + "vega-expression": "^5.1.1", + "vega-scale": "^7.4.1", + "vega-scenegraph": "^4.13.0", + "vega-selections": "^5.4.2", + "vega-statistics": "^1.9.0", + "vega-time": "^2.1.2", + "vega-util": "^1.17.2" + } + }, + "node_modules/vega-parser/node_modules/vega-loader": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/vega-loader/-/vega-loader-4.5.2.tgz", + "integrity": "sha512-ktIdGz3DRIS3XfTP9lJ6oMT5cKwC86nQkjUbXZbOtwXQFVNE2xVWBuH13GP6FKUZxg5hJCMtb5v/e/fwTvhKsQ==", + "dependencies": { + "d3-dsv": "^3.0.1", + "node-fetch": "^2.6.7", + "topojson-client": "^3.1.0", + "vega-format": "^1.1.2", + "vega-util": "^1.17.2" + } + }, + "node_modules/vega-parser/node_modules/vega-scale": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/vega-scale/-/vega-scale-7.4.1.tgz", + "integrity": "sha512-dArA28DbV/M92O2QvswnzCmQ4bq9WwLKUoyhqFYWCltmDwkmvX7yhqiFLFMWPItIm7mi4Qyoygby6r4DKd1X2A==", + "dependencies": { + "d3-array": "^3.2.2", + "d3-interpolate": "^3.0.1", + "d3-scale": "^4.0.2", + "d3-scale-chromatic": "^3.1.0", + "vega-time": "^2.1.2", + "vega-util": "^1.17.2" + } + }, + "node_modules/vega-parser/node_modules/vega-scenegraph": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/vega-scenegraph/-/vega-scenegraph-4.13.0.tgz", + "integrity": "sha512-nfl45XtuqB5CxyIZJ+bbJ+dofzosPCRlmF+eUQo+0J23NkNXsTzur+1krJDSdhcw0SOYs4sbYRoMz1cpuOM4+Q==", + "dependencies": { + "d3-path": "^3.1.0", + "d3-shape": "^3.2.0", + "vega-canvas": "^1.2.7", + "vega-loader": "^4.5.2", + "vega-scale": "^7.4.1", + "vega-util": "^1.17.2" + } + }, + "node_modules/vega-parser/node_modules/vega-time": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/vega-time/-/vega-time-2.1.2.tgz", + "integrity": "sha512-6rXc6JdDt8MnCRy6UzUCsa6EeFycPDmvioMddLfKw38OYCV8pRQC5nw44gyddOwXgUTJLiCtn/sp53P0iA542A==", + "dependencies": { + "d3-array": "^3.2.2", + "d3-time": "^3.1.0", + "vega-util": "^1.17.2" + } + }, + "node_modules/vega-parser/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "node_modules/vega-parser/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/vega-projection": { + "version": "1.6.0", + "license": "BSD-3-Clause", + "dependencies": { + "d3-geo": "^3.1.0", + "d3-geo-projection": "^4.0.0", + "vega-scale": "^7.3.0" + } + }, + "node_modules/vega-projection/node_modules/commander": { + "version": "7.2.0", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/vega-projection/node_modules/d3-geo": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz", + "integrity": "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==", + "dependencies": { + "d3-array": "2.5.0 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/vega-projection/node_modules/d3-geo-projection": { + "version": "4.0.0", + "license": "ISC", + "dependencies": { + "commander": "7", + "d3-array": "1 - 3", + "d3-geo": "1.12.0 - 3" + }, + "bin": { + "geo2svg": "bin/geo2svg.js", + "geograticule": "bin/geograticule.js", + "geoproject": "bin/geoproject.js", + "geoquantize": "bin/geoquantize.js", + "geostitch": "bin/geostitch.js" }, "engines": { "node": ">=12" @@ -31629,10 +31414,6 @@ "extsprintf": "^1.2.0" } }, - "node_modules/verror/node_modules/core-util-is": { - "version": "1.0.2", - "license": "MIT" - }, "node_modules/vizion": { "version": "2.2.1", "license": "Apache-2.0", @@ -31783,9 +31564,10 @@ } }, "node_modules/webpack-bundle-analyzer/node_modules/acorn": { - "version": "8.11.2", + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", "dev": true, - "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -32003,30 +31785,30 @@ } }, "node_modules/webpack-dev-server/node_modules/glob": { - "version": "10.3.10", + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dev": true, - "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/webpack-dev-server/node_modules/minimatch": { - "version": "9.0.3", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, - "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -32038,34 +31820,34 @@ } }, "node_modules/webpack-dev-server/node_modules/minipass": { - "version": "7.0.4", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true, - "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" } }, "node_modules/webpack-dev-server/node_modules/rimraf": { - "version": "5.0.5", + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz", + "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==", "dev": true, - "license": "ISC", "dependencies": { "glob": "^10.3.7" }, "bin": { "rimraf": "dist/esm/bin.mjs" }, - "engines": { - "node": ">=14" - }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/webpack-dev-server/node_modules/ws": { - "version": "8.16.0", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", "dev": true, - "license": "MIT", "engines": { "node": ">=10.0.0" }, @@ -32104,9 +31886,10 @@ } }, "node_modules/webpack/node_modules/acorn": { - "version": "8.11.2", + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", "dev": true, - "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -32312,20 +32095,21 @@ "license": "MIT" }, "node_modules/winston": { - "version": "3.11.0", - "license": "MIT", + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/winston/-/winston-3.13.1.tgz", + "integrity": "sha512-SvZit7VFNvXRzbqGHsv5KSmgbEYR5EiQfDAL9gxYkRqa934Hnk++zze0wANKtMHcy/gI4W/3xmSDwlhf865WGw==", "dependencies": { "@colors/colors": "^1.6.0", "@dabh/diagnostics": "^2.0.2", "async": "^3.2.3", "is-stream": "^2.0.0", - "logform": "^2.4.0", + "logform": "^2.6.0", "one-time": "^1.0.0", "readable-stream": "^3.4.0", "safe-stable-stringify": "^2.3.1", "stack-trace": "0.0.x", "triple-beam": "^1.3.0", - "winston-transport": "^4.5.0" + "winston-transport": "^4.7.0" }, "engines": { "node": ">= 12.0.0" @@ -32362,9 +32146,10 @@ "license": "MIT" }, "node_modules/word-wrap": { - "version": "1.2.4", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -32487,8 +32272,9 @@ } }, "node_modules/ws": { - "version": "7.5.9", - "license": "MIT", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", "engines": { "node": ">=8.3.0" }, @@ -32516,8 +32302,9 @@ } }, "node_modules/xml-js/node_modules/sax": { - "version": "1.2.4", - "license": "ISC" + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", + "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==" }, "node_modules/xml-mapping": { "version": "1.7.2", @@ -32772,9 +32559,10 @@ } }, "packages/@recuperateur/async-busboy/node_modules/@types/yargs": { - "version": "16.0.6", + "version": "16.0.9", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.9.tgz", + "integrity": "sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==", "dev": true, - "license": "MIT", "dependencies": { "@types/yargs-parser": "*" } @@ -32980,7 +32768,7 @@ "version": "1.16.4", "dependencies": { "lodash": "4.17.21", - "mongodb": "4.17.0", + "mongodb": "6.8.0", "node-object-hash": "2.3.10", "quick-lru": "4.0.1", "relaxed-json": "1.0.3", @@ -32991,955 +32779,31 @@ "@ezs/core": "*" } }, - "packages/ezsLodex/node_modules/@aws-sdk/client-cognito-identity": { - "version": "3.395.0", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@aws-crypto/sha256-browser": "3.0.0", - "@aws-crypto/sha256-js": "3.0.0", - "@aws-sdk/client-sts": "3.395.0", - "@aws-sdk/credential-provider-node": "3.395.0", - "@aws-sdk/middleware-host-header": "3.391.0", - "@aws-sdk/middleware-logger": "3.391.0", - "@aws-sdk/middleware-recursion-detection": "3.391.0", - "@aws-sdk/middleware-signing": "3.391.0", - "@aws-sdk/middleware-user-agent": "3.391.0", - "@aws-sdk/types": "3.391.0", - "@aws-sdk/util-endpoints": "3.391.0", - "@aws-sdk/util-user-agent-browser": "3.391.0", - "@aws-sdk/util-user-agent-node": "3.391.0", - "@smithy/config-resolver": "^2.0.3", - "@smithy/fetch-http-handler": "^2.0.3", - "@smithy/hash-node": "^2.0.3", - "@smithy/invalid-dependency": "^2.0.3", - "@smithy/middleware-content-length": "^2.0.3", - "@smithy/middleware-endpoint": "^2.0.3", - "@smithy/middleware-retry": "^2.0.3", - "@smithy/middleware-serde": "^2.0.3", - "@smithy/middleware-stack": "^2.0.0", - "@smithy/node-config-provider": "^2.0.3", - "@smithy/node-http-handler": "^2.0.3", - "@smithy/protocol-http": "^2.0.3", - "@smithy/smithy-client": "^2.0.3", - "@smithy/types": "^2.2.0", - "@smithy/url-parser": "^2.0.3", - "@smithy/util-base64": "^2.0.0", - "@smithy/util-body-length-browser": "^2.0.0", - "@smithy/util-body-length-node": "^2.0.0", - "@smithy/util-defaults-mode-browser": "^2.0.3", - "@smithy/util-defaults-mode-node": "^2.0.3", - "@smithy/util-retry": "^2.0.0", - "@smithy/util-utf8": "^2.0.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "packages/ezsLodex/node_modules/@aws-sdk/client-sso": { - "version": "3.395.0", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@aws-crypto/sha256-browser": "3.0.0", - "@aws-crypto/sha256-js": "3.0.0", - "@aws-sdk/middleware-host-header": "3.391.0", - "@aws-sdk/middleware-logger": "3.391.0", - "@aws-sdk/middleware-recursion-detection": "3.391.0", - "@aws-sdk/middleware-user-agent": "3.391.0", - "@aws-sdk/types": "3.391.0", - "@aws-sdk/util-endpoints": "3.391.0", - "@aws-sdk/util-user-agent-browser": "3.391.0", - "@aws-sdk/util-user-agent-node": "3.391.0", - "@smithy/config-resolver": "^2.0.3", - "@smithy/fetch-http-handler": "^2.0.3", - "@smithy/hash-node": "^2.0.3", - "@smithy/invalid-dependency": "^2.0.3", - "@smithy/middleware-content-length": "^2.0.3", - "@smithy/middleware-endpoint": "^2.0.3", - "@smithy/middleware-retry": "^2.0.3", - "@smithy/middleware-serde": "^2.0.3", - "@smithy/middleware-stack": "^2.0.0", - "@smithy/node-config-provider": "^2.0.3", - "@smithy/node-http-handler": "^2.0.3", - "@smithy/protocol-http": "^2.0.3", - "@smithy/smithy-client": "^2.0.3", - "@smithy/types": "^2.2.0", - "@smithy/url-parser": "^2.0.3", - "@smithy/util-base64": "^2.0.0", - "@smithy/util-body-length-browser": "^2.0.0", - "@smithy/util-body-length-node": "^2.0.0", - "@smithy/util-defaults-mode-browser": "^2.0.3", - "@smithy/util-defaults-mode-node": "^2.0.3", - "@smithy/util-retry": "^2.0.0", - "@smithy/util-utf8": "^2.0.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "packages/ezsLodex/node_modules/@aws-sdk/client-sts": { - "version": "3.395.0", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@aws-crypto/sha256-browser": "3.0.0", - "@aws-crypto/sha256-js": "3.0.0", - "@aws-sdk/credential-provider-node": "3.395.0", - "@aws-sdk/middleware-host-header": "3.391.0", - "@aws-sdk/middleware-logger": "3.391.0", - "@aws-sdk/middleware-recursion-detection": "3.391.0", - "@aws-sdk/middleware-sdk-sts": "3.391.0", - "@aws-sdk/middleware-signing": "3.391.0", - "@aws-sdk/middleware-user-agent": "3.391.0", - "@aws-sdk/types": "3.391.0", - "@aws-sdk/util-endpoints": "3.391.0", - "@aws-sdk/util-user-agent-browser": "3.391.0", - "@aws-sdk/util-user-agent-node": "3.391.0", - "@smithy/config-resolver": "^2.0.3", - "@smithy/fetch-http-handler": "^2.0.3", - "@smithy/hash-node": "^2.0.3", - "@smithy/invalid-dependency": "^2.0.3", - "@smithy/middleware-content-length": "^2.0.3", - "@smithy/middleware-endpoint": "^2.0.3", - "@smithy/middleware-retry": "^2.0.3", - "@smithy/middleware-serde": "^2.0.3", - "@smithy/middleware-stack": "^2.0.0", - "@smithy/node-config-provider": "^2.0.3", - "@smithy/node-http-handler": "^2.0.3", - "@smithy/protocol-http": "^2.0.3", - "@smithy/smithy-client": "^2.0.3", - "@smithy/types": "^2.2.0", - "@smithy/url-parser": "^2.0.3", - "@smithy/util-base64": "^2.0.0", - "@smithy/util-body-length-browser": "^2.0.0", - "@smithy/util-body-length-node": "^2.0.0", - "@smithy/util-defaults-mode-browser": "^2.0.3", - "@smithy/util-defaults-mode-node": "^2.0.3", - "@smithy/util-retry": "^2.0.0", - "@smithy/util-utf8": "^2.0.0", - "fast-xml-parser": "4.2.5", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "packages/ezsLodex/node_modules/@aws-sdk/credential-provider-cognito-identity": { - "version": "3.395.0", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@aws-sdk/client-cognito-identity": "3.395.0", - "@aws-sdk/types": "3.391.0", - "@smithy/property-provider": "^2.0.0", - "@smithy/types": "^2.2.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } + "packages/ezsLodex/node_modules/commander": { + "version": "2.20.3", + "license": "MIT" }, - "packages/ezsLodex/node_modules/@aws-sdk/credential-provider-env": { - "version": "3.391.0", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@aws-sdk/types": "3.391.0", - "@smithy/property-provider": "^2.0.0", - "@smithy/types": "^2.2.0", - "tslib": "^2.5.0" - }, + "packages/ezsLodex/node_modules/quick-lru": { + "version": "4.0.1", + "license": "MIT", "engines": { - "node": ">=14.0.0" + "node": ">=8" } }, - "packages/ezsLodex/node_modules/@aws-sdk/credential-provider-ini": { - "version": "3.395.0", - "license": "Apache-2.0", - "optional": true, + "packages/ezsLodex/node_modules/relaxed-json": { + "version": "1.0.3", + "license": "BSD-3-Clause", "dependencies": { - "@aws-sdk/credential-provider-env": "3.391.0", - "@aws-sdk/credential-provider-process": "3.391.0", - "@aws-sdk/credential-provider-sso": "3.395.0", - "@aws-sdk/credential-provider-web-identity": "3.391.0", - "@aws-sdk/types": "3.391.0", - "@smithy/credential-provider-imds": "^2.0.0", - "@smithy/property-provider": "^2.0.0", - "@smithy/shared-ini-file-loader": "^2.0.0", - "@smithy/types": "^2.2.0", - "tslib": "^2.5.0" + "chalk": "^2.4.2", + "commander": "^2.6.0" }, - "engines": { - "node": ">=14.0.0" - } - }, - "packages/ezsLodex/node_modules/@aws-sdk/credential-provider-node": { - "version": "3.395.0", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@aws-sdk/credential-provider-env": "3.391.0", - "@aws-sdk/credential-provider-ini": "3.395.0", - "@aws-sdk/credential-provider-process": "3.391.0", - "@aws-sdk/credential-provider-sso": "3.395.0", - "@aws-sdk/credential-provider-web-identity": "3.391.0", - "@aws-sdk/types": "3.391.0", - "@smithy/credential-provider-imds": "^2.0.0", - "@smithy/property-provider": "^2.0.0", - "@smithy/shared-ini-file-loader": "^2.0.0", - "@smithy/types": "^2.2.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "packages/ezsLodex/node_modules/@aws-sdk/credential-provider-process": { - "version": "3.391.0", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@aws-sdk/types": "3.391.0", - "@smithy/property-provider": "^2.0.0", - "@smithy/shared-ini-file-loader": "^2.0.0", - "@smithy/types": "^2.2.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "packages/ezsLodex/node_modules/@aws-sdk/credential-provider-sso": { - "version": "3.395.0", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@aws-sdk/client-sso": "3.395.0", - "@aws-sdk/token-providers": "3.391.0", - "@aws-sdk/types": "3.391.0", - "@smithy/property-provider": "^2.0.0", - "@smithy/shared-ini-file-loader": "^2.0.0", - "@smithy/types": "^2.2.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "packages/ezsLodex/node_modules/@aws-sdk/credential-provider-web-identity": { - "version": "3.391.0", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@aws-sdk/types": "3.391.0", - "@smithy/property-provider": "^2.0.0", - "@smithy/types": "^2.2.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "packages/ezsLodex/node_modules/@aws-sdk/credential-providers": { - "version": "3.395.0", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@aws-sdk/client-cognito-identity": "3.395.0", - "@aws-sdk/client-sso": "3.395.0", - "@aws-sdk/client-sts": "3.395.0", - "@aws-sdk/credential-provider-cognito-identity": "3.395.0", - "@aws-sdk/credential-provider-env": "3.391.0", - "@aws-sdk/credential-provider-ini": "3.395.0", - "@aws-sdk/credential-provider-node": "3.395.0", - "@aws-sdk/credential-provider-process": "3.391.0", - "@aws-sdk/credential-provider-sso": "3.395.0", - "@aws-sdk/credential-provider-web-identity": "3.391.0", - "@aws-sdk/types": "3.391.0", - "@smithy/credential-provider-imds": "^2.0.0", - "@smithy/property-provider": "^2.0.0", - "@smithy/types": "^2.2.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "packages/ezsLodex/node_modules/@aws-sdk/middleware-host-header": { - "version": "3.391.0", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@aws-sdk/types": "3.391.0", - "@smithy/protocol-http": "^2.0.3", - "@smithy/types": "^2.2.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "packages/ezsLodex/node_modules/@aws-sdk/middleware-logger": { - "version": "3.391.0", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@aws-sdk/types": "3.391.0", - "@smithy/types": "^2.2.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "packages/ezsLodex/node_modules/@aws-sdk/middleware-recursion-detection": { - "version": "3.391.0", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@aws-sdk/types": "3.391.0", - "@smithy/protocol-http": "^2.0.3", - "@smithy/types": "^2.2.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "packages/ezsLodex/node_modules/@aws-sdk/middleware-sdk-sts": { - "version": "3.391.0", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@aws-sdk/middleware-signing": "3.391.0", - "@aws-sdk/types": "3.391.0", - "@smithy/types": "^2.2.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "packages/ezsLodex/node_modules/@aws-sdk/middleware-signing": { - "version": "3.391.0", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@aws-sdk/types": "3.391.0", - "@smithy/property-provider": "^2.0.0", - "@smithy/protocol-http": "^2.0.3", - "@smithy/signature-v4": "^2.0.0", - "@smithy/types": "^2.2.0", - "@smithy/util-middleware": "^2.0.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "packages/ezsLodex/node_modules/@aws-sdk/middleware-user-agent": { - "version": "3.391.0", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@aws-sdk/types": "3.391.0", - "@aws-sdk/util-endpoints": "3.391.0", - "@smithy/protocol-http": "^2.0.3", - "@smithy/types": "^2.2.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "packages/ezsLodex/node_modules/@aws-sdk/token-providers": { - "version": "3.391.0", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@aws-crypto/sha256-browser": "3.0.0", - "@aws-crypto/sha256-js": "3.0.0", - "@aws-sdk/middleware-host-header": "3.391.0", - "@aws-sdk/middleware-logger": "3.391.0", - "@aws-sdk/middleware-recursion-detection": "3.391.0", - "@aws-sdk/middleware-user-agent": "3.391.0", - "@aws-sdk/types": "3.391.0", - "@aws-sdk/util-endpoints": "3.391.0", - "@aws-sdk/util-user-agent-browser": "3.391.0", - "@aws-sdk/util-user-agent-node": "3.391.0", - "@smithy/config-resolver": "^2.0.3", - "@smithy/fetch-http-handler": "^2.0.3", - "@smithy/hash-node": "^2.0.3", - "@smithy/invalid-dependency": "^2.0.3", - "@smithy/middleware-content-length": "^2.0.3", - "@smithy/middleware-endpoint": "^2.0.3", - "@smithy/middleware-retry": "^2.0.3", - "@smithy/middleware-serde": "^2.0.3", - "@smithy/middleware-stack": "^2.0.0", - "@smithy/node-config-provider": "^2.0.3", - "@smithy/node-http-handler": "^2.0.3", - "@smithy/property-provider": "^2.0.0", - "@smithy/protocol-http": "^2.0.3", - "@smithy/shared-ini-file-loader": "^2.0.0", - "@smithy/smithy-client": "^2.0.3", - "@smithy/types": "^2.2.0", - "@smithy/url-parser": "^2.0.3", - "@smithy/util-base64": "^2.0.0", - "@smithy/util-body-length-browser": "^2.0.0", - "@smithy/util-body-length-node": "^2.0.0", - "@smithy/util-defaults-mode-browser": "^2.0.3", - "@smithy/util-defaults-mode-node": "^2.0.3", - "@smithy/util-retry": "^2.0.0", - "@smithy/util-utf8": "^2.0.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "packages/ezsLodex/node_modules/@aws-sdk/types": { - "version": "3.391.0", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@smithy/types": "^2.2.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "packages/ezsLodex/node_modules/@aws-sdk/util-endpoints": { - "version": "3.391.0", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@aws-sdk/types": "3.391.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "packages/ezsLodex/node_modules/@aws-sdk/util-user-agent-browser": { - "version": "3.391.0", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@aws-sdk/types": "3.391.0", - "@smithy/types": "^2.2.0", - "bowser": "^2.11.0", - "tslib": "^2.5.0" - } - }, - "packages/ezsLodex/node_modules/@aws-sdk/util-user-agent-node": { - "version": "3.391.0", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@aws-sdk/types": "3.391.0", - "@smithy/node-config-provider": "^2.0.3", - "@smithy/types": "^2.2.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "aws-crt": ">=1.0.0" - }, - "peerDependenciesMeta": { - "aws-crt": { - "optional": true - } - } - }, - "packages/ezsLodex/node_modules/@mongodb-js/saslprep": { - "version": "1.1.0", - "license": "MIT", - "optional": true, - "dependencies": { - "sparse-bitfield": "^3.0.3" - } - }, - "packages/ezsLodex/node_modules/@smithy/abort-controller": { - "version": "2.0.4", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@smithy/types": "^2.2.1", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "packages/ezsLodex/node_modules/@smithy/config-resolver": { - "version": "2.0.4", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@smithy/types": "^2.2.1", - "@smithy/util-config-provider": "^2.0.0", - "@smithy/util-middleware": "^2.0.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "packages/ezsLodex/node_modules/@smithy/credential-provider-imds": { - "version": "2.0.4", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@smithy/node-config-provider": "^2.0.4", - "@smithy/property-provider": "^2.0.4", - "@smithy/types": "^2.2.1", - "@smithy/url-parser": "^2.0.4", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "packages/ezsLodex/node_modules/@smithy/eventstream-codec": { - "version": "2.0.4", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@aws-crypto/crc32": "3.0.0", - "@smithy/types": "^2.2.1", - "@smithy/util-hex-encoding": "^2.0.0", - "tslib": "^2.5.0" - } - }, - "packages/ezsLodex/node_modules/@smithy/fetch-http-handler": { - "version": "2.0.4", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@smithy/protocol-http": "^2.0.4", - "@smithy/querystring-builder": "^2.0.4", - "@smithy/types": "^2.2.1", - "@smithy/util-base64": "^2.0.0", - "tslib": "^2.5.0" - } - }, - "packages/ezsLodex/node_modules/@smithy/hash-node": { - "version": "2.0.4", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@smithy/types": "^2.2.1", - "@smithy/util-buffer-from": "^2.0.0", - "@smithy/util-utf8": "^2.0.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "packages/ezsLodex/node_modules/@smithy/invalid-dependency": { - "version": "2.0.4", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@smithy/types": "^2.2.1", - "tslib": "^2.5.0" - } - }, - "packages/ezsLodex/node_modules/@smithy/middleware-content-length": { - "version": "2.0.4", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@smithy/protocol-http": "^2.0.4", - "@smithy/types": "^2.2.1", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "packages/ezsLodex/node_modules/@smithy/middleware-endpoint": { - "version": "2.0.4", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@smithy/middleware-serde": "^2.0.4", - "@smithy/types": "^2.2.1", - "@smithy/url-parser": "^2.0.4", - "@smithy/util-middleware": "^2.0.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "packages/ezsLodex/node_modules/@smithy/middleware-retry": { - "version": "2.0.4", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@smithy/protocol-http": "^2.0.4", - "@smithy/service-error-classification": "^2.0.0", - "@smithy/types": "^2.2.1", - "@smithy/util-middleware": "^2.0.0", - "@smithy/util-retry": "^2.0.0", - "tslib": "^2.5.0", - "uuid": "^8.3.2" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "packages/ezsLodex/node_modules/@smithy/middleware-serde": { - "version": "2.0.4", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@smithy/types": "^2.2.1", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "packages/ezsLodex/node_modules/@smithy/middleware-stack": { - "version": "2.0.0", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "packages/ezsLodex/node_modules/@smithy/node-config-provider": { - "version": "2.0.4", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@smithy/property-provider": "^2.0.4", - "@smithy/shared-ini-file-loader": "^2.0.4", - "@smithy/types": "^2.2.1", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "packages/ezsLodex/node_modules/@smithy/node-http-handler": { - "version": "2.0.4", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@smithy/abort-controller": "^2.0.4", - "@smithy/protocol-http": "^2.0.4", - "@smithy/querystring-builder": "^2.0.4", - "@smithy/types": "^2.2.1", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "packages/ezsLodex/node_modules/@smithy/property-provider": { - "version": "2.0.4", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@smithy/types": "^2.2.1", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "packages/ezsLodex/node_modules/@smithy/protocol-http": { - "version": "2.0.4", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@smithy/types": "^2.2.1", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "packages/ezsLodex/node_modules/@smithy/querystring-builder": { - "version": "2.0.4", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@smithy/types": "^2.2.1", - "@smithy/util-uri-escape": "^2.0.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "packages/ezsLodex/node_modules/@smithy/querystring-parser": { - "version": "2.0.4", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@smithy/types": "^2.2.1", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "packages/ezsLodex/node_modules/@smithy/service-error-classification": { - "version": "2.0.0", - "license": "Apache-2.0", - "optional": true, - "engines": { - "node": ">=14.0.0" - } - }, - "packages/ezsLodex/node_modules/@smithy/shared-ini-file-loader": { - "version": "2.0.4", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@smithy/types": "^2.2.1", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "packages/ezsLodex/node_modules/@smithy/signature-v4": { - "version": "2.0.4", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@smithy/eventstream-codec": "^2.0.4", - "@smithy/is-array-buffer": "^2.0.0", - "@smithy/types": "^2.2.1", - "@smithy/util-hex-encoding": "^2.0.0", - "@smithy/util-middleware": "^2.0.0", - "@smithy/util-uri-escape": "^2.0.0", - "@smithy/util-utf8": "^2.0.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "packages/ezsLodex/node_modules/@smithy/smithy-client": { - "version": "2.0.4", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@smithy/middleware-stack": "^2.0.0", - "@smithy/types": "^2.2.1", - "@smithy/util-stream": "^2.0.4", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "packages/ezsLodex/node_modules/@smithy/types": { - "version": "2.2.1", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "packages/ezsLodex/node_modules/@smithy/url-parser": { - "version": "2.0.4", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@smithy/querystring-parser": "^2.0.4", - "@smithy/types": "^2.2.1", - "tslib": "^2.5.0" - } - }, - "packages/ezsLodex/node_modules/@smithy/util-base64": { - "version": "2.0.0", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@smithy/util-buffer-from": "^2.0.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "packages/ezsLodex/node_modules/@smithy/util-body-length-node": { - "version": "2.0.0", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "packages/ezsLodex/node_modules/@smithy/util-defaults-mode-browser": { - "version": "2.0.4", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@smithy/property-provider": "^2.0.4", - "@smithy/types": "^2.2.1", - "bowser": "^2.11.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "packages/ezsLodex/node_modules/@smithy/util-defaults-mode-node": { - "version": "2.0.4", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@smithy/config-resolver": "^2.0.4", - "@smithy/credential-provider-imds": "^2.0.4", - "@smithy/node-config-provider": "^2.0.4", - "@smithy/property-provider": "^2.0.4", - "@smithy/types": "^2.2.1", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "packages/ezsLodex/node_modules/@smithy/util-middleware": { - "version": "2.0.0", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "packages/ezsLodex/node_modules/@smithy/util-retry": { - "version": "2.0.0", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@smithy/service-error-classification": "^2.0.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "packages/ezsLodex/node_modules/@smithy/util-stream": { - "version": "2.0.4", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@smithy/fetch-http-handler": "^2.0.4", - "@smithy/node-http-handler": "^2.0.4", - "@smithy/types": "^2.2.1", - "@smithy/util-base64": "^2.0.0", - "@smithy/util-buffer-from": "^2.0.0", - "@smithy/util-hex-encoding": "^2.0.0", - "@smithy/util-utf8": "^2.0.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "packages/ezsLodex/node_modules/@smithy/util-utf8": { - "version": "2.0.0", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@smithy/util-buffer-from": "^2.0.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "packages/ezsLodex/node_modules/bowser": { - "version": "2.11.0", - "license": "MIT", - "optional": true - }, - "packages/ezsLodex/node_modules/commander": { - "version": "2.20.3", - "license": "MIT" - }, - "packages/ezsLodex/node_modules/ip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.1.tgz", - "integrity": "sha512-lJUL9imLTNi1ZfXT+DU6rBBdbiKGBuay9B6xGSPVjUeQwaH1RIGqef8RZkUtHioLmSNpPR5M4HVKJGm1j8FWVQ==" - }, - "packages/ezsLodex/node_modules/mongodb": { - "version": "4.17.0", - "license": "Apache-2.0", - "dependencies": { - "bson": "^4.7.2", - "mongodb-connection-string-url": "^2.6.0", - "socks": "^2.7.1" - }, - "engines": { - "node": ">=12.9.0" - }, - "optionalDependencies": { - "@aws-sdk/credential-providers": "^3.186.0", - "@mongodb-js/saslprep": "^1.1.0" - } - }, - "packages/ezsLodex/node_modules/quick-lru": { - "version": "4.0.1", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "packages/ezsLodex/node_modules/relaxed-json": { - "version": "1.0.3", - "license": "BSD-3-Clause", - "dependencies": { - "chalk": "^2.4.2", - "commander": "^2.6.0" - }, - "bin": { - "rjson": "bin/rjson.js" + "bin": { + "rjson": "bin/rjson.js" }, "engines": { "node": ">= 0.10.0" } }, - "packages/ezsLodex/node_modules/socks": { - "version": "2.7.1", - "license": "MIT", - "dependencies": { - "ip": "^2.0.0", - "smart-buffer": "^4.2.0" - }, - "engines": { - "node": ">= 10.13.0", - "npm": ">= 3.0.0" - } - }, "packages/ezsLodex/node_modules/valid-url": { "version": "1.0.9" }, diff --git a/package.json b/package.json index 120d50fee..f15708971 100644 --- a/package.json +++ b/package.json @@ -236,7 +236,7 @@ }, "devDependencies": { "@babel/eslint-parser": "^7.23.10", - "@shelf/jest-mongodb": "3.0.2", + "@shelf/jest-mongodb": "4.3.2", "@testing-library/jest-dom": "5.16.5", "@testing-library/react": "11.2.7", "@types/ejs": "3.1.5", diff --git a/packages/ezsLodex/jest-setup.js b/packages/ezsLodex/jest-setup.js new file mode 100644 index 000000000..22becf707 --- /dev/null +++ b/packages/ezsLodex/jest-setup.js @@ -0,0 +1 @@ +global.performance = require('perf_hooks').performance; diff --git a/packages/ezsLodex/package.json b/packages/ezsLodex/package.json index 1d629d2e1..fbc0b1ac4 100644 --- a/packages/ezsLodex/package.json +++ b/packages/ezsLodex/package.json @@ -5,7 +5,7 @@ "version": "1.16.4", "dependencies": { "lodash": "4.17.21", - "mongodb": "4.17.0", + "mongodb": "6.8.0", "node-object-hash": "2.3.10", "quick-lru": "4.0.1", "relaxed-json": "1.0.3", diff --git a/packages/ezsLodex/src/reduceQuery.js b/packages/ezsLodex/src/reduceQuery.js index 3328e2dc5..bc2f68ee0 100644 --- a/packages/ezsLodex/src/reduceQuery.js +++ b/packages/ezsLodex/src/reduceQuery.js @@ -55,7 +55,15 @@ export const createFunction = () => async function LodexReduceQuery(data, feed) const collName = String('mp_').concat( hashCoerce.hash({ reducer, fields }), ); - const options = { + const connectionStringURI = this.getParam( + 'connectionStringURI', + data.connectionStringURI || '', + ); + const db = await mongoDatabase(connectionStringURI); + const command = { + mapReduce: 'publishedDataset', + map: map.toString(), + reduce: reduce.toString(), query: filter, finalize, out: { @@ -65,16 +73,13 @@ export const createFunction = () => async function LodexReduceQuery(data, feed) fields, }, }; - const connectionStringURI = this.getParam( - 'connectionStringURI', - data.connectionStringURI || '', - ); - const db = await mongoDatabase(connectionStringURI); - const collection = db.collection('publishedDataset'); - - const result = await collection.mapReduce(map, reduce, options); + const { result: collectionResult, ok } = await db.command(command); + if (ok !== 1) { + return feed.stop(new Error('MongoDB command return an error')) + } - const total = await result.count(); + const result = await db.collection(collectionResult); + const total = await result.estimatedDocumentCount(); const findFilter = {}; @@ -101,6 +106,7 @@ export const createFunction = () => async function LodexReduceQuery(data, feed) const cursor = result.find(findFilter); const count = await cursor.count(); + if (total === 0 || count === 0) { return feed.send({ total: 0 }); } @@ -110,6 +116,7 @@ export const createFunction = () => async function LodexReduceQuery(data, feed) path.push('referer'); value.push(referer); } + const stream = cursor .sort(sort) .skip(skip) @@ -117,7 +124,7 @@ export const createFunction = () => async function LodexReduceQuery(data, feed) .stream() .on('error', (e) => feed.stop(e)) .pipe(ezs('assign', { path, value })); - await feed.flow(stream); + feed.flow(stream); }; export default { diff --git a/packages/ezsLodex/test/mongoQueries.spec.js b/packages/ezsLodex/test/mongoQueries.spec.js index 227dd2b25..d9ebe6c7b 100644 --- a/packages/ezsLodex/test/mongoQueries.spec.js +++ b/packages/ezsLodex/test/mongoQueries.spec.js @@ -1,3 +1,4 @@ +import {performance, PerformanceObserver} from 'perf_hooks'; import from from 'from'; import { MongoClient } from 'mongodb'; import _ from 'lodash'; @@ -14,22 +15,25 @@ ezs.use(ezsLodex); describe('mongo queries', () => { const connectionStringURI = process.env.MONGO_URL; + let client; let connection; let db; beforeAll(async () => { - connection = await MongoClient.connect(process.env.MONGO_URL, { - useNewUrlParser: true, - useUnifiedTopology: true, - }); - db = await connection.db(); + client = new MongoClient(process.env.MONGO_URL); + try { + await client.connect(); + db = await client.db(); + } catch (e) { + console.error(`Unable to connect to ${connectionStringURI}` , e); + } }); afterAll(async () => { await Promise.all( - Object.keys(handles).map(key => handles[key].close()), + Object.keys(handles).map((key) => handles[key].close()), ); - await connection.close(); + await client.close(); }); const initDb = (url, data) => { @@ -40,11 +44,11 @@ describe('mongo queries', () => { return Promise.all(requests); }; - const drop = () => db.dropDatabase(); + const drop = async () => await db.dropDatabase(); describe('getCharacteristics', () => { - beforeEach(() => initDb(connectionStringURI, publishedCharacteristic)); - afterEach(() => drop()); + beforeEach(async () => await initDb(connectionStringURI, publishedCharacteristic)); + afterEach(async () => await drop()); it('should return characteristics', done => { let res = []; @@ -93,8 +97,8 @@ describe('mongo queries', () => { }); describe('getFields', () => { - beforeEach(() => initDb(connectionStringURI, field)); - afterEach(() => drop()); + beforeEach(async () => await initDb(connectionStringURI, field)); + afterEach(async () => await drop()); it('should return the fields', done => { let res = []; @@ -137,8 +141,8 @@ describe('mongo queries', () => { }); describe('runQuery', () => { - beforeEach(() => initDb(connectionStringURI, publishedDataset)); - afterEach(() => drop()); + beforeEach(async () => await initDb(connectionStringURI, publishedDataset)); + afterEach(async () => await drop()); it('should return results', done => { let res = []; @@ -306,8 +310,8 @@ describe('mongo queries', () => { }); describe('reduceQuery', () => { - beforeEach(() => initDb(connectionStringURI, publishedDataset)); - afterEach(() => drop()); + beforeEach(async () => await initDb(connectionStringURI, publishedDataset)); + afterEach(async () => await drop()); it('should throw when no reducer is given', done => { from([ @@ -360,6 +364,8 @@ describe('mongo queries', () => { field: 'publicationDate', }), ) + .pipe(ezs.catch()) + .on('error', done) .on('data', data => { res = [...res, data]; }) @@ -506,7 +512,7 @@ describe('mongo queries', () => { initDb(connectionStringURI, field), ]), ); - afterEach(() => drop()); + afterEach(async () => await drop()); it('should inject title & summary in each item', done => { const res = []; @@ -555,8 +561,8 @@ describe('mongo queries', () => { }); describe('injectDatasetFields', () => { - beforeEach(() => initDb(connectionStringURI, publishedCharacteristic)); - afterEach(() => drop()); + beforeEach(async () => await initDb(connectionStringURI, publishedCharacteristic)); + afterEach(async () => await drop()); it('should inject dataset fiels in each item', done => { const res = []; @@ -593,8 +599,8 @@ describe('mongo queries', () => { }); describe('labelizeFieldID', () => { - beforeEach(() => initDb(connectionStringURI, field)); - afterEach(() => drop()); + beforeEach(async () => await initDb(connectionStringURI, field)); + afterEach(async () => await drop()); const input = [ { @@ -668,8 +674,8 @@ describe('mongo queries', () => { }); }); describe('buildContext', () => { - beforeEach(() => initDb(connectionStringURI, field)); - afterEach(() => drop()); + beforeEach(async () => await initDb(connectionStringURI, field)); + afterEach(async () => await drop()); it('with a standard context', done => { const res = []; @@ -745,8 +751,8 @@ describe('mongo queries', () => { }); describe('countField', () => { - beforeEach(() => initDb(connectionStringURI, publishedDataset)); - afterEach(() => drop()); + beforeEach(async () => await initDb(connectionStringURI, publishedDataset)); + afterEach(async () => await drop()); it('should return results', done => { let res = []; @@ -776,8 +782,8 @@ describe('mongo queries', () => { }); describe('aggregateQuery', () => { - beforeEach(() => initDb(connectionStringURI, publishedDataset)); - afterEach(() => drop()); + beforeEach(async () => await initDb(connectionStringURI, publishedDataset)); + afterEach(async () => await drop()); it('should return results', done => { let res = []; @@ -898,10 +904,10 @@ describe('mongo queries', () => { }); describe('#joinQuery', () => { - beforeEach(() => - initDb(connectionStringURI, publishedDatasetWithSubResource), + beforeEach(async () => + await initDb(connectionStringURI, publishedDatasetWithSubResource), ); - afterEach(() => drop()); + afterEach(async () => await drop()); it('should return no results with parameters matchField, matchValue, joinField as empty string', done => { const results = []; @@ -1097,7 +1103,7 @@ describe('mongo queries', () => { await initDb(connectionStringURI, precomputedDataset); }); - afterEach(() => drop()); + afterEach(async () => await drop()); it('should return 5 result for segments precomputed', done => { const results = []; From 97a1825644b96bef1ae8ec2b714fd1957615251a Mon Sep 17 00:00:00 2001 From: Nicolas Thouvenin Date: Wed, 7 Aug 2024 17:10:27 +0200 Subject: [PATCH 04/19] attempts to fix security dependecy review --- package-lock.json | 45 +++++++++++++++++++++++++++------------------ 1 file changed, 27 insertions(+), 18 deletions(-) diff --git a/package-lock.json b/package-lock.json index c32cfd4cf..f94717a0f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5926,8 +5926,9 @@ } }, "node_modules/@pm2/agent": { - "version": "2.0.3", - "license": "AGPL-3.0", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@pm2/agent/-/agent-2.0.4.tgz", + "integrity": "sha512-n7WYvvTJhHLS2oBb1PjOtgLpMhgImOq8sXkPBw6smeg9LJBWZjiEgPKOpR8mn9UJZsB5P3W4V/MyvNnp31LKeA==", "dependencies": { "async": "~3.2.0", "chalk": "~3.0.0", @@ -5941,7 +5942,7 @@ "pm2-axon-rpc": "~0.7.0", "proxy-agent": "~6.3.0", "semver": "~7.5.0", - "ws": "~7.4.0" + "ws": "~7.5.10" } }, "node_modules/@pm2/agent/node_modules/ansi-styles": { @@ -23460,6 +23461,23 @@ "node": ">=12" } }, + "node_modules/mongodb-core": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-2.1.2.tgz", + "integrity": "sha512-yb82YpD/pNXxd1UxvnSqBVaHkKag2FjGGwlJFwzdmGRaIYjLe9Od8miyn0tfVuoSBDMFN4m5P97vtuDfCmTGzQ==", + "dependencies": { + "bson": "~1.0.1", + "require_optional": "~1.0.0" + } + }, + "node_modules/mongodb-core/node_modules/bson": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.6.tgz", + "integrity": "sha512-EvVNVeGo4tHxwi8L6bPj3y3itEvStdwvvlojVxxbyYfoaxJ6keLgrTuKdyfEAszFK+H3olzBuafE0yoh0D1gdg==", + "engines": { + "node": ">=0.6.19" + } + }, "node_modules/mongodb-memory-server": { "version": "9.2.0", "resolved": "https://registry.npmjs.org/mongodb-memory-server/-/mongodb-memory-server-9.2.0.tgz", @@ -23748,10 +23766,9 @@ } }, "node_modules/mongodb-restore/node_modules/bson": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/bson/-/bson-1.0.1.tgz", - "integrity": "sha512-p3oeUToy0bUe0/l+GTsTzGuf4XoiyM44KwZR5VZ/Cbva7OSkyRLS49RfpAMItnzTTcsplDxcLpHaEaOnu1sriA==", - "deprecated": "Fixed a critical issue with BSON serialization documented in CVE-2019-2391, see https://bit.ly/2KcpXdo for more details", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.6.tgz", + "integrity": "sha512-EvVNVeGo4tHxwi8L6bPj3y3itEvStdwvvlojVxxbyYfoaxJ6keLgrTuKdyfEAszFK+H3olzBuafE0yoh0D1gdg==", "engines": { "node": ">=0.6.19" } @@ -23779,14 +23796,6 @@ "node": ">=0.10.3" } }, - "node_modules/mongodb-restore/node_modules/mongodb-core": { - "version": "2.1.2", - "license": "Apache-2.0", - "dependencies": { - "bson": "~1.0.1", - "require_optional": "~1.0.0" - } - }, "node_modules/mongodb-restore/node_modules/process-nextick-args": { "version": "1.0.7", "license": "MIT" @@ -32272,9 +32281,9 @@ } }, "node_modules/ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", "engines": { "node": ">=8.3.0" }, From f888584fdd4dca68fc59c6a82e2fe9f1bdb5107a Mon Sep 17 00:00:00 2001 From: Nicolas Thouvenin Date: Wed, 7 Aug 2024 17:36:41 +0200 Subject: [PATCH 05/19] fix: ReferenceError: performance is not defined when using performance.now() --- src/api/e2e/jest-setup.js | 1 + src/api/e2e/jest.config.js | 3 +++ 2 files changed, 4 insertions(+) create mode 100644 src/api/e2e/jest-setup.js diff --git a/src/api/e2e/jest-setup.js b/src/api/e2e/jest-setup.js new file mode 100644 index 000000000..22becf707 --- /dev/null +++ b/src/api/e2e/jest-setup.js @@ -0,0 +1 @@ +global.performance = require('perf_hooks').performance; diff --git a/src/api/e2e/jest.config.js b/src/api/e2e/jest.config.js index 658c20ec0..9b34d32c4 100644 --- a/src/api/e2e/jest.config.js +++ b/src/api/e2e/jest.config.js @@ -1,3 +1,6 @@ module.exports = { testEnvironment: 'node', + setupFilesAfterEnv: [ + './jest-setup.js', + ] }; From 319ef32edd8f44b909ff3f6422638c7e7d3b886f Mon Sep 17 00:00:00 2001 From: Nicolas Thouvenin Date: Thu, 8 Aug 2024 10:13:02 +0200 Subject: [PATCH 06/19] rename mongodb functions see https://github.com/mongodb/node-mongodb-native/blob/main/etc/notes/CHANGES_5.0.0.md#collectioninsert-collectionupdate-and-collectionremove-removed --- src/api/controller/api/publishFacets.js | 2 +- src/api/controller/testController.js | 14 +++++++------- src/api/models/configTenant.js | 2 +- src/api/models/dataset.js | 4 ++-- src/api/models/enrichment.js | 2 +- src/api/models/field.js | 8 ++++---- src/api/models/hiddenResource.js | 2 +- src/api/models/precomputed.js | 2 +- src/api/models/publishedDataset.js | 10 +++++----- src/api/models/subresource.js | 2 +- src/api/models/tenant.js | 2 +- src/api/models/utils.js | 4 ++-- src/api/services/enrichment/enrichment.js | 2 +- src/api/services/saveParsedStream.js | 4 ++-- src/api/services/updateFacetValue.js | 2 +- src/common/tests/fixtures.js | 10 +++++----- 16 files changed, 36 insertions(+), 36 deletions(-) diff --git a/src/api/controller/api/publishFacets.js b/src/api/controller/api/publishFacets.js index 23bc09840..205cff221 100644 --- a/src/api/controller/api/publishFacets.js +++ b/src/api/controller/api/publishFacets.js @@ -19,7 +19,7 @@ export default async (ctx, fields, withProgress = false) => { jobLogger.info(ctx.job, 'Publishing facets'); const names = fields.map(({ name }) => name); - await ctx.publishedFacet.remove({ field: { $in: names } }); + await ctx.publishedFacet.deleteOne({ field: { $in: names } }); await facetFields .reduce( diff --git a/src/api/controller/testController.js b/src/api/controller/testController.js index 316334f48..2653791de 100644 --- a/src/api/controller/testController.js +++ b/src/api/controller/testController.js @@ -16,15 +16,15 @@ app.use(mongoRootAdminClient); app.use( route.delete('/fixtures', async (ctx) => { - await ctx.db.collection('publishedDataset').remove({}); - await ctx.db.collection('publishedCharacteristic').remove({}); - await ctx.db.collection('field').remove({}); - await ctx.db.collection('dataset').remove({}); - await ctx.db.collection('subresource').remove({}); - await ctx.db.collection('enrichment').remove({}); + await ctx.db.collection('publishedDataset').drop(); + await ctx.db.collection('publishedCharacteristic').drop(); + await ctx.db.collection('field').drop(); + await ctx.db.collection('dataset').drop(); + await ctx.db.collection('subresource').drop(); + await ctx.db.collection('enrichment').drop(); await ctx.rootAdminDb .collection('tenant') - .remove({ name: { $ne: DEFAULT_TENANT } }); + .deleteOne({ name: { $ne: DEFAULT_TENANT } }); ctx.body = { status: 'ok' }; }), ); diff --git a/src/api/models/configTenant.js b/src/api/models/configTenant.js index d4a13d4a5..dfc9ce13f 100644 --- a/src/api/models/configTenant.js +++ b/src/api/models/configTenant.js @@ -28,7 +28,7 @@ export default async (db) => { }; collection.delete = async (id) => - collection.remove({ $or: [{ _id: new ObjectId(id) }, { _id: id }] }); + collection.deleteOne({ $or: [{ _id: new ObjectId(id) }, { _id: id }] }); collection.update = async (id, data) => { const objectId = new ObjectId(id); diff --git a/src/api/models/dataset.js b/src/api/models/dataset.js index 37ec407a4..e6ff38ca3 100644 --- a/src/api/models/dataset.js +++ b/src/api/models/dataset.js @@ -141,7 +141,7 @@ export default (db) => { }; collection.removeAttribute = async (attribute) => - collection.update({}, { $unset: { [attribute]: 1 } }, { multi: true }); + collection.updateOne({}, { $unset: { [attribute]: 1 } }, { multi: true }); collection.findBy = async (fieldName, value) => { if (!(await collection.ensureIsUnique(fieldName))) { @@ -201,7 +201,7 @@ export default (db) => { }; collection.deleteOne = async (id) => - collection.remove({ _id: new ObjectID(id) }); + collection.deleteOne({ _id: new ObjectID(id) }); return collection; }; diff --git a/src/api/models/enrichment.js b/src/api/models/enrichment.js index 6c3492054..c0d8067aa 100644 --- a/src/api/models/enrichment.js +++ b/src/api/models/enrichment.js @@ -17,7 +17,7 @@ export default async (db) => { }; collection.delete = async (id) => - collection.remove({ $or: [{ _id: new ObjectId(id) }, { _id: id }] }); + collection.deleteOne({ $or: [{ _id: new ObjectId(id) }, { _id: id }] }); collection.update = async (id, data) => { const objectId = new ObjectId(id); diff --git a/src/api/models/field.js b/src/api/models/field.js index 1baa8d796..c73935645 100644 --- a/src/api/models/field.js +++ b/src/api/models/field.js @@ -203,10 +203,10 @@ export default async (db) => { }; collection.removeById = (id) => - collection.remove({ _id: new ObjectID(id), name: { $ne: 'uri' } }); + collection.deleteOne({ _id: new ObjectID(id), name: { $ne: 'uri' } }); collection.removeBySubresource = (subresourceId) => - collection.remove({ + collection.deleteOne({ $or: [ { subresourceId: new ObjectID(subresourceId) }, { subresourceId }, @@ -261,7 +261,7 @@ export default async (db) => { } if (isLogged) { - await collection.update( + await collection.updateOne( { name, contribution: true, @@ -278,7 +278,7 @@ export default async (db) => { return name; } - await collection.update( + await collection.updateOne( { name, contribution: true, diff --git a/src/api/models/hiddenResource.js b/src/api/models/hiddenResource.js index 32452a592..7b973df58 100644 --- a/src/api/models/hiddenResource.js +++ b/src/api/models/hiddenResource.js @@ -18,7 +18,7 @@ export default async (db) => { collection.deleteByUri = async (uri) => collection.deleteOne({ uri }); collection.delete = async (id) => - collection.remove({ _id: new ObjectID(id) }); + collection.deleteOne({ _id: new ObjectID(id) }); collection.castIds = castIdsFactory(collection); diff --git a/src/api/models/precomputed.js b/src/api/models/precomputed.js index 1ed75a075..cd1e3b9bb 100644 --- a/src/api/models/precomputed.js +++ b/src/api/models/precomputed.js @@ -35,7 +35,7 @@ export default async (db) => { // Collection does not exist, no big deal console.warn(`Failed to drop collection 'pc_${id}'`); } - return collection.remove({ + return collection.deleteOne({ $or: [{ _id: new ObjectId(id) }, { _id: id }], }); }; diff --git a/src/api/models/publishedDataset.js b/src/api/models/publishedDataset.js index 2ea88347b..8871cce74 100644 --- a/src/api/models/publishedDataset.js +++ b/src/api/models/publishedDataset.js @@ -52,7 +52,7 @@ export default async (db) => { collection.insertBatchIgnoreDuplicate = (documents) => Promise.all( chunk(documents, 1000).map((data) => - collection.insert(data, { ordered: false }).catch((e) => { + collection.insertOne(data, { ordered: false }).catch((e) => { if (e.code === 11000 /* duplicate error */) { return; } @@ -228,7 +228,7 @@ export default async (db) => { ); collection.hide = async (uri, reason, date = new Date()) => { - await collection.update( + await collection.updateOne( { uri }, { $set: { @@ -242,7 +242,7 @@ export default async (db) => { }; collection.restore = async (uri) => - collection.update( + collection.updateOne( { uri }, { $unset: { removedAt: true, reason: true } }, ); @@ -262,7 +262,7 @@ export default async (db) => { publicationDate, }; - return collection.update( + return collection.updateOne( { uri }, { $addToSet: { @@ -312,7 +312,7 @@ export default async (db) => { return { result: 'noChange' }; } - await collection.update( + await collection.updateOne( { uri, 'contributions.fieldName': name, diff --git a/src/api/models/subresource.js b/src/api/models/subresource.js index 7e5921f9c..525451778 100644 --- a/src/api/models/subresource.js +++ b/src/api/models/subresource.js @@ -16,7 +16,7 @@ export default async (db) => { }; collection.delete = async (id) => - collection.remove({ _id: new ObjectID(id) }); + collection.deleteOne({ _id: new ObjectID(id) }); collection.update = async (id, data) => { const objectId = new ObjectID(id); diff --git a/src/api/models/tenant.js b/src/api/models/tenant.js index ae0f9523c..b5f990c16 100644 --- a/src/api/models/tenant.js +++ b/src/api/models/tenant.js @@ -20,7 +20,7 @@ export default async (db) => { }; collection.delete = async (id) => - collection.remove({ $or: [{ _id: new ObjectID(id) }, { _id: id }] }); + collection.deleteOne({ $or: [{ _id: new ObjectID(id) }, { _id: id }] }); collection.update = async (id, data) => { const objectId = new ObjectID(id); diff --git a/src/api/models/utils.js b/src/api/models/utils.js index 2bfc1947c..52b3672ec 100644 --- a/src/api/models/utils.js +++ b/src/api/models/utils.js @@ -7,8 +7,8 @@ export const castIdsFactory = (collection) => async () => { (acc, item) => acc.then(async () => { await acc; - await collection.remove({ _id: item._id }); - await collection.insert({ + await collection.removeOne({ _id: item._id }); + await collection.insertOne({ ...item, _id: new ObjectID(item._id), }); diff --git a/src/api/services/enrichment/enrichment.js b/src/api/services/enrichment/enrichment.js index 083304aaf..bb70cfc5a 100644 --- a/src/api/services/enrichment/enrichment.js +++ b/src/api/services/enrichment/enrichment.js @@ -423,7 +423,7 @@ export const restoreEnrichments = async (ctx) => { ctx, enrichment, ); - await ctx.enrichment.update(enrichment._id, enrichmentWithRule); + await ctx.enrichment.updateOne(enrichment._id, enrichmentWithRule); } } }; diff --git a/src/api/services/saveParsedStream.js b/src/api/services/saveParsedStream.js index 0ae0132f4..6ff99b992 100644 --- a/src/api/services/saveParsedStream.js +++ b/src/api/services/saveParsedStream.js @@ -41,8 +41,8 @@ export const saveParsedStream = async (ctx, parsedStream) => { return ctx.dataset.count(); } catch (error) { - await ctx.dataset.remove({ lodex_published: { $exists: false } }); - await ctx.publishedDataset.remove({ + await ctx.dataset.deleteOne({ lodex_published: { $exists: false } }); + await ctx.publishedDataset.deleteOne({ lodex_published: { $exists: false }, }); diff --git a/src/api/services/updateFacetValue.js b/src/api/services/updateFacetValue.js index 0675c91ca..cc4eef1fc 100644 --- a/src/api/services/updateFacetValue.js +++ b/src/api/services/updateFacetValue.js @@ -13,7 +13,7 @@ const removeOldValue = (publishedFacet, field) => async (oldValue) => { }; const addNewValue = (publishedFacet, field) => async (newValue) => { - await publishedFacet.update( + await publishedFacet.updateOne( { field, value: newValue }, { $inc: { count: 1 } }, { upsert: true }, diff --git a/src/common/tests/fixtures.js b/src/common/tests/fixtures.js index 3f253b159..b7185a502 100644 --- a/src/common/tests/fixtures.js +++ b/src/common/tests/fixtures.js @@ -57,11 +57,11 @@ export async function clear() { } await Promise.all([ - db.dataset.remove({}), - db.field.remove({}), - db.publishedCharacteristic.remove({}), - db.publishedDataset.remove({}), - db.publishedFacet.remove({}), + db.dataset.drop(), + db.field.drop(), + db.publishedCharacteristic.drop(), + db.publishedDataset.drop(), + db.publishedFacet.drop(), ]); return db; From eff403d43b73ace437789ee3b3614ecdc2e47c99 Mon Sep 17 00:00:00 2001 From: Nicolas Thouvenin Date: Thu, 8 Aug 2024 10:36:37 +0200 Subject: [PATCH 07/19] fix mock functions --- src/api/models/field.spec.js | 6 +++--- src/api/models/publishedDataset.spec.js | 10 +++++----- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/api/models/field.spec.js b/src/api/models/field.spec.js index db7b27003..f02168ff5 100644 --- a/src/api/models/field.spec.js +++ b/src/api/models/field.spec.js @@ -20,7 +20,7 @@ describe('field', () => { insertOne: jest.fn().mockImplementation(() => ({ insertedId: 'insertedId', })), - update: jest.fn(), + updateOne: jest.fn(), updateMany: jest.fn(), find: jest.fn().mockImplementation(() => ({ sort: () => ({ @@ -204,7 +204,7 @@ describe('field', () => { true, 'nameArg', ); - expect(fieldCollection.update).toHaveBeenCalledWith( + expect(fieldCollection.updateOne).toHaveBeenCalledWith( { name: 'this field name', contribution: true, @@ -232,7 +232,7 @@ describe('field', () => { false, 'nameArg', ); - expect(fieldCollection.update).toHaveBeenCalledWith( + expect(fieldCollection.updateOne).toHaveBeenCalledWith( { name: 'this field name', contribution: true, diff --git a/src/api/models/publishedDataset.spec.js b/src/api/models/publishedDataset.spec.js index 1cde0c6a0..91a7ba8de 100644 --- a/src/api/models/publishedDataset.spec.js +++ b/src/api/models/publishedDataset.spec.js @@ -56,7 +56,7 @@ describe('publishedDataset', () => { }; const collection = { findOne: jest.fn().mockImplementation(() => previousResource), - update: jest.fn(), + updateOne: jest.fn(), createIndex: jest.fn(), }; const db = { @@ -90,7 +90,7 @@ describe('publishedDataset', () => { ); expect(collection.findOne).toHaveBeenCalledWith({ uri: 'uri' }); - expect(collection.update).toHaveBeenCalledWith( + expect(collection.updateOne).toHaveBeenCalledWith( { uri: 'uri' }, { $addToSet: { @@ -136,7 +136,7 @@ describe('publishedDataset', () => { ); expect(collection.findOne).toHaveBeenCalledWith({ uri: 'uri' }); - expect(collection.update).toHaveBeenCalledWith( + expect(collection.updateOne).toHaveBeenCalledWith( { uri: 'uri' }, { $addToSet: { @@ -171,7 +171,7 @@ describe('publishedDataset', () => { }; const collection = { aggregate: jest.fn().mockImplementation(() => aggregateResult), - update: jest.fn(), + updateOne: jest.fn(), createIndex: jest.fn(), }; const db = { @@ -204,7 +204,7 @@ describe('publishedDataset', () => { 'name', 'status', ); - expect(collection.update).toHaveBeenCalledWith( + expect(collection.updateOne).toHaveBeenCalledWith( { uri: 'uri', 'contributions.fieldName': 'name' }, { $set: { 'contributions.$.status': 'status' }, From 86d34fa8d76954af3ff7943cc229a062b6151d5e Mon Sep 17 00:00:00 2001 From: Nicolas Thouvenin Date: Thu, 8 Aug 2024 11:23:25 +0200 Subject: [PATCH 08/19] fix mock functions --- src/api/services/saveParsedStream.spec.js | 12 ++++++------ src/api/services/updateFacetValue.js | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/api/services/saveParsedStream.spec.js b/src/api/services/saveParsedStream.spec.js index 0f917397b..3a2b1bc04 100644 --- a/src/api/services/saveParsedStream.spec.js +++ b/src/api/services/saveParsedStream.spec.js @@ -52,7 +52,7 @@ describe('saveParsedStream', () => { describe('with publication', () => { const ctx = { dataset: { - remove: jest.fn(), + deleteOne: jest.fn(), count: jest.fn().mockImplementation(() => 'count'), updateMany: jest.fn(), }, @@ -88,7 +88,7 @@ describe('saveParsedStream', () => { }); it('should not have called dataset.remove', () => { - expect(ctx.dataset.remove).not.toHaveBeenCalled(); + expect(ctx.dataset.deleteOne).not.toHaveBeenCalled(); }); it('should have called updateMany on dataset and publishedDataset to set lodex_published to true', () => { @@ -141,14 +141,14 @@ describe('saveParsedStream', () => { const parsedStream = 'parsedStream'; const ctx = { dataset: { - remove: jest.fn(), + deleteOne: jest.fn(), count: jest.fn().mockImplementation(() => 'count'), updateMany: jest.fn(), }, publishedDataset: { count: jest.fn().mockImplementation(() => 1000), updateMany: jest.fn(), - remove: jest.fn(), + deleteOne: jest.fn(), }, field: { findAll: jest @@ -219,10 +219,10 @@ describe('saveParsedStream', () => { }); it('should remove all unpublished document from dataset and publishedDataset', () => { - expect(ctx.dataset.remove).toHaveBeenCalledWith({ + expect(ctx.dataset.deleteOne).toHaveBeenCalledWith({ lodex_published: { $exists: false }, }); - expect(ctx.publishedDataset.remove).toHaveBeenCalledWith({ + expect(ctx.publishedDataset.deleteOne).toHaveBeenCalledWith({ lodex_published: { $exists: false }, }); }); diff --git a/src/api/services/updateFacetValue.js b/src/api/services/updateFacetValue.js index cc4eef1fc..0675c91ca 100644 --- a/src/api/services/updateFacetValue.js +++ b/src/api/services/updateFacetValue.js @@ -13,7 +13,7 @@ const removeOldValue = (publishedFacet, field) => async (oldValue) => { }; const addNewValue = (publishedFacet, field) => async (newValue) => { - await publishedFacet.updateOne( + await publishedFacet.update( { field, value: newValue }, { $inc: { count: 1 } }, { upsert: true }, From 37267286102108de41834e9376990981ae8b12ef Mon Sep 17 00:00:00 2001 From: Nicolas Thouvenin Date: Thu, 8 Aug 2024 11:38:41 +0200 Subject: [PATCH 09/19] fix mock functions --- src/api/controller/api/publishFacets.spec.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/api/controller/api/publishFacets.spec.js b/src/api/controller/api/publishFacets.spec.js index 404278a62..4f6847e8d 100644 --- a/src/api/controller/api/publishFacets.spec.js +++ b/src/api/controller/api/publishFacets.spec.js @@ -21,7 +21,7 @@ describe('publishFacets', () => { }, publishedFacet: { insertMany: jest.fn().mockImplementation(() => Promise.resolve()), - remove: jest.fn(), + deleteOne: jest.fn(), }, }; const facetFields = [ @@ -51,9 +51,9 @@ describe('publishFacets', () => { ); }); - it('should call publishedFacet.remove', () => { - expect(ctx.publishedFacet.remove).toHaveBeenCalled(); - expect(ctx.publishedFacet.remove).toHaveBeenCalledWith({ + it('should call publishedFacet.deleteOne', () => { + expect(ctx.publishedFacet.deleteOne).toHaveBeenCalled(); + expect(ctx.publishedFacet.deleteOne).toHaveBeenCalledWith({ field: { $in: ['facet1', 'facet2', 'field2'] }, }); }); @@ -71,7 +71,7 @@ describe('publishFacets', () => { describe('with no facet', () => { beforeEach(() => { - ctx.publishedFacet.remove.mockClear(); + ctx.publishedFacet.deleteOne.mockClear(); ctx.publishedFacet.insertMany.mockClear(); }); it('should do nothing', async () => { @@ -80,7 +80,7 @@ describe('publishFacets', () => { [{ name: 'field1' }, { name: 'field2' }, { name: 'field3' }], false, ); - expect(ctx.publishedFacet.remove).toHaveBeenCalledTimes(0); + expect(ctx.publishedFacet.deleteOne).toHaveBeenCalledTimes(0); expect(ctx.publishedFacet.insertMany).toHaveBeenCalledTimes(0); }); }); From 86bf16e26312f8c134405b4c5c8f8d5e9f7969b4 Mon Sep 17 00:00:00 2001 From: Nicolas Thouvenin Date: Thu, 8 Aug 2024 11:39:04 +0200 Subject: [PATCH 10/19] rename objetc see https://github.com/mongodb/node-mongodb-native/blob/main/etc/notes/CHANGES_5.0.0.md#objectid-type-removed-in-favor-of-objectid --- src/api/controller/api/field.js | 4 ++-- src/api/controller/api/publishedDataset.js | 4 ++-- src/api/models/dataset.js | 4 ++-- src/api/models/field.js | 16 ++++++++-------- src/api/models/hiddenResource.js | 4 ++-- src/api/models/publishedDataset.js | 4 ++-- src/api/models/subresource.js | 10 +++++----- src/api/models/tenant.js | 10 +++++----- src/api/models/utils.js | 4 ++-- 9 files changed, 30 insertions(+), 30 deletions(-) diff --git a/src/api/controller/api/field.js b/src/api/controller/api/field.js index d34c175ed..4ad3d6c00 100644 --- a/src/api/controller/api/field.js +++ b/src/api/controller/api/field.js @@ -20,7 +20,7 @@ import { } from '../../../common/scope'; import { dropJobs } from '../../workers/tools'; import { ENRICHER } from '../../workers/enricher'; -import { ObjectID } from 'mongodb'; +import { ObjectId } from 'mongodb'; import generateUid from '../../services/generateUid'; import { restoreEnrichments } from '../../services/enrichment/enrichment'; import { restorePrecomputed } from '../../services/precomputed/precomputed'; @@ -228,7 +228,7 @@ export const patchSearchableFields = async (ctx) => { const fields = ctx.request.body; try { - const ids = fields.map((field) => new ObjectID(field._id)); + const ids = fields.map((field) => new ObjectId(field._id)); await ctx.field.updateMany( { _id: { $in: ids } }, { $set: { searchable: true } }, diff --git a/src/api/controller/api/publishedDataset.js b/src/api/controller/api/publishedDataset.js index 62fb12e6b..a98345466 100644 --- a/src/api/controller/api/publishedDataset.js +++ b/src/api/controller/api/publishedDataset.js @@ -6,7 +6,7 @@ import { PROPOSED } from '../../../common/propositionStatus'; import generateUri from '../../../common/transformers/AUTOGENERATE_URI'; import ark from './ark'; import updateFacetValue from '../../services/updateFacetValue'; -import { ObjectID } from 'mongodb'; +import { ObjectId } from 'mongodb'; const app = new Koa(); @@ -29,7 +29,7 @@ export const getPage = async (ctx) => { const facetValues = await Promise.all( facetValueIds.map(async (facetValueId) => { const facetValue = await ctx.publishedFacet.findOne({ - _id: new ObjectID(facetValueId), + _id: new ObjectId(facetValueId), }); return facetValue.value; }), diff --git a/src/api/models/dataset.js b/src/api/models/dataset.js index e6ff38ca3..f8bed8ab3 100644 --- a/src/api/models/dataset.js +++ b/src/api/models/dataset.js @@ -4,7 +4,7 @@ import omit from 'lodash/omit'; import uniqWith from 'lodash/uniqWith'; import JSONStream from 'jsonstream'; import { Transform } from 'stream'; -import { ObjectID } from 'mongodb'; +import { ObjectId } from 'mongodb'; import { URI_FIELD_NAME, moveUriToFirstPosition } from '../../common/uris'; import countNotUnique from './countNotUnique'; @@ -201,7 +201,7 @@ export default (db) => { }; collection.deleteOne = async (id) => - collection.deleteOne({ _id: new ObjectID(id) }); + collection.deleteOne({ _id: new ObjectId(id) }); return collection; }; diff --git a/src/api/models/field.js b/src/api/models/field.js index c73935645..b0d44c734 100644 --- a/src/api/models/field.js +++ b/src/api/models/field.js @@ -1,6 +1,6 @@ import omit from 'lodash/omit'; import pick from 'lodash/pick'; -import { ObjectID, ObjectId } from 'mongodb'; +import { ObjectId } from 'mongodb'; import { validateField as validateFieldIsomorphic } from '../../common/validateFields'; import { URI_FIELD_NAME } from '../../common/uris'; @@ -120,7 +120,7 @@ export default async (db) => { }; collection.findOneById = (id) => - collection.findOne({ _id: new ObjectID(id) }); + collection.findOne({ _id: new ObjectId(id) }); collection.findOneByName = (name) => collection.findOne({ name }); @@ -154,13 +154,13 @@ export default async (db) => { }; collection.updateOneById = async (id, field) => { - const objectId = new ObjectID(id); + const objId = new ObjectId(id); const previousFieldVersion = await collection.findOneById(id); if (previousFieldVersion.position > field.position) { await collection.updateMany( { - _id: { $ne: objectId }, + _id: { $ne: objId }, position: { $gte: field.position, $lt: previousFieldVersion.position, @@ -175,7 +175,7 @@ export default async (db) => { if (previousFieldVersion.position < field.position) { await collection.updateMany( { - _id: { $ne: objectId }, + _id: { $ne: objId }, position: { $gt: previousFieldVersion.position, $lte: field.position, @@ -190,7 +190,7 @@ export default async (db) => { return collection .findOneAndUpdate( { - _id: objectId, + _id: objId, }, { $set: omit(field, ['_id']), @@ -203,12 +203,12 @@ export default async (db) => { }; collection.removeById = (id) => - collection.deleteOne({ _id: new ObjectID(id), name: { $ne: 'uri' } }); + collection.deleteOne({ _id: new ObjectId(id), name: { $ne: 'uri' } }); collection.removeBySubresource = (subresourceId) => collection.deleteOne({ $or: [ - { subresourceId: new ObjectID(subresourceId) }, + { subresourceId: new ObjectId(subresourceId) }, { subresourceId }, ], }); diff --git a/src/api/models/hiddenResource.js b/src/api/models/hiddenResource.js index 7b973df58..6b5a871df 100644 --- a/src/api/models/hiddenResource.js +++ b/src/api/models/hiddenResource.js @@ -1,4 +1,4 @@ -import { ObjectID } from 'mongodb'; +import { ObjectId } from 'mongodb'; import { castIdsFactory } from './utils'; export default async (db) => { @@ -18,7 +18,7 @@ export default async (db) => { collection.deleteByUri = async (uri) => collection.deleteOne({ uri }); collection.delete = async (id) => - collection.deleteOne({ _id: new ObjectID(id) }); + collection.deleteOne({ _id: new ObjectId(id) }); collection.castIds = castIdsFactory(collection); diff --git a/src/api/models/publishedDataset.js b/src/api/models/publishedDataset.js index 8871cce74..7eb5ad473 100644 --- a/src/api/models/publishedDataset.js +++ b/src/api/models/publishedDataset.js @@ -1,4 +1,4 @@ -import { ObjectID } from 'mongodb'; +import { ObjectId } from 'mongodb'; import chunk from 'lodash/chunk'; import omit from 'lodash/omit'; @@ -201,7 +201,7 @@ export default async (db) => { }; collection.findById = async (id) => { - const oid = new ObjectID(id); + const oid = new ObjectId(id); return collection.findOne({ _id: oid }); }; diff --git a/src/api/models/subresource.js b/src/api/models/subresource.js index 525451778..e06b3c87b 100644 --- a/src/api/models/subresource.js +++ b/src/api/models/subresource.js @@ -1,4 +1,4 @@ -import { ObjectID } from 'mongodb'; +import { ObjectId } from 'mongodb'; import omit from 'lodash/omit'; import { castIdsFactory } from './utils'; @@ -6,7 +6,7 @@ export default async (db) => { const collection = db.collection('subresource'); collection.findOneById = async (id) => - collection.findOne({ _id: new ObjectID(id) }); + collection.findOne({ _id: new ObjectId(id) }); collection.findAll = async () => collection.find({}).toArray(); @@ -16,15 +16,15 @@ export default async (db) => { }; collection.delete = async (id) => - collection.deleteOne({ _id: new ObjectID(id) }); + collection.deleteOne({ _id: new ObjectId(id) }); collection.update = async (id, data) => { - const objectId = new ObjectID(id); + const objId = new ObjectId(id); return collection .findOneAndUpdate( { - _id: objectId, + _id: objId, }, { $set: omit(data, ['_id']), diff --git a/src/api/models/tenant.js b/src/api/models/tenant.js index b5f990c16..a952e68b5 100644 --- a/src/api/models/tenant.js +++ b/src/api/models/tenant.js @@ -1,4 +1,4 @@ -import { ObjectID } from 'mongodb'; +import { ObjectId } from 'mongodb'; import omit from 'lodash/omit'; import { castIdsFactory } from './utils'; @@ -6,7 +6,7 @@ export default async (db) => { const collection = db.collection('tenant'); collection.findOneById = async (id) => - collection.findOne({ $or: [{ _id: new ObjectID(id) }, { _id: id }] }); + collection.findOne({ $or: [{ _id: new ObjectId(id) }, { _id: id }] }); collection.findOneByName = async (name) => collection.findOne({ name }); @@ -20,15 +20,15 @@ export default async (db) => { }; collection.delete = async (id) => - collection.deleteOne({ $or: [{ _id: new ObjectID(id) }, { _id: id }] }); + collection.deleteOne({ $or: [{ _id: new ObjectId(id) }, { _id: id }] }); collection.update = async (id, data) => { - const objectId = new ObjectID(id); + const objId = new ObjectId(id); return collection .findOneAndUpdate( { - $or: [{ _id: objectId }, { _id: id }], + $or: [{ _id: objId }, { _id: id }], }, { $set: omit(data, ['_id']), diff --git a/src/api/models/utils.js b/src/api/models/utils.js index 52b3672ec..2b962c7d8 100644 --- a/src/api/models/utils.js +++ b/src/api/models/utils.js @@ -1,4 +1,4 @@ -import { ObjectID } from 'mongodb'; +import { ObjectId } from 'mongodb'; export const castIdsFactory = (collection) => async () => { const items = await collection.find({}).toArray(); @@ -10,7 +10,7 @@ export const castIdsFactory = (collection) => async () => { await collection.removeOne({ _id: item._id }); await collection.insertOne({ ...item, - _id: new ObjectID(item._id), + _id: new ObjectId(item._id), }); }), Promise.resolve(), From 0231ad26497353c6b6f29623e3d2eb4b676b9ace Mon Sep 17 00:00:00 2001 From: Nicolas Thouvenin Date: Thu, 8 Aug 2024 12:25:00 +0200 Subject: [PATCH 11/19] fix rename mongodb functions --- src/api/controller/api/field.js | 5 +++-- src/api/models/utils.js | 2 +- src/api/services/clearPublished.js | 6 +++--- src/api/services/updateFacetValue.js | 4 ++-- 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/api/controller/api/field.js b/src/api/controller/api/field.js index 4ad3d6c00..61ca39967 100644 --- a/src/api/controller/api/field.js +++ b/src/api/controller/api/field.js @@ -35,7 +35,7 @@ export const restoreFields = (fileStream, ctx) => { .then((fieldsString) => JSON.parse(fieldsString)) .then((fields) => { ctx.field - .remove({}) + .drop() .then(() => Promise.all( fields @@ -70,7 +70,7 @@ export const restoreFields = (fileStream, ctx) => { }; return ctx.field - .remove({}) + .drop() .then(restoreTask) .then(() => Promise.all([ @@ -315,6 +315,7 @@ export const importFields = (asyncBusboyImpl) => async (ctx) => { ctx.status = 200; } catch (e) { ctx.status = 500; + console.error(e); ctx.body = e.message; } }; diff --git a/src/api/models/utils.js b/src/api/models/utils.js index 2b962c7d8..3a2866075 100644 --- a/src/api/models/utils.js +++ b/src/api/models/utils.js @@ -7,7 +7,7 @@ export const castIdsFactory = (collection) => async () => { (acc, item) => acc.then(async () => { await acc; - await collection.removeOne({ _id: item._id }); + await collection.deleteOne({ _id: item._id }); await collection.insertOne({ ...item, _id: new ObjectId(item._id), diff --git a/src/api/services/clearPublished.js b/src/api/services/clearPublished.js index 4ec97b319..e99b3ef7c 100644 --- a/src/api/services/clearPublished.js +++ b/src/api/services/clearPublished.js @@ -14,10 +14,10 @@ export default async (ctx, triggeredFromPublication) => { { multi: true }, ); progress.incrementProgress(ctx.tenant, 25); - await ctx.publishedDataset.remove({}); + await ctx.publishedDataset.drop(); progress.incrementProgress(ctx.tenant, 25); - await ctx.publishedCharacteristic.remove({}); + await ctx.publishedCharacteristic.drop(); progress.incrementProgress(ctx.tenant, 25); - await ctx.publishedFacet.remove({}); + await ctx.publishedFacet.drop(); progress.finish(ctx.tenant); }; diff --git a/src/api/services/updateFacetValue.js b/src/api/services/updateFacetValue.js index 0675c91ca..80e3b0ab5 100644 --- a/src/api/services/updateFacetValue.js +++ b/src/api/services/updateFacetValue.js @@ -8,12 +8,12 @@ const removeOldValue = (publishedFacet, field) => async (oldValue) => { ); if (updatedFacet.count <= 0) { - await publishedFacet.remove(updatedFacet); + await publishedFacet.deleteOne(updatedFacet); } }; const addNewValue = (publishedFacet, field) => async (newValue) => { - await publishedFacet.update( + await publishedFacet.updateOne( { field, value: newValue }, { $inc: { count: 1 } }, { upsert: true }, From bfa812ab30e129869f97cbe810a9d088ebc03b48 Mon Sep 17 00:00:00 2001 From: Nicolas Thouvenin Date: Thu, 8 Aug 2024 14:05:31 +0200 Subject: [PATCH 12/19] fix mock functions --- src/api/app.js | 1 + src/api/controller/api/field.js | 3 ++- src/api/controller/api/upload.js | 1 + src/api/services/updateFacetValue.spec.js | 30 +++++++++++------------ 4 files changed, 19 insertions(+), 16 deletions(-) diff --git a/src/api/app.js b/src/api/app.js index 2943a343c..10d706c53 100644 --- a/src/api/app.js +++ b/src/api/app.js @@ -159,6 +159,7 @@ app.use(function* (next) { try { yield next; } catch (err) { + console.error('Sending error as a body', err); this.status = err.status || 500; this.body = err.message; this.app.emit('error', err, this); diff --git a/src/api/controller/api/field.js b/src/api/controller/api/field.js index 61ca39967..8e79c9809 100644 --- a/src/api/controller/api/field.js +++ b/src/api/controller/api/field.js @@ -156,6 +156,7 @@ export const setup = async (ctx, next) => { try { await next(); } catch (error) { + console.error('Sending error as a body', error); ctx.status = 500; ctx.body = { error: error.message }; } @@ -314,8 +315,8 @@ export const importFields = (asyncBusboyImpl) => async (ctx) => { }; ctx.status = 200; } catch (e) { + console.error('Sending error as a body', e); ctx.status = 500; - console.error(e); ctx.body = e.message; } }; diff --git a/src/api/controller/api/upload.js b/src/api/controller/api/upload.js index 1bce65d3f..1ced735a8 100644 --- a/src/api/controller/api/upload.js +++ b/src/api/controller/api/upload.js @@ -45,6 +45,7 @@ export const prepareUpload = async (ctx, next) => { await next(); } catch (error) { progress.throw(ctx.tenant, error); + console.error('Sending error as a body', error); ctx.status = 500; ctx.body = error.message; } diff --git a/src/api/services/updateFacetValue.spec.js b/src/api/services/updateFacetValue.spec.js index 507c17663..2e0f6f2e7 100644 --- a/src/api/services/updateFacetValue.spec.js +++ b/src/api/services/updateFacetValue.spec.js @@ -6,8 +6,8 @@ describe('updatefacetValue', () => { findOneAndUpdate: jest.fn().mockImplementation(() => ({ value: { count: 10 }, })), - update: jest.fn(), - remove: jest.fn(), + updateOne: jest.fn(), + deleteOne: jest.fn(), }; await updateFacetValue(publishedFacet)({ field: 'fieldName', @@ -20,9 +20,9 @@ describe('updatefacetValue', () => { { returnOriginal: false }, ); - expect(publishedFacet.remove).not.toHaveBeenCalled(); + expect(publishedFacet.deleteOne).not.toHaveBeenCalled(); - expect(publishedFacet.update).toHaveBeenCalledWith( + expect(publishedFacet.updateOne).toHaveBeenCalledWith( { field: 'fieldName', value: 'new', @@ -32,7 +32,7 @@ describe('updatefacetValue', () => { ); }); - it('should call remove if findOneAndUpdate returned an updated facet with count at 0 or less', async () => { + it('should call deleteOne if findOneAndUpdate returned an updated facet with count at 0 or less', async () => { const publishedFacet = { findOneAndUpdate: jest.fn().mockImplementation(() => ({ value: { @@ -41,8 +41,8 @@ describe('updatefacetValue', () => { count: 0, }, })), - update: jest.fn(), - remove: jest.fn(), + updateOne: jest.fn(), + deleteOne: jest.fn(), }; await updateFacetValue(publishedFacet)({ field: 'fieldName', @@ -58,12 +58,12 @@ describe('updatefacetValue', () => { { returnOriginal: false }, ); - expect(publishedFacet.remove).toHaveBeenCalledWith({ + expect(publishedFacet.deleteOne).toHaveBeenCalledWith({ field: 'fieldName', value: 'old', count: 0, }); - expect(publishedFacet.update).toHaveBeenCalledWith( + expect(publishedFacet.updateOne).toHaveBeenCalledWith( { field: 'fieldName', value: 'new', @@ -80,8 +80,8 @@ describe('updatefacetValue', () => { findOneAndUpdate: jest.fn().mockImplementation(() => ({ value: { count: 10 }, })), - update: jest.fn(), - remove: jest.fn(), + updateOne: jest.fn(), + deleteOne: jest.fn(), }; await updateFacetValue(publishedFacet)({ field: 'fieldName', @@ -100,11 +100,11 @@ describe('updatefacetValue', () => { { returnOriginal: false }, ); - expect(publishedFacet.remove).not.toHaveBeenCalled(); + expect(publishedFacet.deleteOne).not.toHaveBeenCalled(); - expect(publishedFacet.update).toHaveBeenCalledTimes(2); + expect(publishedFacet.updateOne).toHaveBeenCalledTimes(2); - expect(publishedFacet.update).toHaveBeenCalledWith( + expect(publishedFacet.updateOne).toHaveBeenCalledWith( { field: 'fieldName', value: 'new1', @@ -113,7 +113,7 @@ describe('updatefacetValue', () => { { upsert: true }, ); - expect(publishedFacet.update).toHaveBeenCalledWith( + expect(publishedFacet.updateOne).toHaveBeenCalledWith( { field: 'fieldName', value: 'new2', From 83d50b4b97fdd0e6a89e379c922dd231ccc41cf9 Mon Sep 17 00:00:00 2001 From: Nicolas Thouvenin Date: Thu, 8 Aug 2024 16:02:06 +0200 Subject: [PATCH 13/19] force jest to exit --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index f15708971..956010fff 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "clean:modules": "modclean -Pr -n ./modclean.config.js:*", "clean:workers": "modclean -Pr -n ./modclean.config.js:* -D workers", "clean:packages": "modclean -Pr -n ./modclean.config.js:* -D packages", - "test:api:e2e": "./node_modules/jest/bin/jest.js --colors --runInBand --detectOpenHandles -c src/api/e2e/jest.config.js src/api/e2e", + "test:api:e2e": "./node_modules/jest/bin/jest.js --colors --runInBand --force-exit --detectOpenHandles -c src/api/e2e/jest.config.js src/api/e2e", "test:api:e2e:watch": "./node_modules/jest/bin/jest.js --colors --runInBand --detectOpenHandles -c src/api/e2e/jest.config.js src/api/e2e --watch", "test:unit": "./node_modules/jest/bin/jest.js --force-exit --detectOpenHandles --colors", "test:unit:watch": "./node_modules/jest/bin/jest.js --watch --colors", From 9ba6f1211280d59c7da9afce6a88df3a03b209cf Mon Sep 17 00:00:00 2001 From: Nicolas Thouvenin Date: Thu, 29 Aug 2024 16:48:16 +0200 Subject: [PATCH 14/19] fix: synchronized collection creation --- src/api/models/configTenant.js | 4 ++-- src/api/models/dataset.js | 5 +++-- src/api/models/enrichment.js | 4 ++-- src/api/models/field.js | 5 ++--- src/api/models/hiddenResource.js | 4 ++-- src/api/models/precomputed.js | 4 ++-- src/api/models/publishedCharacteristic.js | 9 +++++++-- src/api/models/publishedDataset.js | 3 ++- src/api/models/publishedFacet.js | 5 +++-- src/api/models/subresource.js | 4 ++-- src/api/models/tenant.js | 4 ++-- src/api/models/utils.js | 10 ++++++++++ src/api/services/repositoryMiddleware.js | 2 +- 13 files changed, 40 insertions(+), 23 deletions(-) diff --git a/src/api/models/configTenant.js b/src/api/models/configTenant.js index dfc9ce13f..ba45dd706 100644 --- a/src/api/models/configTenant.js +++ b/src/api/models/configTenant.js @@ -1,9 +1,9 @@ import { ObjectId } from 'mongodb'; import omit from 'lodash/omit'; -import { castIdsFactory } from './utils'; +import { castIdsFactory, getCreatedCollection } from './utils'; export default async (db) => { - const collection = db.collection('configTenant'); + const collection = await getCreatedCollection(db, 'configTenant'); collection.findOneById = async (id) => collection.findOne({ $or: [{ _id: new ObjectId(id) }, { _id: id }] }); diff --git a/src/api/models/dataset.js b/src/api/models/dataset.js index f8bed8ab3..1575d5a5b 100644 --- a/src/api/models/dataset.js +++ b/src/api/models/dataset.js @@ -9,9 +9,10 @@ import { ObjectId } from 'mongodb'; import { URI_FIELD_NAME, moveUriToFirstPosition } from '../../common/uris'; import countNotUnique from './countNotUnique'; import countNotUniqueSubresources from './countNotUniqueSubresources'; +import { getCreatedCollection } from './utils'; -export default (db) => { - const collection = db.collection('dataset'); +export default async (db) => { + const collection = await getCreatedCollection(db, 'dataset'); collection.insertBatch = (documents) => { return Promise.all( chunk(documents, 100).map((data) => { diff --git a/src/api/models/enrichment.js b/src/api/models/enrichment.js index c0d8067aa..ed2f7854f 100644 --- a/src/api/models/enrichment.js +++ b/src/api/models/enrichment.js @@ -1,9 +1,9 @@ import { ObjectId } from 'mongodb'; import omit from 'lodash/omit'; -import { castIdsFactory } from './utils'; +import { castIdsFactory, getCreatedCollection } from './utils'; export default async (db) => { - const collection = db.collection('enrichment'); + const collection = await getCreatedCollection(db, 'enrichment'); await collection.createIndex({ name: 1 }, { unique: true }); collection.findOneById = async (id) => diff --git a/src/api/models/field.js b/src/api/models/field.js index b0d44c734..4bb628bd5 100644 --- a/src/api/models/field.js +++ b/src/api/models/field.js @@ -6,7 +6,7 @@ import { validateField as validateFieldIsomorphic } from '../../common/validateF import { URI_FIELD_NAME } from '../../common/uris'; import { SCOPE_DOCUMENT, SCOPE_COLLECTION } from '../../common/scope'; import generateUid from '../services/generateUid'; -import { castIdsFactory } from './utils'; +import { castIdsFactory, getCreatedCollection } from './utils'; export const buildInvalidPropertiesMessage = (name) => `Invalid data for field ${name} which need a name, a label, a scope, a valid scheme if specified and a transformers array`; @@ -96,8 +96,7 @@ const createSubresourceUriField = (subresource) => ({ }); export default async (db) => { - const collection = db.collection('field'); - + const collection = await getCreatedCollection(db, 'field'); await collection.createIndex({ name: 1 }, { unique: true }); collection.findAll = async () => diff --git a/src/api/models/hiddenResource.js b/src/api/models/hiddenResource.js index 6b5a871df..2d86cc6fc 100644 --- a/src/api/models/hiddenResource.js +++ b/src/api/models/hiddenResource.js @@ -1,8 +1,8 @@ import { ObjectId } from 'mongodb'; -import { castIdsFactory } from './utils'; +import { castIdsFactory, getCreatedCollection } from './utils'; export default async (db) => { - const collection = db.collection('hiddenResource'); + const collection = await getCreatedCollection(db, 'hiddenResource'); await collection.createIndex({ uri: 1 }, { unique: true }); collection.findAll = async () => collection.find({}).toArray(); diff --git a/src/api/models/precomputed.js b/src/api/models/precomputed.js index cd1e3b9bb..8664a0718 100644 --- a/src/api/models/precomputed.js +++ b/src/api/models/precomputed.js @@ -1,6 +1,6 @@ import { ObjectId } from 'mongodb'; import omit from 'lodash/omit'; -import { castIdsFactory } from './utils'; +import { castIdsFactory, getCreatedCollection } from './utils'; const checkMissingFields = (data) => !data.name || @@ -9,7 +9,7 @@ const checkMissingFields = (data) => (data.sourceColumns instanceof Array && data.sourceColumns.length === 0); export default async (db) => { - const collection = db.collection('precomputed'); + const collection = await getCreatedCollection(db, 'precomputed'); await collection.createIndex({ name: 1 }, { unique: true }); collection.findOneById = async (id) => diff --git a/src/api/models/publishedCharacteristic.js b/src/api/models/publishedCharacteristic.js index 33b698bf9..2fadb6c8a 100644 --- a/src/api/models/publishedCharacteristic.js +++ b/src/api/models/publishedCharacteristic.js @@ -1,5 +1,10 @@ -export default (db) => { - const collection = db.collection('publishedCharacteristic'); +import { getCreatedCollection } from './utils'; + +export default async (db) => { + const collection = await getCreatedCollection( + db, + 'publishedCharacteristic', + ); collection.findLastVersion = async () => { const items = await collection diff --git a/src/api/models/publishedDataset.js b/src/api/models/publishedDataset.js index 7eb5ad473..5e2f7e807 100644 --- a/src/api/models/publishedDataset.js +++ b/src/api/models/publishedDataset.js @@ -5,6 +5,7 @@ import omit from 'lodash/omit'; import { getFullResourceUri } from '../../common/uris'; import getPublishedDatasetFilter from './getPublishedDatasetFilter'; import { VALIDATED, PROPOSED } from '../../common/propositionStatus'; +import { getCreatedCollection } from './utils'; const getMeta = (match, searchableFieldNames) => { if (!match || !searchableFieldNames || !searchableFieldNames.length) { @@ -35,7 +36,7 @@ const getSort = (sortBy, sortDir, match, searchableFieldNames) => { }; export default async (db) => { - const collection = db.collection('publishedDataset'); + const collection = await getCreatedCollection(db, 'publishedDataset'); await collection.createIndex({ uri: 1 }, { unique: true }); diff --git a/src/api/models/publishedFacet.js b/src/api/models/publishedFacet.js index f8bf2a409..d9b3e472f 100644 --- a/src/api/models/publishedFacet.js +++ b/src/api/models/publishedFacet.js @@ -1,7 +1,8 @@ import chunk from 'lodash/chunk'; +import { getCreatedCollection } from './utils'; -export default (db) => { - const collection = db.collection('publishedFacet'); +export default async (db) => { + const collection = await getCreatedCollection(db, 'publishedFacet'); collection.insertBatch = (documents) => chunk(documents, 100).map((data) => collection.insertMany(data)); diff --git a/src/api/models/subresource.js b/src/api/models/subresource.js index e06b3c87b..7ac25a85a 100644 --- a/src/api/models/subresource.js +++ b/src/api/models/subresource.js @@ -1,9 +1,9 @@ import { ObjectId } from 'mongodb'; import omit from 'lodash/omit'; -import { castIdsFactory } from './utils'; +import { castIdsFactory, getCreatedCollection } from './utils'; export default async (db) => { - const collection = db.collection('subresource'); + const collection = await getCreatedCollection(db, 'subresource'); collection.findOneById = async (id) => collection.findOne({ _id: new ObjectId(id) }); diff --git a/src/api/models/tenant.js b/src/api/models/tenant.js index a952e68b5..6e9899f4e 100644 --- a/src/api/models/tenant.js +++ b/src/api/models/tenant.js @@ -1,9 +1,9 @@ import { ObjectId } from 'mongodb'; import omit from 'lodash/omit'; -import { castIdsFactory } from './utils'; +import { castIdsFactory, getCreatedCollection } from './utils'; export default async (db) => { - const collection = db.collection('tenant'); + const collection = await getCreatedCollection(db, 'tenant'); collection.findOneById = async (id) => collection.findOne({ $or: [{ _id: new ObjectId(id) }, { _id: id }] }); diff --git a/src/api/models/utils.js b/src/api/models/utils.js index 3a2866075..921f9e520 100644 --- a/src/api/models/utils.js +++ b/src/api/models/utils.js @@ -16,3 +16,13 @@ export const castIdsFactory = (collection) => async () => { Promise.resolve(), ); }; + +export const getCreatedCollection = async (db, collectionName) => { + const checkIfExists = await db + .listCollections({ name: collectionName }, { nameOnly: true }) + .toArray(); + if (checkIfExists.length === 0) { + await db.createCollection(collectionName); + } + return db.collection(collectionName); +}; diff --git a/src/api/services/repositoryMiddleware.js b/src/api/services/repositoryMiddleware.js index 9258a011f..95d68bf94 100644 --- a/src/api/services/repositoryMiddleware.js +++ b/src/api/services/repositoryMiddleware.js @@ -1,3 +1,4 @@ +import mongoClient from './mongoClient'; import dataset from '../models/dataset'; import field from '../models/field'; import publishedCharacteristic from '../models/publishedCharacteristic'; @@ -6,7 +7,6 @@ import publishedFacet from '../models/publishedFacet'; import subresource from '../models/subresource'; import enrichment from '../models/enrichment'; import precomputed from '../models/precomputed'; -import mongoClient from './mongoClient'; import tenant from '../models/tenant'; import configTenant from '../models/configTenant'; import hiddenResource from '../models/hiddenResource'; From d2983ffad7be5776d281f7fe65bbd418e492cfde Mon Sep 17 00:00:00 2001 From: Nicolas Thouvenin Date: Fri, 30 Aug 2024 15:49:56 +0200 Subject: [PATCH 15/19] fix unit test --- src/api/models/publishedFacet.spec.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/api/models/publishedFacet.spec.js b/src/api/models/publishedFacet.spec.js index 4b329a69a..2e02b6b23 100644 --- a/src/api/models/publishedFacet.spec.js +++ b/src/api/models/publishedFacet.spec.js @@ -13,8 +13,12 @@ describe('publishedFacet model', () => { }), })), }; + const listCollections = { + toArray: () => [true], + }; const db = { collection: () => collection, + listCollections: () => listCollections, }; const publishedFacet = publishedFacetFactory(db); From 3bbd406f6b7db64822779003b0be8d54efee9382 Mon Sep 17 00:00:00 2001 From: Nicolas Thouvenin Date: Fri, 30 Aug 2024 16:57:29 +0200 Subject: [PATCH 16/19] fix unit test --- src/api/models/field.spec.js | 12 ++++++++- src/api/models/publishedDataset.spec.js | 25 ++++++++++++++++++- src/api/services/repositoryMiddleware.spec.js | 4 +++ 3 files changed, 39 insertions(+), 2 deletions(-) diff --git a/src/api/models/field.spec.js b/src/api/models/field.spec.js index f02168ff5..0a3bdbdf5 100644 --- a/src/api/models/field.spec.js +++ b/src/api/models/field.spec.js @@ -6,6 +6,10 @@ import fieldFactory, { import { URI_FIELD_NAME } from '../../common/uris'; import { SCOPE_DOCUMENT, SCOPE_COLLECTION } from '../../common/scope'; +const listCollections = { + toArray: () => [true], +}; + describe('field', () => { describe('fieldFactory', () => { let fieldCollection; @@ -39,9 +43,9 @@ describe('field', () => { Promise.resolve({ value: 'result' }), ), }; - db = { collection: jest.fn().mockImplementation(() => fieldCollection), + listCollections: () => listCollections, }; field = await fieldFactory(db); @@ -285,10 +289,14 @@ describe('field', () => { .mockImplementation(() => Promise.resolve({})), insertOne: jest.fn(), }; + const listCollections = { + toArray: () => [true], + }; const dbNoUri = { collection: jest .fn() .mockImplementation(() => fieldCollectionNoUri), + listCollections: () => listCollections, }; const fieldNoUri = await fieldFactory(dbNoUri); @@ -366,6 +374,7 @@ describe('field', () => { collection: jest .fn() .mockImplementation(() => fieldCollection), + listCollections: () => listCollections, }; field = await fieldFactory(db); @@ -399,6 +408,7 @@ describe('field', () => { collection: jest .fn() .mockImplementation(() => fieldCollection), + listCollections: () => listCollections, }; field = await fieldFactory(db); diff --git a/src/api/models/publishedDataset.spec.js b/src/api/models/publishedDataset.spec.js index 91a7ba8de..d9fa9689e 100644 --- a/src/api/models/publishedDataset.spec.js +++ b/src/api/models/publishedDataset.spec.js @@ -7,8 +7,12 @@ describe('publishedDataset', () => { createIndex: jest.fn(), findOneAndUpdate: jest.fn(), }; + const listCollections = { + toArray: () => [true], + }; const db = { collection: () => collection, + listCollections: () => listCollections, }; let publishedDatasetCollection; @@ -59,8 +63,12 @@ describe('publishedDataset', () => { updateOne: jest.fn(), createIndex: jest.fn(), }; + const listCollections = { + toArray: () => [true], + }; const db = { collection: () => collection, + listCollections: () => listCollections, }; let publishedDatasetCollection; @@ -174,8 +182,12 @@ describe('publishedDataset', () => { updateOne: jest.fn(), createIndex: jest.fn(), }; + const listCollections = { + toArray: () => [true], + }; const db = { collection: () => collection, + listCollections: () => listCollections, }; let publishedDatasetCollection; @@ -235,11 +247,15 @@ describe('publishedDataset', () => { skip, count, })); + const listCollections = { + toArray: () => [true], + }; const db = { collection: () => ({ find, createIndex: jest.fn(), }), + listCollections: () => listCollections, }; let publishedDatasetCollection; @@ -300,12 +316,15 @@ describe('publishedDataset', () => { skip: skipToEmpty, count, })); - + const listCollections = { + toArray: () => [true], + }; publishedDatasetCollection = await publishedDataset({ collection: () => ({ find: emptyFind, createIndex: jest.fn(), }), + listCollections: () => listCollections, }); await publishedDatasetCollection.findPage({ @@ -404,11 +423,15 @@ describe('publishedDataset', () => { describe('create', () => { const insertOne = jest.fn().mockImplementation(() => 'inserted'); + const listCollections = { + toArray: () => [true], + }; const db = { collection: () => ({ insertOne, createIndex: jest.fn(), }), + listCollections: () => listCollections, }; let publishedDatasetCollection; diff --git a/src/api/services/repositoryMiddleware.spec.js b/src/api/services/repositoryMiddleware.spec.js index 11bcd9cb7..1821bc8fe 100644 --- a/src/api/services/repositoryMiddleware.spec.js +++ b/src/api/services/repositoryMiddleware.spec.js @@ -2,8 +2,12 @@ import { mongoClientFactory } from './repositoryMiddleware'; describe('mongoClient middleware', () => { it('it should add db and collections to ctx', async () => { + const listCollections = { + toArray: () => [true], + }; const db = { collection: () => ({ createIndex: () => {} }), + listCollections: () => listCollections, }; const next = () => Promise.resolve(); From 9a49f420fada78b7be5c696d688361169c0bcad9 Mon Sep 17 00:00:00 2001 From: Nicolas Thouvenin Date: Tue, 3 Sep 2024 16:16:52 +0200 Subject: [PATCH 17/19] fix unit tests --- src/api/controller/api/publish.spec.js | 4 +++- src/api/models/publishedFacet.spec.js | 6 ++++-- src/api/services/import.spec.js | 6 ++++-- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/api/controller/api/publish.spec.js b/src/api/controller/api/publish.spec.js index df459a350..8342a83d1 100644 --- a/src/api/controller/api/publish.spec.js +++ b/src/api/controller/api/publish.spec.js @@ -12,7 +12,9 @@ jest.mock('../../workers', () => ({ describe.skip('publish', () => { describe('doPublish', () => { beforeAll(async () => { - await doPublish({}); + await doPublish({ + tenant: 'lodex_test', + }); }); it('should add event to publisher queue', () => { expect(workerQueues['lodex_test'].add).toHaveBeenCalledWith({ diff --git a/src/api/models/publishedFacet.spec.js b/src/api/models/publishedFacet.spec.js index 2e02b6b23..0dc992459 100644 --- a/src/api/models/publishedFacet.spec.js +++ b/src/api/models/publishedFacet.spec.js @@ -20,11 +20,10 @@ describe('publishedFacet model', () => { collection: () => collection, listCollections: () => listCollections, }; - const publishedFacet = publishedFacetFactory(db); - describe('findValuesForField', () => { describe('without filter', () => { it('calls collection.find with correct parameters', async () => { + const publishedFacet = await publishedFacetFactory(db); await publishedFacet.findValuesForField({ field: 'foo' }); expect(collection.find).toHaveBeenCalledWith({ field: 'foo' }); @@ -32,6 +31,7 @@ describe('publishedFacet model', () => { }); describe('with filter', () => { it('calls collection.find with correct parameters', async () => { + const publishedFacet = await publishedFacetFactory(db); await publishedFacet.findValuesForField({ field: 'foo', filter: 'filter', @@ -48,6 +48,7 @@ describe('publishedFacet model', () => { describe('countValuesForField', () => { describe('without filter', () => { it('calls collection.count with correct parameters', async () => { + const publishedFacet = await publishedFacetFactory(db); await publishedFacet.countValuesForField('foo'); expect(collection.count).toHaveBeenCalledWith({ field: 'foo' }); @@ -55,6 +56,7 @@ describe('publishedFacet model', () => { }); describe('with filter', () => { it('calls collection.count with correct parameters', async () => { + const publishedFacet = await publishedFacetFactory(db); await publishedFacet.countValuesForField('foo', 'filter'); expect(collection.count).toHaveBeenCalledWith({ diff --git a/src/api/services/import.spec.js b/src/api/services/import.spec.js index 079cb19c1..fdad55bd9 100644 --- a/src/api/services/import.spec.js +++ b/src/api/services/import.spec.js @@ -24,7 +24,7 @@ describe.skip('import', () => { update: jest.fn(), }, getLoader: jest.fn().mockImplementation(() => loader), - mergeChunks: jest.fn().mockImplementation(() => 'stream'), + mergeChunks: jest.fn().mockImplementation(() => stream), clearChunks: jest.fn(), saveParsedStream: jest.fn(), dataset: { @@ -108,7 +108,9 @@ describe.skip('import', () => { update: jest.fn(), }, getCustomLoader: jest.fn().mockImplementation(() => loader), - mergeChunks: jest.fn().mockImplementation(() => 'stream'), + getStreamFromUrl: jest.fn().mockImplementation(() => stream), + getStreamFromText: jest.fn().mockImplementation(() => stream), + mergeChunks: jest.fn().mockImplementation(() => stream), clearChunks: jest.fn(), saveParsedStream: jest.fn(), dataset: { From a584fa2421a025e9936b713b978544aba44acd94 Mon Sep 17 00:00:00 2001 From: Nicolas Thouvenin Date: Wed, 4 Sep 2024 17:29:26 +0200 Subject: [PATCH 18/19] fix wrong function --- src/api/models/publishedDataset.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/api/models/publishedDataset.js b/src/api/models/publishedDataset.js index 5e2f7e807..5f4cfe09d 100644 --- a/src/api/models/publishedDataset.js +++ b/src/api/models/publishedDataset.js @@ -53,7 +53,7 @@ export default async (db) => { collection.insertBatchIgnoreDuplicate = (documents) => Promise.all( chunk(documents, 1000).map((data) => - collection.insertOne(data, { ordered: false }).catch((e) => { + collection.insertMany(data, { ordered: false }).catch((e) => { if (e.code === 11000 /* duplicate error */) { return; } From e5b2cf76361f805f5bb54e084e6519a255050917 Mon Sep 17 00:00:00 2001 From: Nicolas Thouvenin Date: Fri, 6 Sep 2024 17:05:50 +0200 Subject: [PATCH 19/19] fix concurrent access --- src/api/models/utils.js | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/src/api/models/utils.js b/src/api/models/utils.js index 921f9e520..410fc7025 100644 --- a/src/api/models/utils.js +++ b/src/api/models/utils.js @@ -17,12 +17,28 @@ export const castIdsFactory = (collection) => async () => { ); }; -export const getCreatedCollection = async (db, collectionName) => { - const checkIfExists = await db +const checkIfCollectionExists = async (db, collectionName) => { + const found = await db .listCollections({ name: collectionName }, { nameOnly: true }) .toArray(); - if (checkIfExists.length === 0) { - await db.createCollection(collectionName); + return found.length !== 0; +}; + +export const getCreatedCollection = async (db, collectionName) => { + const collExists = await checkIfCollectionExists(db, collectionName); + if (!collExists) { + try { + await db.createCollection(collectionName); + } catch (error) { + // in some cases, with concurrent access, creation is simultaneous. + const collAlreadyExists = await checkIfCollectionExists( + db, + collectionName, + ); + if (!collAlreadyExists) { + throw error; + } + } } return db.collection(collectionName); };