From 48cc72940ac13a81a1aef7899d227da9159f0675 Mon Sep 17 00:00:00 2001 From: Neal Beeken Date: Mon, 13 Dec 2021 17:51:01 -0500 Subject: [PATCH] fix(NODE-2899): sort and correct circular imports (#3072) --- .eslintrc.json | 57 +- .mocharc.json | 3 +- package-lock.json | 3655 +++++++++++------ package.json | 2 + src/admin.ts | 18 +- src/bson.ts | 29 +- src/bulk/common.ts | 34 +- src/bulk/ordered.ts | 8 +- src/bulk/unordered.ts | 10 +- src/change_stream.ts | 49 +- src/cmap/auth/auth_provider.ts | 6 +- src/cmap/auth/defaultAuthProviders.ts | 32 - src/cmap/auth/gssapi.ts | 16 +- src/cmap/auth/mongo_credentials.ts | 2 +- src/cmap/auth/mongocr.ts | 5 +- src/cmap/auth/mongodb_aws.ts | 21 +- src/cmap/auth/plain.ts | 2 +- src/cmap/auth/providers.ts | 14 + src/cmap/auth/scram.ts | 18 +- src/cmap/auth/x509.ts | 6 +- src/cmap/command_monitoring_events.ts | 4 +- src/cmap/commands.ts | 10 +- src/cmap/connect.ts | 46 +- src/cmap/connection.ts | 95 +- src/cmap/connection_pool.ts | 78 +- src/cmap/connection_pool_events.ts | 2 +- src/cmap/message_stream.ts | 17 +- src/cmap/stream_description.ts | 4 +- src/cmap/wire_protocol/compression.ts | 4 +- src/cmap/wire_protocol/shared.ts | 15 +- src/collection.ts | 138 +- src/connection_string.ts | 41 +- src/constants.ts | 110 + src/cursor/abstract_cursor.ts | 27 +- src/cursor/aggregation_cursor.ts | 12 +- src/cursor/find_cursor.ts | 4 +- src/db.ts | 64 +- src/deps.ts | 2 +- src/encrypter.ts | 6 +- src/error.ts | 2 +- src/gridfs/download.ts | 14 +- src/gridfs/index.ts | 22 +- src/gridfs/upload.ts | 3 +- src/index.ts | 397 +- src/logger.ts | 3 +- src/mongo_client.ts | 60 +- src/mongo_types.ts | 11 +- src/operations/add_user.ts | 11 +- src/operations/aggregate.ts | 10 +- src/operations/bulk_write.ts | 10 +- src/operations/collections.ts | 4 +- src/operations/command.ts | 24 +- src/operations/common_functions.ts | 8 +- src/operations/connect.ts | 18 +- src/operations/count.ts | 8 +- src/operations/count_documents.ts | 6 +- src/operations/create_collection.ts | 10 +- src/operations/delete.ts | 10 +- src/operations/distinct.ts | 8 +- src/operations/drop.ts | 8 +- src/operations/estimated_document_count.ts | 10 +- src/operations/eval.ts | 10 +- src/operations/execute_operation.ts | 21 +- src/operations/find.ts | 26 +- src/operations/find_and_modify.ts | 14 +- src/operations/get_more.ts | 4 +- src/operations/indexes.ts | 32 +- src/operations/insert.ts | 18 +- src/operations/is_capped.ts | 6 +- src/operations/list_collections.ts | 12 +- src/operations/list_databases.ts | 8 +- src/operations/map_reduce.ts | 18 +- src/operations/operation.ts | 6 +- src/operations/options_operation.ts | 6 +- src/operations/profiling_level.ts | 8 +- src/operations/remove_user.ts | 8 +- src/operations/rename.ts | 12 +- src/operations/run_command.ts | 6 +- src/operations/set_profiling_level.ts | 11 +- src/operations/stats.ts | 8 +- src/operations/update.ts | 20 +- src/operations/validate_collection.ts | 8 +- src/read_preference.ts | 4 +- src/sdam/common.ts | 4 +- src/sdam/events.ts | 2 +- src/sdam/monitor.ts | 27 +- src/sdam/server.ts | 124 +- src/sdam/server_description.ts | 8 +- src/sdam/server_selection.ts | 6 +- src/sdam/srv_polling.ts | 5 +- src/sdam/topology.ts | 144 +- src/sdam/topology_description.ts | 8 +- src/sessions.ts | 78 +- src/transactions.ts | 8 +- src/utils.ts | 62 +- test/benchmarks/driverBench/index.js | 1 + test/functional/change_stream.test.js | 1 + test/functional/change_stream_spec.test.js | 1 + test/functional/cmap/commands.test.ts | 3 +- test/functional/collection.test.js | 2 + test/functional/connections_stepdown.test.js | 1 + test/functional/contexts/index.js | 1 + test/functional/contexts/other.js | 1 + test/functional/db.test.js | 1 + test/functional/deprecate_warning.test.js | 3 + test/functional/error.test.js | 2 + test/functional/explain.test.js | 1 + test/functional/find_and_modify.test.js | 1 + test/functional/operation_example.test.js | 1 + test/functional/readpreference.test.js | 1 + test/functional/spec-runner/context.js | 1 + test/functional/spec-runner/index.js | 1 + .../unit-sdam/server_selection/spec.test.js | 1 + test/functional/unit-sdam/spec.test.js | 1 + .../functional/unit_deprecate_warning.test.js | 2 + test/functional/write_concern.test.js | 1 + .../client_side_encryption.prose.test.js | 1 + .../client-side-encryption/driver.test.js | 1 + test/integration/crud/bulk.test.js | 1 + test/integration/crud/crud.spec.test.js | 1 + ...nitial_dns_seedlist_discovery.spec.test.ts | 7 +- test/manual/kerberos.test.js | 1 + test/tools/deprecate_warning_test_program.js | 1 + test/tools/mongodb-mock/src/request.js | 1 + test/tools/mongodb-mock/src/wire_response.js | 1 + test/tools/reporter/mongodb_reporter.js | 1 + test/tools/runner/chai-addons.js | 1 + test/tools/runner/circular-dep-hack.js | 7 - test/tools/spec-runner/context.js | 1 + test/tools/spec-runner/index.js | 1 + test/tools/unified-spec-runner/entities.ts | 55 +- test/tools/unified-spec-runner/match.ts | 23 +- test/tools/unified-spec-runner/operations.ts | 14 +- test/tools/unified-spec-runner/runner.ts | 15 +- .../unified-spec-runner/unified-utils.ts | 11 +- test/tools/utils.js | 2 + test/types/admin.test-d.ts | 1 + test/types/basic_schema.test-d.ts | 2 +- test/types/bson.test-d.ts | 1 + .../bulk/bulk-operation-base.test-d.ts | 14 +- .../types/community/changes_from_36.test-d.ts | 3 +- test/types/community/client.test-d.ts | 1 + .../community/collection/aggregate.test-d.ts | 3 +- .../community/collection/bulkWrite.test-d.ts | 1 + .../community/collection/count.test-d.ts | 1 + .../community/collection/distinct.test-d.ts | 1 + .../collection/filterQuery.test-d.ts | 1 + .../community/collection/findX.test-d.ts | 13 +- .../community/collection/insertX.test-d.ts | 1 + .../community/collection/replaceX.test-d.ts | 1 + .../community/collection/updateX.test-d.ts | 17 +- test/types/community/createIndex.test-d.ts | 3 +- test/types/community/cursor.test-d.ts | 3 +- .../community/db/createCollection.test-d.ts | 8 +- test/types/community/stats.test-d.ts | 1 + test/types/gridfs_types.test-d.ts | 1 + test/types/helper_types.test-d.ts | 13 +- test/types/index_options.test-d.ts | 1 + test/types/indexed_schema.test-d.ts | 4 +- test/types/indexes_test-d.ts | 3 +- test/types/list_collections.test-d.ts | 2 +- test/types/mongodb.test-d.ts | 13 +- test/types/schema_helpers.test-d.ts | 12 +- test/types/sessions.test-d.ts | 3 +- test/types/union_schema.test-d.ts | 4 +- test/unit/commands.test.ts | 8 +- test/unit/connection_string.test.js | 2 +- test/unit/imports.test.ts | 27 + ...records_for_mongos_discovery.prose.test.ts | 9 +- test/unit/read_preference.test.ts | 3 +- test/unit/unit_snappy.test.js | 1 + 171 files changed, 3860 insertions(+), 2561 deletions(-) delete mode 100644 src/cmap/auth/defaultAuthProviders.ts create mode 100644 src/cmap/auth/providers.ts delete mode 100644 test/tools/runner/circular-dep-hack.js create mode 100644 test/unit/imports.test.ts diff --git a/.eslintrc.json b/.eslintrc.json index fc09f830a3..def79e2ff4 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -4,7 +4,13 @@ "parserOptions": { "ecmaVersion": 2019 }, - "plugins": ["@typescript-eslint", "prettier", "eslint-plugin-tsdoc"], + "plugins": [ + "simple-import-sort", + "import", + "@typescript-eslint", + "prettier", + "tsdoc" + ], "extends": [ "eslint:recommended", "plugin:@typescript-eslint/eslint-recommended", @@ -28,7 +34,15 @@ "null": "ignore" } ], - "strict": ["error", "global"], + "simple-import-sort/imports": "error", + "simple-import-sort/exports": "error", + "import/first": "error", + "import/newline-after-import": "error", + "import/no-duplicates": "error", + "strict": [ + "error", + "global" + ], "@typescript-eslint/no-explicit-any": "off", "no-restricted-syntax": [ "error", @@ -52,7 +66,9 @@ }, "overrides": [ { - "files": ["*.d.ts"], + "files": [ + "*.d.ts" + ], "parser": "@typescript-eslint/parser", "rules": { "prettier/prettier": "off", @@ -63,17 +79,26 @@ } }, { - "files": ["*.mjs"], + "files": [ + "*.mjs" + ], "parserOptions": { "sourceType": "module" } }, { // Settings for javascript test files - "files": ["test/**/*.js"], + "files": [ + "test/**/*.js" + ], "parser": "espree", - "plugins": ["prettier"], - "extends": ["eslint:recommended", "plugin:prettier/recommended"], + "plugins": [ + "prettier" + ], + "extends": [ + "eslint:recommended", + "plugin:prettier/recommended" + ], "rules": { "@typescript-eslint/no-var-requires": "off", "@typescript-eslint/no-empty-function": "off", @@ -84,18 +109,26 @@ "no-restricted-modules": [ "error", { - "patterns": ["**/../lib/**", "mongodb-mock-server"] + "patterns": [ + "**/../lib/**", + "mongodb-mock-server" + ] } ], "no-console": "off", "tsdoc/syntax": "off", - "strict": ["off", "global"], + "strict": [ + "off", + "global" + ], "no-restricted-syntax": "off" } }, { // Settings for typescript test files - "files": ["test/**/*.ts"], + "files": [ + "test/**/*.ts" + ], "parser": "@typescript-eslint/parser", "rules": { "no-console": "off", @@ -104,7 +137,9 @@ }, { // Settings for typescript type test files - "files": ["*.test-d.ts"], + "files": [ + "*.test-d.ts" + ], "parser": "@typescript-eslint/parser", "rules": { "prettier/prettier": "error", diff --git a/.mocharc.json b/.mocharc.json index fad554261e..36ef3d057f 100644 --- a/.mocharc.json +++ b/.mocharc.json @@ -7,8 +7,7 @@ "require": [ "source-map-support/register", "ts-node/register", - "test/tools/runner/chai-addons", - "test/tools/runner/circular-dep-hack" + "test/tools/runner/chai-addons" ], "ui": "test/tools/runner/metadata_ui.js", "recursive": true, diff --git a/package-lock.json b/package-lock.json index cdc293ee00..f4a3709e90 100644 --- a/package-lock.json +++ b/package-lock.json @@ -35,7 +35,9 @@ "downlevel-dts": "^0.7.0", "eslint": "^8.4.1", "eslint-config-prettier": "^8.3.0", + "eslint-plugin-import": "^2.25.3", "eslint-plugin-prettier": "^4.0.0", + "eslint-plugin-simple-import-sort": "^7.0.0", "eslint-plugin-tsdoc": "^0.2.14", "js-yaml": "^4.1.0", "lodash.camelcase": "^4.3.0", @@ -64,38 +66,41 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", + "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", "dev": true, "dependencies": { - "@babel/highlight": "^7.10.4" + "@babel/highlight": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.15.0.tgz", - "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==", + "version": "7.16.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.4.tgz", + "integrity": "sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.15.8", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.8.tgz", - "integrity": "sha512-3UG9dsxvYBMYwRv+gS41WKHno4K60/9GPy1CJaH6xy3Elq8CTtvtjT5R5jmNhXfCYLX2mTw+7/aq5ak/gOE0og==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.15.8", - "@babel/generator": "^7.15.8", - "@babel/helper-compilation-targets": "^7.15.4", - "@babel/helper-module-transforms": "^7.15.8", - "@babel/helpers": "^7.15.4", - "@babel/parser": "^7.15.8", - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.6", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.0.tgz", + "integrity": "sha512-mYZEvshBRHGsIAiyH5PzCFTCfbWfoYbO/jcSdXQSUQu1/pW0xDZAUP7KEc32heqWTAfAHhV9j1vH8Sav7l+JNQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.16.0", + "@babel/generator": "^7.16.0", + "@babel/helper-compilation-targets": "^7.16.0", + "@babel/helper-module-transforms": "^7.16.0", + "@babel/helpers": "^7.16.0", + "@babel/parser": "^7.16.0", + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -111,18 +116,6 @@ "url": "https://opencollective.com/babel" } }, - "node_modules/@babel/core/node_modules/@babel/code-frame": { - "version": "7.15.8", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz", - "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/core/node_modules/semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -142,12 +135,12 @@ } }, "node_modules/@babel/generator": { - "version": "7.15.8", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.8.tgz", - "integrity": "sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.0.tgz", + "integrity": "sha512-RR8hUCfRQn9j9RPKEVXo9LiwoxLPYn6hNZlvUOR8tSnaxlD0p0+la00ZP9/SnRt6HchKr+X0fO2r8vrETiJGew==", "dev": true, "dependencies": { - "@babel/types": "^7.15.6", + "@babel/types": "^7.16.0", "jsesc": "^2.5.1", "source-map": "^0.5.0" }, @@ -165,14 +158,14 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.4.tgz", - "integrity": "sha512-rMWPCirulnPSe4d+gwdWXLfAXTTBj8M3guAf5xFQJ0nvFY7tfNAFnWdqaHegHlgDZOCT4qvhF3BYlSJag8yhqQ==", + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.3.tgz", + "integrity": "sha512-vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.15.0", + "@babel/compat-data": "^7.16.0", "@babel/helper-validator-option": "^7.14.5", - "browserslist": "^4.16.6", + "browserslist": "^4.17.5", "semver": "^6.3.0" }, "engines": { @@ -192,132 +185,132 @@ } }, "node_modules/@babel/helper-function-name": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz", - "integrity": "sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.0.tgz", + "integrity": "sha512-BZh4mEk1xi2h4HFjWUXRQX5AEx4rvaZxHgax9gcjdLWdkjsY7MKt5p0otjsg5noXw+pB+clMCjw+aEVYADMjog==", "dev": true, "dependencies": { - "@babel/helper-get-function-arity": "^7.15.4", - "@babel/template": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/helper-get-function-arity": "^7.16.0", + "@babel/template": "^7.16.0", + "@babel/types": "^7.16.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-get-function-arity": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz", - "integrity": "sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.0.tgz", + "integrity": "sha512-ASCquNcywC1NkYh/z7Cgp3w31YW8aojjYIlNg4VeJiHkqyP4AzIvr4qx7pYDb4/s8YcsZWqqOSxgkvjUz1kpDQ==", "dev": true, "dependencies": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.16.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-hoist-variables": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz", - "integrity": "sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.0.tgz", + "integrity": "sha512-1AZlpazjUR0EQZQv3sgRNfM9mEVWPK3M6vlalczA+EECcPz3XPh6VplbErL5UoMpChhSck5wAJHthlj1bYpcmg==", "dev": true, "dependencies": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.16.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.4.tgz", - "integrity": "sha512-cokOMkxC/BTyNP1AlY25HuBWM32iCEsLPI4BHDpJCHHm1FU2E7dKWWIXJgQgSFiu4lp8q3bL1BIKwqkSUviqtA==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.0.tgz", + "integrity": "sha512-bsjlBFPuWT6IWhl28EdrQ+gTvSvj5tqVP5Xeftp07SEuz5pLnsXZuDkDD3Rfcxy0IsHmbZ+7B2/9SHzxO0T+sQ==", "dev": true, "dependencies": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.16.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.15.4.tgz", - "integrity": "sha512-jeAHZbzUwdW/xHgHQ3QmWR4Jg6j15q4w/gCfwZvtqOxoo5DKtLHk8Bsf4c5RZRC7NmLEs+ohkdq8jFefuvIxAA==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz", + "integrity": "sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg==", "dev": true, "dependencies": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.16.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.15.8", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.8.tgz", - "integrity": "sha512-DfAfA6PfpG8t4S6npwzLvTUpp0sS7JrcuaMiy1Y5645laRJIp/LiLGIBbQKaXSInK8tiGNI7FL7L8UvB8gdUZg==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.0.tgz", + "integrity": "sha512-My4cr9ATcaBbmaEa8M0dZNA74cfI6gitvUAskgDtAFmAqyFKDSHQo5YstxPbN+lzHl2D9l/YOEFqb2mtUh4gfA==", "dev": true, "dependencies": { - "@babel/helper-module-imports": "^7.15.4", - "@babel/helper-replace-supers": "^7.15.4", - "@babel/helper-simple-access": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", + "@babel/helper-module-imports": "^7.16.0", + "@babel/helper-replace-supers": "^7.16.0", + "@babel/helper-simple-access": "^7.16.0", + "@babel/helper-split-export-declaration": "^7.16.0", "@babel/helper-validator-identifier": "^7.15.7", - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.6" + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.15.4.tgz", - "integrity": "sha512-E/z9rfbAOt1vDW1DR7k4SzhzotVV5+qMciWV6LaG1g4jeFrkDlJedjtV4h0i4Q/ITnUu+Pk08M7fczsB9GXBDw==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.0.tgz", + "integrity": "sha512-SuI467Gi2V8fkofm2JPnZzB/SUuXoJA5zXe/xzyPP2M04686RzFKFHPK6HDVN6JvWBIEW8tt9hPR7fXdn2Lgpw==", "dev": true, "dependencies": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.16.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.4.tgz", - "integrity": "sha512-/ztT6khaXF37MS47fufrKvIsiQkx1LBRvSJNzRqmbyeZnTwU9qBxXYLaaT/6KaxfKhjs2Wy8kG8ZdsFUuWBjzw==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.0.tgz", + "integrity": "sha512-TQxuQfSCdoha7cpRNJvfaYxxxzmbxXw/+6cS7V02eeDYyhxderSoMVALvwupA54/pZcOTtVeJ0xccp1nGWladA==", "dev": true, "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.15.4", - "@babel/helper-optimise-call-expression": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/helper-member-expression-to-functions": "^7.16.0", + "@babel/helper-optimise-call-expression": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-simple-access": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.15.4.tgz", - "integrity": "sha512-UzazrDoIVOZZcTeHHEPYrr1MvTR/K+wgLg6MY6e1CJyaRhbibftF6fR2KU2sFRtI/nERUZR9fBd6aKgBlIBaPg==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.0.tgz", + "integrity": "sha512-o1rjBT/gppAqKsYfUdfHq5Rk03lMQrkPHG1OWzHWpLgVXRH4HnMM9Et9CVdIqwkCQlobnGHEJMsgWP/jE1zUiw==", "dev": true, "dependencies": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.16.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz", - "integrity": "sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.0.tgz", + "integrity": "sha512-0YMMRpuDFNGTHNRiiqJX19GjNXA4H0E8jZ2ibccfSxaCogbm3am5WN/2nQNj0YnQwGWM1J06GOcQ2qnh3+0paw==", "dev": true, "dependencies": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.16.0" }, "engines": { "node": ">=6.9.0" @@ -342,26 +335,26 @@ } }, "node_modules/@babel/helpers": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.15.4.tgz", - "integrity": "sha512-V45u6dqEJ3w2rlryYYXf6i9rQ5YMNu4FLS6ngs8ikblhu2VdR1AqAd6aJjBzmf2Qzh6KOLqKHxEN9+TFbAkAVQ==", + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.3.tgz", + "integrity": "sha512-Xn8IhDlBPhvYTvgewPKawhADichOsbkZuzN7qz2BusOM0brChsyXMDJvldWaYMMUNiCQdQzNEioXTp3sC8Nt8w==", "dev": true, "dependencies": { - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.3", + "@babel/types": "^7.16.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", - "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.0.tgz", + "integrity": "sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.14.5", + "@babel/helper-validator-identifier": "^7.15.7", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, @@ -441,9 +434,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.15.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.8.tgz", - "integrity": "sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==", + "version": "7.16.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.4.tgz", + "integrity": "sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -453,44 +446,32 @@ } }, "node_modules/@babel/template": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz", - "integrity": "sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template/node_modules/@babel/code-frame": { - "version": "7.15.8", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz", - "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.0.tgz", + "integrity": "sha512-MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A==", "dev": true, "dependencies": { - "@babel/highlight": "^7.14.5" + "@babel/code-frame": "^7.16.0", + "@babel/parser": "^7.16.0", + "@babel/types": "^7.16.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.4.tgz", - "integrity": "sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", - "@babel/helper-function-name": "^7.15.4", - "@babel/helper-hoist-variables": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4", + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.3.tgz", + "integrity": "sha512-eolumr1vVMjqevCpwVO99yN/LoGL0EyHiLO5I043aYQvwOJ9eR5UsZSClHVCzfhBduMAsSzgA/6AyqPjNayJag==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.16.0", + "@babel/generator": "^7.16.0", + "@babel/helper-function-name": "^7.16.0", + "@babel/helper-hoist-variables": "^7.16.0", + "@babel/helper-split-export-declaration": "^7.16.0", + "@babel/parser": "^7.16.3", + "@babel/types": "^7.16.0", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -498,18 +479,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/traverse/node_modules/@babel/code-frame": { - "version": "7.15.8", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz", - "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/traverse/node_modules/globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", @@ -520,12 +489,12 @@ } }, "node_modules/@babel/types": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz", - "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", + "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.14.9", + "@babel/helper-validator-identifier": "^7.15.7", "to-fast-properties": "^2.0.0" }, "engines": { @@ -692,6 +661,24 @@ "node": ">=8" } }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@istanbuljs/load-nyc-config/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, + "engines": { + "node": ">=8" + } + }, "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", @@ -726,15 +713,15 @@ } }, "node_modules/@microsoft/api-extractor": { - "version": "7.18.21", - "resolved": "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.18.21.tgz", - "integrity": "sha512-jRtT4ZPCUOVYlNjxsszXJQdXFu8lmdkSz8wZNVQzBkBFh5kn8Ej66p8b/KecQKpVnzUcTgPOKr1RcWR+0Fmgew==", + "version": "7.19.2", + "resolved": "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.19.2.tgz", + "integrity": "sha512-LxSa9lwp7eYtM4i5y/1n79QpotPKlmpCrVQbkb0LAHE1sCRHpZDTb6p3cMJthDhYPMjAYKOLfq639GwtZrg23Q==", "dev": true, "dependencies": { - "@microsoft/api-extractor-model": "7.13.18", + "@microsoft/api-extractor-model": "7.15.1", "@microsoft/tsdoc": "0.13.2", "@microsoft/tsdoc-config": "~0.15.2", - "@rushstack/node-core-library": "3.44.1", + "@rushstack/node-core-library": "3.44.2", "@rushstack/rig-package": "0.3.6", "@rushstack/ts-command-line": "4.10.5", "colors": "~1.2.1", @@ -742,34 +729,21 @@ "resolve": "~1.17.0", "semver": "~7.3.0", "source-map": "~0.6.1", - "typescript": "~4.4.2" + "typescript": "~4.5.2" }, "bin": { "api-extractor": "bin/api-extractor" } }, "node_modules/@microsoft/api-extractor-model": { - "version": "7.13.18", - "resolved": "https://registry.npmjs.org/@microsoft/api-extractor-model/-/api-extractor-model-7.13.18.tgz", - "integrity": "sha512-Oo9hhidRk9bFa17xkdNWso0Ry/wW6jlxD+5N2ilk1CnvZ50s6SLbZpFQJmVownM2tkHc1REdyEeQSyoApSB6Hw==", + "version": "7.15.1", + "resolved": "https://registry.npmjs.org/@microsoft/api-extractor-model/-/api-extractor-model-7.15.1.tgz", + "integrity": "sha512-DWfS1o3oMY0mzdO3OuQbD/9vzn80jwM6tFd7XbiYnkpxwhD83LMGXz7NZWwSh+IaA+9w3LF4w62fT31Qq+dAMw==", "dev": true, "dependencies": { "@microsoft/tsdoc": "0.13.2", "@microsoft/tsdoc-config": "~0.15.2", - "@rushstack/node-core-library": "3.44.1" - } - }, - "node_modules/@microsoft/api-extractor/node_modules/typescript": { - "version": "4.4.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.4.tgz", - "integrity": "sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" + "@rushstack/node-core-library": "3.44.2" } }, "node_modules/@microsoft/tsdoc": { @@ -839,9 +813,9 @@ } }, "node_modules/@rushstack/node-core-library": { - "version": "3.44.1", - "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-3.44.1.tgz", - "integrity": "sha512-qK2BKuRoy6Vh83qjXxilafsUJ1soXzEX0rtkxmAC+GsKOdEVav74Df5859bvY2Ap0JNnYfGfXukX/8o3vqODyw==", + "version": "3.44.2", + "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-3.44.2.tgz", + "integrity": "sha512-lQ8Ct267UKkNSJSDxpBWn7SyyITWQ9l3Xqww0V+YY0rMt02r9eiGvwwPaU1ugJW7IMVo6r/HXvgbmpOSPyzGyg==", "dev": true, "dependencies": { "@types/node": "12.20.24", @@ -852,7 +826,7 @@ "resolve": "~1.17.0", "semver": "~7.3.0", "timsort": "~0.3.0", - "z-schema": "~3.18.3" + "z-schema": "~5.0.2" } }, "node_modules/@rushstack/node-core-library/node_modules/@types/node": { @@ -943,9 +917,9 @@ "dev": true }, "node_modules/@tsd/typescript": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/@tsd/typescript/-/typescript-4.5.2.tgz", - "integrity": "sha512-K778wcPuAsJ9Ch0/FlhQcaIMFEi+TfxNi5NSUbgZd3RucaktYUpR++1Ox2mW2G25oyxWb8gfgg+JUhulRbI6eQ==", + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/@tsd/typescript/-/typescript-4.5.3.tgz", + "integrity": "sha512-CEz28wN9pVdFGcqpQF/j0wOwyRIGrRqflVi8pyMxyhQh5WMgg4+95SrAouFU5C8iergr7mA17YHH50keFvlfPw==", "dev": true, "bin": { "tsc": "typescript/bin/tsc", @@ -974,9 +948,9 @@ } }, "node_modules/@types/eslint": { - "version": "7.28.1", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.28.1.tgz", - "integrity": "sha512-XhZKznR3i/W5dXqUhgU9fFdJekufbeBd5DALmkuXoeFcjbQcPk+2cL+WLHf6Q81HWAnM2vrslIHpGVyCAviRwg==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.29.0.tgz", + "integrity": "sha512-VNcvioYDH8/FxaeTKkM4/TiTwt6pBV9E3OfGmvaw8tPl0rrHCJ4Ll15HRT+pMiFAf/MLQvAzC+6RzUMEL9Ceng==", "dev": true, "dependencies": { "@types/estree": "*", @@ -995,6 +969,12 @@ "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", "dev": true }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", + "dev": true + }, "node_modules/@types/kerberos": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@types/kerberos/-/kerberos-1.1.1.tgz", @@ -1060,13 +1040,13 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.6.0.tgz", - "integrity": "sha512-MIbeMy5qfLqtgs1hWd088k1hOuRsN9JrHUPwVVKCD99EOUqScd7SrwoZl4Gso05EAP9w1kvLWUVGJOVpRPkDPA==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.7.0.tgz", + "integrity": "sha512-8RTGBpNn5a9M628wBPrCbJ+v3YTEOE2qeZb7TDkGKTDXSj36KGRg92SpFFaR/0S3rSXQxM0Og/kV9EyadsYSBg==", "dev": true, "dependencies": { - "@typescript-eslint/experimental-utils": "5.6.0", - "@typescript-eslint/scope-manager": "5.6.0", + "@typescript-eslint/experimental-utils": "5.7.0", + "@typescript-eslint/scope-manager": "5.7.0", "debug": "^4.3.2", "functional-red-black-tree": "^1.0.1", "ignore": "^5.1.8", @@ -1092,15 +1072,15 @@ } }, "node_modules/@typescript-eslint/experimental-utils": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.6.0.tgz", - "integrity": "sha512-VDoRf3Qj7+W3sS/ZBXZh3LBzp0snDLEgvp6qj0vOAIiAPM07bd5ojQ3CTzF/QFl5AKh7Bh1ycgj6lFBJHUt/DA==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.7.0.tgz", + "integrity": "sha512-u57eZ5FbEpzN5kSjmVrSesovWslH2ZyNPnaXQMXWgH57d5+EVHEt76W75vVuI9qKZ5BMDKNfRN+pxcPEjQjb2A==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.6.0", - "@typescript-eslint/types": "5.6.0", - "@typescript-eslint/typescript-estree": "5.6.0", + "@typescript-eslint/scope-manager": "5.7.0", + "@typescript-eslint/types": "5.7.0", + "@typescript-eslint/typescript-estree": "5.7.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" }, @@ -1116,14 +1096,14 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.6.0.tgz", - "integrity": "sha512-YVK49NgdUPQ8SpCZaOpiq1kLkYRPMv9U5gcMrywzI8brtwZjr/tG3sZpuHyODt76W/A0SufNjYt9ZOgrC4tLIQ==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.7.0.tgz", + "integrity": "sha512-m/gWCCcS4jXw6vkrPQ1BjZ1vomP01PArgzvauBqzsoZ3urLbsRChexB8/YV8z9HwE3qlJM35FxfKZ1nfP/4x8g==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.6.0", - "@typescript-eslint/types": "5.6.0", - "@typescript-eslint/typescript-estree": "5.6.0", + "@typescript-eslint/scope-manager": "5.7.0", + "@typescript-eslint/types": "5.7.0", + "@typescript-eslint/typescript-estree": "5.7.0", "debug": "^4.3.2" }, "engines": { @@ -1143,13 +1123,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.6.0.tgz", - "integrity": "sha512-1U1G77Hw2jsGWVsO2w6eVCbOg0HZ5WxL/cozVSTfqnL/eB9muhb8THsP0G3w+BB5xAHv9KptwdfYFAUfzcIh4A==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.7.0.tgz", + "integrity": "sha512-7mxR520DGq5F7sSSgM0HSSMJ+TFUymOeFRMfUfGFAVBv8BR+Jv1vHgAouYUvWRZeszVBJlLcc9fDdktxb5kmxA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.6.0", - "@typescript-eslint/visitor-keys": "5.6.0" + "@typescript-eslint/types": "5.7.0", + "@typescript-eslint/visitor-keys": "5.7.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -1160,9 +1140,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.6.0.tgz", - "integrity": "sha512-OIZffked7mXv4mXzWU5MgAEbCf9ecNJBKi+Si6/I9PpTaj+cf2x58h2oHW5/P/yTnPkKaayfjhLvx+crnl5ubA==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.7.0.tgz", + "integrity": "sha512-5AeYIF5p2kAneIpnLFve8g50VyAjq7udM7ApZZ9JYjdPjkz0LvODfuSHIDUVnIuUoxafoWzpFyU7Sqbxgi79mA==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -1173,13 +1153,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.6.0.tgz", - "integrity": "sha512-92vK5tQaE81rK7fOmuWMrSQtK1IMonESR+RJR2Tlc7w4o0MeEdjgidY/uO2Gobh7z4Q1hhS94Cr7r021fMVEeA==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.7.0.tgz", + "integrity": "sha512-aO1Ql+izMrTnPj5aFFlEJkpD4jRqC4Gwhygu2oHK2wfVQpmOPbyDSveJ+r/NQo+PWV43M6uEAeLVbTi09dFLhg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.6.0", - "@typescript-eslint/visitor-keys": "5.6.0", + "@typescript-eslint/types": "5.7.0", + "@typescript-eslint/visitor-keys": "5.7.0", "debug": "^4.3.2", "globby": "^11.0.4", "is-glob": "^4.0.3", @@ -1200,12 +1180,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.6.0.tgz", - "integrity": "sha512-1p7hDp5cpRFUyE3+lvA74egs+RWSgumrBpzBCDzfTFv0aQ7lIeay80yU0hIxgAhwQ6PcasW35kaOCyDOv6O/Ng==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.7.0.tgz", + "integrity": "sha512-hdohahZ4lTFcglZSJ3DGdzxQHBSxsLVqHzkiOmKi7xVAWC4y2c1bIMKmPJSrA4aOEoRUPOKQ87Y/taC7yVHpFg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.6.0", + "@typescript-eslint/types": "5.7.0", "eslint-visitor-keys": "^3.0.0" }, "engines": { @@ -1399,6 +1379,25 @@ "integrity": "sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4=", "dev": true }, + "node_modules/array-includes": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", + "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/array-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", @@ -1408,6 +1407,23 @@ "node": ">=8" } }, + "node_modules/array.prototype.flat": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", + "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/arrify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", @@ -1495,16 +1511,16 @@ "dev": true }, "node_modules/browserslist": { - "version": "4.17.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.3.tgz", - "integrity": "sha512-59IqHJV5VGdcJZ+GZ2hU5n4Kv3YiASzW6Xk5g9tf5a/MAzGeFwgGWU39fVzNIOVcgB3+Gp+kiQu0HEfTVU/3VQ==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.18.1.tgz", + "integrity": "sha512-8ScCzdpPwR2wQh8IT82CA2VgDwjHyqMovPBZSNH54+tm4Jk2pCuv90gmAdH6J84OCRWi0b4gMe6O6XPXuJnjgQ==", "dev": true, "dependencies": { - "caniuse-lite": "^1.0.30001264", - "electron-to-chromium": "^1.3.857", + "caniuse-lite": "^1.0.30001280", + "electron-to-chromium": "^1.3.896", "escalade": "^3.1.1", - "node-releases": "^1.1.77", - "picocolors": "^0.2.1" + "node-releases": "^2.0.1", + "picocolors": "^1.0.0" }, "bin": { "browserslist": "cli.js" @@ -1572,6 +1588,19 @@ "node": ">=8" } }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -1608,9 +1637,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001265", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001265.tgz", - "integrity": "sha512-YzBnspggWV5hep1m9Z6sZVLOt7vrju8xWooFAgN6BA5qvy98qPAPb7vNUzypFaoh2pb3vlfzbDO8tB57UPGbtw==", + "version": "1.0.30001286", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001286.tgz", + "integrity": "sha512-zaEMRH6xg8ESMi2eQ3R4eZ5qw/hJiVsO/HlLwniIwErij0JDr9P+8V4dtx1l+kLq6j3yy8l8W4fst1lBnat5wQ==", "dev": true, "funding": { "type": "opencollective", @@ -1689,6 +1718,18 @@ "fsevents": "~2.3.2" } }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/clean-stack": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", @@ -1709,29 +1750,6 @@ "wrap-ansi": "^7.0.0" } }, - "node_modules/cliui/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -1803,20 +1821,6 @@ "typedarray": "^0.0.6" } }, - "node_modules/concat-stream/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/conventional-changelog": { "version": "3.1.24", "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-3.1.24.tgz", @@ -2037,9 +2041,9 @@ } }, "node_modules/conventional-commits-parser": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.2.tgz", - "integrity": "sha512-Jr9KAKgqAkwXMRHjxDwO/zOCDKod1XdAESHAGuJX38iZ7ZzVti/tvVoysO0suMsdAObp9NQ2rHSsSbnAqZ5f5g==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.3.tgz", + "integrity": "sha512-YyRDR7On9H07ICFpRm/igcdjIqebXbvf4Cff+Pf0BrBys1i1EOzx9iFXNlAbdrLAR8jf7bkUYkDAr8pEy0q4Pw==", "dev": true, "dependencies": { "is-text-path": "^1.0.1", @@ -2132,9 +2136,9 @@ } }, "node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", "dev": true, "dependencies": { "ms": "2.1.2" @@ -2209,6 +2213,18 @@ "node": ">=8" } }, + "node_modules/define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "dependencies": { + "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/denque": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/denque/-/denque-2.0.1.tgz", @@ -2345,13 +2361,13 @@ "node": ">=6" } }, - "node_modules/dotgitignore/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "node_modules/dotgitignore/node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, "engines": { - "node": ">=4" + "node": ">=6" } }, "node_modules/downlevel-dts": { @@ -2369,9 +2385,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.3.866", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.866.tgz", - "integrity": "sha512-iYze6TpDXWxk+sfcpUUdTs6Pv/3kG45Pnjer2DxEeFw0N08bZeNLuz97s2lMgy8yObon48o0WHY2Bkg3xuAPOA==", + "version": "1.4.17", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.17.tgz", + "integrity": "sha512-zhk1MravPtq/KBhmGB7TLBILmXTgRG9TFSI3qS3DbgyfHzIl72iiTE37r/BHIbPCJJlWIo5rySyxiH4vWhu2ZA==", "dev": true }, "node_modules/emoji-regex": { @@ -2401,6 +2417,57 @@ "is-arrayish": "^0.2.1" } }, + "node_modules/es-abstract": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", + "is-string": "^1.0.7", + "is-weakref": "^1.0.1", + "object-inspect": "^1.11.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/es6-error": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", @@ -2517,27 +2584,126 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint-formatter-pretty/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "node_modules/eslint-import-resolver-node": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "resolve": "^1.20.0" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "dev": true, + "dependencies": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.1.tgz", + "integrity": "sha512-fjoetBXQZq2tSTWZ9yWVl2KuFrTZZH3V+9iD1V1RfpDgxzJR+mPd/KZmMiA8gbPqdBzpNiEHOuT7IYEWxrH0zQ==", "dev": true, + "dependencies": { + "debug": "^3.2.7", + "find-up": "^2.1.0", + "pkg-dir": "^2.0.0" + }, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/eslint-formatter-pretty/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.25.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.3.tgz", + "integrity": "sha512-RzAVbby+72IB3iOEL8clzPLzL3wpDrlwjsTBAQXgyp5SeTqqY+0bFubwuo+y/HLhNZcXV4XqTBO4LGsfyHIDXg==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.1", + "has": "^1.0.3", + "is-core-module": "^2.8.0", + "is-glob": "^4.0.3", + "minimatch": "^3.0.4", + "object.values": "^1.1.5", + "resolve": "^1.20.0", + "tsconfig-paths": "^3.11.0" }, "engines": { - "node": ">=8" + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/eslint-plugin-import/node_modules/resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "dev": true, + "dependencies": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/eslint-plugin-prettier": { @@ -2561,6 +2727,15 @@ } } }, + "node_modules/eslint-plugin-simple-import-sort": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-7.0.0.tgz", + "integrity": "sha512-U3vEDB5zhYPNfxT5TYR7u01dboFZp+HNpnGhkDB2g/2E4wZ/g1Q9Ton8UwCLfRV9yAKyYqDh62oHOamvkFxsvw==", + "dev": true, + "peerDependencies": { + "eslint": ">=5.0.0" + } + }, "node_modules/eslint-plugin-tsdoc": { "version": "0.2.14", "resolved": "https://registry.npmjs.org/eslint-plugin-tsdoc/-/eslint-plugin-tsdoc-0.2.14.tgz", @@ -2648,18 +2823,6 @@ "node": ">=4.0" } }, - "node_modules/eslint/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/eslint/node_modules/ignore": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", @@ -2709,9 +2872,9 @@ } }, "node_modules/esquery/node_modules/estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, "engines": { "node": ">=4.0" @@ -2784,16 +2947,28 @@ "node": ">=8" } }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, "node_modules/fastq": { @@ -2870,22 +3045,100 @@ "url": "https://github.com/avajs/find-cache-dir?sponsor=1" } }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "node_modules/find-cache-dir/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, "dependencies": { - "locate-path": "^6.0.0", + "locate-path": "^5.0.0", "path-exists": "^4.0.0" }, "engines": { - "node": ">=10" + "node": ">=8" + } + }, + "node_modules/find-cache-dir/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, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/find-cache-dir/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, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir/node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/find-cache-dir/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir/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, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/flat": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", @@ -2909,9 +3162,9 @@ } }, "node_modules/flatted": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz", - "integrity": "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==", + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz", + "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==", "dev": true }, "node_modules/foreground-child": { @@ -3032,6 +3285,20 @@ "node": "*" } }, + "node_modules/get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/get-package-type": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", @@ -3059,27 +3326,34 @@ "node": ">=6.9.0" } }, - "node_modules/get-pkg-repo/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "node_modules/get-pkg-repo/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "node_modules/get-pkg-repo/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "dev": true, - "engines": { - "node": ">=8" + "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" } }, - "node_modules/get-pkg-repo/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "node_modules/get-pkg-repo/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" + "safe-buffer": "~5.1.0" } }, "node_modules/get-pkg-repo/node_modules/through2": { @@ -3110,6 +3384,22 @@ "node": ">=10" } }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/git-raw-commits": { "version": "2.0.10", "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.10.tgz", @@ -3197,15 +3487,15 @@ } }, "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, "dependencies": { - "is-glob": "^4.0.1" + "is-glob": "^4.0.3" }, "engines": { - "node": ">= 6" + "node": ">=10.13.0" } }, "node_modules/globals": { @@ -3300,6 +3590,15 @@ "node": ">= 0.4.0" } }, + "node_modules/has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -3309,6 +3608,33 @@ "node": ">=8" } }, + "node_modules/has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/hasha": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", @@ -3381,9 +3707,9 @@ ] }, "node_modules/ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.9.tgz", + "integrity": "sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ==", "dev": true, "engines": { "node": ">= 4" @@ -3454,6 +3780,20 @@ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", "dev": true }, + "node_modules/internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/interpret": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", @@ -3478,6 +3818,18 @@ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -3490,10 +3842,38 @@ "node": ">=8" } }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-core-module": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.7.0.tgz", - "integrity": "sha512-ByY+tjCciCr+9nLryBYcSD50EOGWt95c7tIsKTG1J2ixKKXPvF7Ej3AVd+UfDydAJom3biBGDBALaO79ktwgEQ==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", + "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", "dev": true, "dependencies": { "has": "^1.0.3" @@ -3502,6 +3882,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -3511,6 +3906,15 @@ "node": ">=0.10.0" } }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", @@ -3523,6 +3927,18 @@ "node": ">=0.10.0" } }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -3532,6 +3948,21 @@ "node": ">=0.12.0" } }, + "node_modules/is-number-object": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", + "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-obj": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", @@ -3550,6 +3981,31 @@ "node": ">=0.10.0" } }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", + "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-stream": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", @@ -3562,6 +4018,36 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-text-path": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", @@ -3592,6 +4078,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", @@ -3614,9 +4112,9 @@ "dev": true }, "node_modules/istanbul-lib-coverage": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.2.tgz", - "integrity": "sha512-o5+eTUYzCJ11/+JhW5/FUCdfsdoYVdQ/8I/OveE2XsjehYn5DdeSnNQAbjYaO8gQ6hvGTN6GM6ddQqpTVG5j8g==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", "dev": true, "engines": { "node": ">=8" @@ -3705,9 +4203,9 @@ } }, "node_modules/istanbul-reports": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.4.tgz", - "integrity": "sha512-bFjUnc95rHjdCR63WMHUS7yfJJh8T9IPSWavvR02hhjVwezWALZ5axF9EqjmwZHpXqkzbgAMP8DmAtiyNxrdrQ==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.1.tgz", + "integrity": "sha512-q1kvhAXWSsXfMjCdNHNPKZZv94OlspKnoGv+R9RGbnqOOQ0VbNfLFgQDVgi7hHenKsndGq3/o0OBdzDXthWcNw==", "dev": true, "dependencies": { "html-escaper": "^2.0.0", @@ -3867,9 +4365,9 @@ } }, "node_modules/lines-and-columns": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true }, "node_modules/load-json-file": { @@ -3906,18 +4404,16 @@ } }, "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, "dependencies": { - "p-locate": "^5.0.0" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, "node_modules/lodash": { @@ -4121,6 +4617,15 @@ "node": ">=8" } }, + "node_modules/meow/node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/meow/node_modules/parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", @@ -4139,6 +4644,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/meow/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, + "engines": { + "node": ">=8" + } + }, "node_modules/meow/node_modules/read-pkg": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", @@ -4341,13 +4855,58 @@ "sinon": "*" } }, - "node_modules/mocha/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "node_modules/mocha/node_modules/debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dev": true, + "dependencies": { + "ms": "2.1.2" + }, "engines": { - "node": ">=8" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/mocha/node_modules/debug/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/mocha/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/mocha/node_modules/ms": { @@ -4356,16 +4915,41 @@ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true }, - "node_modules/mocha/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "node_modules/mocha/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/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, "engines": { "node": ">=8" } @@ -4477,9 +5061,9 @@ } }, "node_modules/node-releases": { - "version": "1.1.77", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz", - "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", + "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", "dev": true }, "node_modules/normalize-package-data": { @@ -4580,15 +5164,6 @@ "node": ">=8" } }, - "node_modules/nyc/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/nyc/node_modules/locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", @@ -4628,25 +5203,29 @@ "node": ">=8" } }, - "node_modules/nyc/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "node_modules/nyc/node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/nyc/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, "engines": { "node": ">=8" } }, - "node_modules/nyc/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "node_modules/nyc/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, "engines": { "node": ">=8" } @@ -4706,6 +5285,59 @@ "node": ">=6" } }, + "node_modules/object-inspect": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.1.tgz", + "integrity": "sha512-If7BjFlpkzzBeV1cqgT3OSWT3azyoxDGajR+iGnFBfVV2EWyDyWaZZW2ERDjUaY2QM8i5jI3Sj7mhsM4DDAqWA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -4733,33 +5365,27 @@ } }, "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "dev": true, "dependencies": { - "yocto-queue": "^0.1.0" + "p-try": "^1.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "dependencies": { - "p-limit": "^3.0.2" + "p-limit": "^1.1.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, "node_modules/p-map": { @@ -4775,12 +5401,12 @@ } }, "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", "dev": true, "engines": { - "node": ">=6" + "node": ">=4" } }, "node_modules/package-hash": { @@ -4824,12 +5450,12 @@ } }, "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==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "dev": true, "engines": { - "node": ">=8" + "node": ">=4" } }, "node_modules/path-is-absolute": { @@ -4884,9 +5510,9 @@ } }, "node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", "dev": true }, "node_modules/picomatch": { @@ -4898,80 +5524,28 @@ "node": ">=8.6" }, "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "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, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/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, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/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, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/pkg-dir/node_modules/p-limit": { + "node_modules/pify": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, - "node_modules/pkg-dir/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==", + "node_modules/pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", "dev": true, "dependencies": { - "p-limit": "^2.2.0" + "find-up": "^2.1.0" }, "engines": { - "node": ">=8" + "node": ">=4" } }, "node_modules/plur": { @@ -5132,73 +5706,6 @@ "node": ">=4" } }, - "node_modules/read-pkg-up/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/read-pkg/node_modules/hosted-git-info": { "version": "2.8.9", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", @@ -5248,26 +5755,19 @@ } }, "node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dev": true, "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" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" } }, - "node_modules/readable-stream/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, "node_modules/readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", @@ -5505,10 +6005,24 @@ "node": ">=4" } }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/signal-exit": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.5.tgz", - "integrity": "sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", + "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==", "dev": true }, "node_modules/sinon": { @@ -5629,9 +6143,9 @@ } }, "node_modules/spdx-license-ids": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz", - "integrity": "sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", + "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", "dev": true }, "node_modules/split": { @@ -5655,20 +6169,6 @@ "readable-stream": "^3.0.0" } }, - "node_modules/split2/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -5754,6 +6254,22 @@ "node": ">=0.8.0" } }, + "node_modules/standard-version/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/standard-version/node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -5763,25 +6279,56 @@ "node": ">=4" } }, - "node_modules/standard-version/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "node_modules/standard-version/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/standard-version/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "node_modules/standard-version/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/standard-version/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/standard-version/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, "engines": { "node": ">=8" } @@ -5817,14 +6364,34 @@ } }, "node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "dev": true, "dependencies": { - "safe-buffer": "~5.1.0" + "safe-buffer": "~5.2.0" } }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/string-argv": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz", @@ -5834,6 +6401,46 @@ "node": ">=0.6.19" } }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/stringify-package": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/stringify-package/-/stringify-package-1.0.1.tgz", @@ -5944,28 +6551,14 @@ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", "dev": true - }, - "node_modules/through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "dev": true, - "dependencies": { - "readable-stream": "3" - } - }, - "node_modules/through2/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + }, + "node_modules/through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", "dev": true, "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" + "readable-stream": "3" } }, "node_modules/timsort": { @@ -6065,6 +6658,39 @@ "node": ">=0.3.1" } }, + "node_modules/tsconfig-paths": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz", + "integrity": "sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg==", + "dev": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.0", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/tsd": { "version": "0.19.0", "resolved": "https://registry.npmjs.org/tsd/-/tsd-0.19.0.tgz", @@ -6169,6 +6795,15 @@ "node": ">=8" } }, + "node_modules/tsd/node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/tsd/node_modules/parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", @@ -6187,6 +6822,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/tsd/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, + "engines": { + "node": ">=8" + } + }, "node_modules/tsd/node_modules/read-pkg": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", @@ -6340,9 +6984,9 @@ } }, "node_modules/typescript": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.2.tgz", - "integrity": "sha512-5BlMof9H1yGt0P8/WF+wPNw6GfctgGjXp5hkblpyT+8rkASSmkUKMXrxR0Xg8ThVCi/JnHQiKXeBaEwCeQwMFw==", + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.4.tgz", + "integrity": "sha512-VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -6367,9 +7011,9 @@ } }, "node_modules/typescript-cached-transpile/node_modules/@types/node": { - "version": "12.20.29", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.29.tgz", - "integrity": "sha512-dU2ypz+gO5va1OBvs0iT3BNHG5SgTqRvq8r+kU3e/LAseKapUJ8zTUE9Ve9fTpi27tN/7ahOAhCJwQWsffvsyw==", + "version": "12.20.37", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.37.tgz", + "integrity": "sha512-i1KGxqcvJaLQali+WuypQnXwcplhtNtjs66eNsZpp2P2FL/trJJxx/VWsM0YCL2iMoIJrbXje48lvIQAQ4p2ZA==", "dev": true }, "node_modules/typescript-cached-transpile/node_modules/fs-extra": { @@ -6387,9 +7031,9 @@ } }, "node_modules/uglify-js": { - "version": "3.14.2", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.2.tgz", - "integrity": "sha512-rtPMlmcO4agTUfz10CbgJ1k6UAoXM2gWb3GoMPPZB/+/Ackf8lNWk11K4rYi2D0apgoFRLtQOZhb+/iGNJq26A==", + "version": "3.14.5", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.5.tgz", + "integrity": "sha512-qZukoSxOG0urUTvjc2ERMTcAy+BiFh3weWAkeurLwjrCba73poHmG3E36XEjd/JGukMzwTL7uCxZiAexj8ppvQ==", "dev": true, "optional": true, "bin": { @@ -6399,6 +7043,21 @@ "node": ">=0.8.0" } }, + "node_modules/unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", @@ -6450,9 +7109,9 @@ } }, "node_modules/validator": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/validator/-/validator-8.2.0.tgz", - "integrity": "sha512-Yw5wW34fSv5spzTXNkokD6S6/Oq92d8q/t14TqsS3fAiA1RYnxSFSIZ+CY3n6PGGRCq5HhJTSepQvFUS2QUDxA==", + "version": "13.7.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.7.0.tgz", + "integrity": "sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw==", "dev": true, "engines": { "node": ">= 0.10" @@ -6493,6 +7152,22 @@ "node": ">= 8" } }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/which-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", @@ -6537,29 +7212,6 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -6667,9 +7319,9 @@ } }, "node_modules/yargs-unparser/node_modules/camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz", + "integrity": "sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==", "dev": true, "engines": { "node": ">=10" @@ -6699,29 +7351,6 @@ "node": ">=8" } }, - "node_modules/yargs/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/yargs/node_modules/yargs-parser": { "version": "21.0.0", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.0.tgz", @@ -6753,18 +7382,21 @@ } }, "node_modules/z-schema": { - "version": "3.18.4", - "resolved": "https://registry.npmjs.org/z-schema/-/z-schema-3.18.4.tgz", - "integrity": "sha512-DUOKC/IhbkdLKKiV89gw9DUauTV8U/8yJl1sjf6MtDmzevLKOF2duNJ495S3MFVjqZarr+qNGCPbkg4mu4PpLw==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/z-schema/-/z-schema-5.0.2.tgz", + "integrity": "sha512-40TH47ukMHq5HrzkeVE40Ad7eIDKaRV2b+Qpi2prLc9X9eFJFzV7tMe5aH12e6avaSS/u5l653EQOv+J9PirPw==", "dev": true, "dependencies": { - "lodash.get": "^4.0.0", - "lodash.isequal": "^4.0.0", - "validator": "^8.0.0" + "lodash.get": "^4.4.2", + "lodash.isequal": "^4.5.0", + "validator": "^13.7.0" }, "bin": { "z-schema": "bin/z-schema" }, + "engines": { + "node": ">=8.0.0" + }, "optionalDependencies": { "commander": "^2.7.1" } @@ -6772,35 +7404,35 @@ }, "dependencies": { "@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", + "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", "dev": true, "requires": { - "@babel/highlight": "^7.10.4" + "@babel/highlight": "^7.16.0" } }, "@babel/compat-data": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.15.0.tgz", - "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==", + "version": "7.16.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.4.tgz", + "integrity": "sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q==", "dev": true }, "@babel/core": { - "version": "7.15.8", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.8.tgz", - "integrity": "sha512-3UG9dsxvYBMYwRv+gS41WKHno4K60/9GPy1CJaH6xy3Elq8CTtvtjT5R5jmNhXfCYLX2mTw+7/aq5ak/gOE0og==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.15.8", - "@babel/generator": "^7.15.8", - "@babel/helper-compilation-targets": "^7.15.4", - "@babel/helper-module-transforms": "^7.15.8", - "@babel/helpers": "^7.15.4", - "@babel/parser": "^7.15.8", - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.6", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.0.tgz", + "integrity": "sha512-mYZEvshBRHGsIAiyH5PzCFTCfbWfoYbO/jcSdXQSUQu1/pW0xDZAUP7KEc32heqWTAfAHhV9j1vH8Sav7l+JNQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.16.0", + "@babel/generator": "^7.16.0", + "@babel/helper-compilation-targets": "^7.16.0", + "@babel/helper-module-transforms": "^7.16.0", + "@babel/helpers": "^7.16.0", + "@babel/parser": "^7.16.0", + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -6809,15 +7441,6 @@ "source-map": "^0.5.0" }, "dependencies": { - "@babel/code-frame": { - "version": "7.15.8", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz", - "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==", - "dev": true, - "requires": { - "@babel/highlight": "^7.14.5" - } - }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -6833,12 +7456,12 @@ } }, "@babel/generator": { - "version": "7.15.8", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.8.tgz", - "integrity": "sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.0.tgz", + "integrity": "sha512-RR8hUCfRQn9j9RPKEVXo9LiwoxLPYn6hNZlvUOR8tSnaxlD0p0+la00ZP9/SnRt6HchKr+X0fO2r8vrETiJGew==", "dev": true, "requires": { - "@babel/types": "^7.15.6", + "@babel/types": "^7.16.0", "jsesc": "^2.5.1", "source-map": "^0.5.0" }, @@ -6852,14 +7475,14 @@ } }, "@babel/helper-compilation-targets": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.4.tgz", - "integrity": "sha512-rMWPCirulnPSe4d+gwdWXLfAXTTBj8M3guAf5xFQJ0nvFY7tfNAFnWdqaHegHlgDZOCT4qvhF3BYlSJag8yhqQ==", + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.3.tgz", + "integrity": "sha512-vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA==", "dev": true, "requires": { - "@babel/compat-data": "^7.15.0", + "@babel/compat-data": "^7.16.0", "@babel/helper-validator-option": "^7.14.5", - "browserslist": "^4.16.6", + "browserslist": "^4.17.5", "semver": "^6.3.0" }, "dependencies": { @@ -6872,105 +7495,105 @@ } }, "@babel/helper-function-name": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz", - "integrity": "sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.0.tgz", + "integrity": "sha512-BZh4mEk1xi2h4HFjWUXRQX5AEx4rvaZxHgax9gcjdLWdkjsY7MKt5p0otjsg5noXw+pB+clMCjw+aEVYADMjog==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.15.4", - "@babel/template": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/helper-get-function-arity": "^7.16.0", + "@babel/template": "^7.16.0", + "@babel/types": "^7.16.0" } }, "@babel/helper-get-function-arity": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz", - "integrity": "sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.0.tgz", + "integrity": "sha512-ASCquNcywC1NkYh/z7Cgp3w31YW8aojjYIlNg4VeJiHkqyP4AzIvr4qx7pYDb4/s8YcsZWqqOSxgkvjUz1kpDQ==", "dev": true, "requires": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.16.0" } }, "@babel/helper-hoist-variables": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz", - "integrity": "sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.0.tgz", + "integrity": "sha512-1AZlpazjUR0EQZQv3sgRNfM9mEVWPK3M6vlalczA+EECcPz3XPh6VplbErL5UoMpChhSck5wAJHthlj1bYpcmg==", "dev": true, "requires": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.16.0" } }, "@babel/helper-member-expression-to-functions": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.4.tgz", - "integrity": "sha512-cokOMkxC/BTyNP1AlY25HuBWM32iCEsLPI4BHDpJCHHm1FU2E7dKWWIXJgQgSFiu4lp8q3bL1BIKwqkSUviqtA==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.0.tgz", + "integrity": "sha512-bsjlBFPuWT6IWhl28EdrQ+gTvSvj5tqVP5Xeftp07SEuz5pLnsXZuDkDD3Rfcxy0IsHmbZ+7B2/9SHzxO0T+sQ==", "dev": true, "requires": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.16.0" } }, "@babel/helper-module-imports": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.15.4.tgz", - "integrity": "sha512-jeAHZbzUwdW/xHgHQ3QmWR4Jg6j15q4w/gCfwZvtqOxoo5DKtLHk8Bsf4c5RZRC7NmLEs+ohkdq8jFefuvIxAA==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz", + "integrity": "sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg==", "dev": true, "requires": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.16.0" } }, "@babel/helper-module-transforms": { - "version": "7.15.8", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.8.tgz", - "integrity": "sha512-DfAfA6PfpG8t4S6npwzLvTUpp0sS7JrcuaMiy1Y5645laRJIp/LiLGIBbQKaXSInK8tiGNI7FL7L8UvB8gdUZg==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.0.tgz", + "integrity": "sha512-My4cr9ATcaBbmaEa8M0dZNA74cfI6gitvUAskgDtAFmAqyFKDSHQo5YstxPbN+lzHl2D9l/YOEFqb2mtUh4gfA==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.15.4", - "@babel/helper-replace-supers": "^7.15.4", - "@babel/helper-simple-access": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", + "@babel/helper-module-imports": "^7.16.0", + "@babel/helper-replace-supers": "^7.16.0", + "@babel/helper-simple-access": "^7.16.0", + "@babel/helper-split-export-declaration": "^7.16.0", "@babel/helper-validator-identifier": "^7.15.7", - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.6" + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0" } }, "@babel/helper-optimise-call-expression": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.15.4.tgz", - "integrity": "sha512-E/z9rfbAOt1vDW1DR7k4SzhzotVV5+qMciWV6LaG1g4jeFrkDlJedjtV4h0i4Q/ITnUu+Pk08M7fczsB9GXBDw==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.0.tgz", + "integrity": "sha512-SuI467Gi2V8fkofm2JPnZzB/SUuXoJA5zXe/xzyPP2M04686RzFKFHPK6HDVN6JvWBIEW8tt9hPR7fXdn2Lgpw==", "dev": true, "requires": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.16.0" } }, "@babel/helper-replace-supers": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.4.tgz", - "integrity": "sha512-/ztT6khaXF37MS47fufrKvIsiQkx1LBRvSJNzRqmbyeZnTwU9qBxXYLaaT/6KaxfKhjs2Wy8kG8ZdsFUuWBjzw==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.0.tgz", + "integrity": "sha512-TQxuQfSCdoha7cpRNJvfaYxxxzmbxXw/+6cS7V02eeDYyhxderSoMVALvwupA54/pZcOTtVeJ0xccp1nGWladA==", "dev": true, "requires": { - "@babel/helper-member-expression-to-functions": "^7.15.4", - "@babel/helper-optimise-call-expression": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/helper-member-expression-to-functions": "^7.16.0", + "@babel/helper-optimise-call-expression": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0" } }, "@babel/helper-simple-access": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.15.4.tgz", - "integrity": "sha512-UzazrDoIVOZZcTeHHEPYrr1MvTR/K+wgLg6MY6e1CJyaRhbibftF6fR2KU2sFRtI/nERUZR9fBd6aKgBlIBaPg==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.0.tgz", + "integrity": "sha512-o1rjBT/gppAqKsYfUdfHq5Rk03lMQrkPHG1OWzHWpLgVXRH4HnMM9Et9CVdIqwkCQlobnGHEJMsgWP/jE1zUiw==", "dev": true, "requires": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.16.0" } }, "@babel/helper-split-export-declaration": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz", - "integrity": "sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.0.tgz", + "integrity": "sha512-0YMMRpuDFNGTHNRiiqJX19GjNXA4H0E8jZ2ibccfSxaCogbm3am5WN/2nQNj0YnQwGWM1J06GOcQ2qnh3+0paw==", "dev": true, "requires": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.16.0" } }, "@babel/helper-validator-identifier": { @@ -6986,23 +7609,23 @@ "dev": true }, "@babel/helpers": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.15.4.tgz", - "integrity": "sha512-V45u6dqEJ3w2rlryYYXf6i9rQ5YMNu4FLS6ngs8ikblhu2VdR1AqAd6aJjBzmf2Qzh6KOLqKHxEN9+TFbAkAVQ==", + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.3.tgz", + "integrity": "sha512-Xn8IhDlBPhvYTvgewPKawhADichOsbkZuzN7qz2BusOM0brChsyXMDJvldWaYMMUNiCQdQzNEioXTp3sC8Nt8w==", "dev": true, "requires": { - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.3", + "@babel/types": "^7.16.0" } }, "@babel/highlight": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", - "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.0.tgz", + "integrity": "sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.14.5", + "@babel/helper-validator-identifier": "^7.15.7", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, @@ -7066,59 +7689,39 @@ } }, "@babel/parser": { - "version": "7.15.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.8.tgz", - "integrity": "sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==", + "version": "7.16.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.4.tgz", + "integrity": "sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng==", "dev": true }, "@babel/template": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz", - "integrity": "sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.0.tgz", + "integrity": "sha512-MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A==", "dev": true, "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.15.8", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz", - "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==", - "dev": true, - "requires": { - "@babel/highlight": "^7.14.5" - } - } + "@babel/code-frame": "^7.16.0", + "@babel/parser": "^7.16.0", + "@babel/types": "^7.16.0" } }, "@babel/traverse": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.4.tgz", - "integrity": "sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", - "@babel/helper-function-name": "^7.15.4", - "@babel/helper-hoist-variables": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4", + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.3.tgz", + "integrity": "sha512-eolumr1vVMjqevCpwVO99yN/LoGL0EyHiLO5I043aYQvwOJ9eR5UsZSClHVCzfhBduMAsSzgA/6AyqPjNayJag==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.16.0", + "@babel/generator": "^7.16.0", + "@babel/helper-function-name": "^7.16.0", + "@babel/helper-hoist-variables": "^7.16.0", + "@babel/helper-split-export-declaration": "^7.16.0", + "@babel/parser": "^7.16.3", + "@babel/types": "^7.16.0", "debug": "^4.1.0", "globals": "^11.1.0" }, "dependencies": { - "@babel/code-frame": { - "version": "7.15.8", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz", - "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==", - "dev": true, - "requires": { - "@babel/highlight": "^7.14.5" - } - }, "globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", @@ -7128,12 +7731,12 @@ } }, "@babel/types": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz", - "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", + "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.14.9", + "@babel/helper-validator-identifier": "^7.15.7", "to-fast-properties": "^2.0.0" } }, @@ -7260,6 +7863,18 @@ "p-limit": "^2.2.0" } }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "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 + }, "resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", @@ -7284,15 +7899,15 @@ "dev": true }, "@microsoft/api-extractor": { - "version": "7.18.21", - "resolved": "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.18.21.tgz", - "integrity": "sha512-jRtT4ZPCUOVYlNjxsszXJQdXFu8lmdkSz8wZNVQzBkBFh5kn8Ej66p8b/KecQKpVnzUcTgPOKr1RcWR+0Fmgew==", + "version": "7.19.2", + "resolved": "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.19.2.tgz", + "integrity": "sha512-LxSa9lwp7eYtM4i5y/1n79QpotPKlmpCrVQbkb0LAHE1sCRHpZDTb6p3cMJthDhYPMjAYKOLfq639GwtZrg23Q==", "dev": true, "requires": { - "@microsoft/api-extractor-model": "7.13.18", + "@microsoft/api-extractor-model": "7.15.1", "@microsoft/tsdoc": "0.13.2", "@microsoft/tsdoc-config": "~0.15.2", - "@rushstack/node-core-library": "3.44.1", + "@rushstack/node-core-library": "3.44.2", "@rushstack/rig-package": "0.3.6", "@rushstack/ts-command-line": "4.10.5", "colors": "~1.2.1", @@ -7300,26 +7915,18 @@ "resolve": "~1.17.0", "semver": "~7.3.0", "source-map": "~0.6.1", - "typescript": "~4.4.2" - }, - "dependencies": { - "typescript": { - "version": "4.4.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.4.tgz", - "integrity": "sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA==", - "dev": true - } + "typescript": "~4.5.2" } }, "@microsoft/api-extractor-model": { - "version": "7.13.18", - "resolved": "https://registry.npmjs.org/@microsoft/api-extractor-model/-/api-extractor-model-7.13.18.tgz", - "integrity": "sha512-Oo9hhidRk9bFa17xkdNWso0Ry/wW6jlxD+5N2ilk1CnvZ50s6SLbZpFQJmVownM2tkHc1REdyEeQSyoApSB6Hw==", + "version": "7.15.1", + "resolved": "https://registry.npmjs.org/@microsoft/api-extractor-model/-/api-extractor-model-7.15.1.tgz", + "integrity": "sha512-DWfS1o3oMY0mzdO3OuQbD/9vzn80jwM6tFd7XbiYnkpxwhD83LMGXz7NZWwSh+IaA+9w3LF4w62fT31Qq+dAMw==", "dev": true, "requires": { "@microsoft/tsdoc": "0.13.2", "@microsoft/tsdoc-config": "~0.15.2", - "@rushstack/node-core-library": "3.44.1" + "@rushstack/node-core-library": "3.44.2" } }, "@microsoft/tsdoc": { @@ -7379,9 +7986,9 @@ } }, "@rushstack/node-core-library": { - "version": "3.44.1", - "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-3.44.1.tgz", - "integrity": "sha512-qK2BKuRoy6Vh83qjXxilafsUJ1soXzEX0rtkxmAC+GsKOdEVav74Df5859bvY2Ap0JNnYfGfXukX/8o3vqODyw==", + "version": "3.44.2", + "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-3.44.2.tgz", + "integrity": "sha512-lQ8Ct267UKkNSJSDxpBWn7SyyITWQ9l3Xqww0V+YY0rMt02r9eiGvwwPaU1ugJW7IMVo6r/HXvgbmpOSPyzGyg==", "dev": true, "requires": { "@types/node": "12.20.24", @@ -7392,7 +7999,7 @@ "resolve": "~1.17.0", "semver": "~7.3.0", "timsort": "~0.3.0", - "z-schema": "~3.18.3" + "z-schema": "~5.0.2" }, "dependencies": { "@types/node": { @@ -7485,9 +8092,9 @@ "dev": true }, "@tsd/typescript": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/@tsd/typescript/-/typescript-4.5.2.tgz", - "integrity": "sha512-K778wcPuAsJ9Ch0/FlhQcaIMFEi+TfxNi5NSUbgZd3RucaktYUpR++1Ox2mW2G25oyxWb8gfgg+JUhulRbI6eQ==", + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/@tsd/typescript/-/typescript-4.5.3.tgz", + "integrity": "sha512-CEz28wN9pVdFGcqpQF/j0wOwyRIGrRqflVi8pyMxyhQh5WMgg4+95SrAouFU5C8iergr7mA17YHH50keFvlfPw==", "dev": true }, "@types/argparse": { @@ -7512,9 +8119,9 @@ } }, "@types/eslint": { - "version": "7.28.1", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.28.1.tgz", - "integrity": "sha512-XhZKznR3i/W5dXqUhgU9fFdJekufbeBd5DALmkuXoeFcjbQcPk+2cL+WLHf6Q81HWAnM2vrslIHpGVyCAviRwg==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.29.0.tgz", + "integrity": "sha512-VNcvioYDH8/FxaeTKkM4/TiTwt6pBV9E3OfGmvaw8tPl0rrHCJ4Ll15HRT+pMiFAf/MLQvAzC+6RzUMEL9Ceng==", "dev": true, "requires": { "@types/estree": "*", @@ -7533,6 +8140,12 @@ "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", "dev": true }, + "@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", + "dev": true + }, "@types/kerberos": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@types/kerberos/-/kerberos-1.1.1.tgz", @@ -7598,13 +8211,13 @@ } }, "@typescript-eslint/eslint-plugin": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.6.0.tgz", - "integrity": "sha512-MIbeMy5qfLqtgs1hWd088k1hOuRsN9JrHUPwVVKCD99EOUqScd7SrwoZl4Gso05EAP9w1kvLWUVGJOVpRPkDPA==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.7.0.tgz", + "integrity": "sha512-8RTGBpNn5a9M628wBPrCbJ+v3YTEOE2qeZb7TDkGKTDXSj36KGRg92SpFFaR/0S3rSXQxM0Og/kV9EyadsYSBg==", "dev": true, "requires": { - "@typescript-eslint/experimental-utils": "5.6.0", - "@typescript-eslint/scope-manager": "5.6.0", + "@typescript-eslint/experimental-utils": "5.7.0", + "@typescript-eslint/scope-manager": "5.7.0", "debug": "^4.3.2", "functional-red-black-tree": "^1.0.1", "ignore": "^5.1.8", @@ -7614,55 +8227,55 @@ } }, "@typescript-eslint/experimental-utils": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.6.0.tgz", - "integrity": "sha512-VDoRf3Qj7+W3sS/ZBXZh3LBzp0snDLEgvp6qj0vOAIiAPM07bd5ojQ3CTzF/QFl5AKh7Bh1ycgj6lFBJHUt/DA==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.7.0.tgz", + "integrity": "sha512-u57eZ5FbEpzN5kSjmVrSesovWslH2ZyNPnaXQMXWgH57d5+EVHEt76W75vVuI9qKZ5BMDKNfRN+pxcPEjQjb2A==", "dev": true, "requires": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.6.0", - "@typescript-eslint/types": "5.6.0", - "@typescript-eslint/typescript-estree": "5.6.0", + "@typescript-eslint/scope-manager": "5.7.0", + "@typescript-eslint/types": "5.7.0", + "@typescript-eslint/typescript-estree": "5.7.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" } }, "@typescript-eslint/parser": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.6.0.tgz", - "integrity": "sha512-YVK49NgdUPQ8SpCZaOpiq1kLkYRPMv9U5gcMrywzI8brtwZjr/tG3sZpuHyODt76W/A0SufNjYt9ZOgrC4tLIQ==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.7.0.tgz", + "integrity": "sha512-m/gWCCcS4jXw6vkrPQ1BjZ1vomP01PArgzvauBqzsoZ3urLbsRChexB8/YV8z9HwE3qlJM35FxfKZ1nfP/4x8g==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.6.0", - "@typescript-eslint/types": "5.6.0", - "@typescript-eslint/typescript-estree": "5.6.0", + "@typescript-eslint/scope-manager": "5.7.0", + "@typescript-eslint/types": "5.7.0", + "@typescript-eslint/typescript-estree": "5.7.0", "debug": "^4.3.2" } }, "@typescript-eslint/scope-manager": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.6.0.tgz", - "integrity": "sha512-1U1G77Hw2jsGWVsO2w6eVCbOg0HZ5WxL/cozVSTfqnL/eB9muhb8THsP0G3w+BB5xAHv9KptwdfYFAUfzcIh4A==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.7.0.tgz", + "integrity": "sha512-7mxR520DGq5F7sSSgM0HSSMJ+TFUymOeFRMfUfGFAVBv8BR+Jv1vHgAouYUvWRZeszVBJlLcc9fDdktxb5kmxA==", "dev": true, "requires": { - "@typescript-eslint/types": "5.6.0", - "@typescript-eslint/visitor-keys": "5.6.0" + "@typescript-eslint/types": "5.7.0", + "@typescript-eslint/visitor-keys": "5.7.0" } }, "@typescript-eslint/types": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.6.0.tgz", - "integrity": "sha512-OIZffked7mXv4mXzWU5MgAEbCf9ecNJBKi+Si6/I9PpTaj+cf2x58h2oHW5/P/yTnPkKaayfjhLvx+crnl5ubA==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.7.0.tgz", + "integrity": "sha512-5AeYIF5p2kAneIpnLFve8g50VyAjq7udM7ApZZ9JYjdPjkz0LvODfuSHIDUVnIuUoxafoWzpFyU7Sqbxgi79mA==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.6.0.tgz", - "integrity": "sha512-92vK5tQaE81rK7fOmuWMrSQtK1IMonESR+RJR2Tlc7w4o0MeEdjgidY/uO2Gobh7z4Q1hhS94Cr7r021fMVEeA==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.7.0.tgz", + "integrity": "sha512-aO1Ql+izMrTnPj5aFFlEJkpD4jRqC4Gwhygu2oHK2wfVQpmOPbyDSveJ+r/NQo+PWV43M6uEAeLVbTi09dFLhg==", "dev": true, "requires": { - "@typescript-eslint/types": "5.6.0", - "@typescript-eslint/visitor-keys": "5.6.0", + "@typescript-eslint/types": "5.7.0", + "@typescript-eslint/visitor-keys": "5.7.0", "debug": "^4.3.2", "globby": "^11.0.4", "is-glob": "^4.0.3", @@ -7671,12 +8284,12 @@ } }, "@typescript-eslint/visitor-keys": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.6.0.tgz", - "integrity": "sha512-1p7hDp5cpRFUyE3+lvA74egs+RWSgumrBpzBCDzfTFv0aQ7lIeay80yU0hIxgAhwQ6PcasW35kaOCyDOv6O/Ng==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.7.0.tgz", + "integrity": "sha512-hdohahZ4lTFcglZSJ3DGdzxQHBSxsLVqHzkiOmKi7xVAWC4y2c1bIMKmPJSrA4aOEoRUPOKQ87Y/taC7yVHpFg==", "dev": true, "requires": { - "@typescript-eslint/types": "5.6.0", + "@typescript-eslint/types": "5.7.0", "eslint-visitor-keys": "^3.0.0" } }, @@ -7817,12 +8430,36 @@ "integrity": "sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4=", "dev": true }, + "array-includes": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", + "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.7" + } + }, "array-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true }, + "array.prototype.flat": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", + "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0" + } + }, "arrify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", @@ -7884,16 +8521,16 @@ "dev": true }, "browserslist": { - "version": "4.17.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.3.tgz", - "integrity": "sha512-59IqHJV5VGdcJZ+GZ2hU5n4Kv3YiASzW6Xk5g9tf5a/MAzGeFwgGWU39fVzNIOVcgB3+Gp+kiQu0HEfTVU/3VQ==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.18.1.tgz", + "integrity": "sha512-8ScCzdpPwR2wQh8IT82CA2VgDwjHyqMovPBZSNH54+tm4Jk2pCuv90gmAdH6J84OCRWi0b4gMe6O6XPXuJnjgQ==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001264", - "electron-to-chromium": "^1.3.857", + "caniuse-lite": "^1.0.30001280", + "electron-to-chromium": "^1.3.896", "escalade": "^3.1.1", - "node-releases": "^1.1.77", - "picocolors": "^0.2.1" + "node-releases": "^2.0.1", + "picocolors": "^1.0.0" } }, "bson": { @@ -7931,6 +8568,16 @@ "write-file-atomic": "^3.0.0" } }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, "callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -7955,9 +8602,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001265", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001265.tgz", - "integrity": "sha512-YzBnspggWV5hep1m9Z6sZVLOt7vrju8xWooFAgN6BA5qvy98qPAPb7vNUzypFaoh2pb3vlfzbDO8tB57UPGbtw==", + "version": "1.0.30001286", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001286.tgz", + "integrity": "sha512-zaEMRH6xg8ESMi2eQ3R4eZ5qw/hJiVsO/HlLwniIwErij0JDr9P+8V4dtx1l+kLq6j3yy8l8W4fst1lBnat5wQ==", "dev": true }, "chai": { @@ -8010,6 +8657,17 @@ "is-glob": "~4.0.1", "normalize-path": "~3.0.0", "readdirp": "~3.6.0" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } } }, "clean-stack": { @@ -8027,25 +8685,6 @@ "string-width": "^4.2.0", "strip-ansi": "^6.0.0", "wrap-ansi": "^7.0.0" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - } } }, "color-convert": { @@ -8108,19 +8747,6 @@ "inherits": "^2.0.3", "readable-stream": "^3.0.2", "typedarray": "^0.0.6" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } } }, "conventional-changelog": { @@ -8297,9 +8923,9 @@ } }, "conventional-commits-parser": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.2.tgz", - "integrity": "sha512-Jr9KAKgqAkwXMRHjxDwO/zOCDKod1XdAESHAGuJX38iZ7ZzVti/tvVoysO0suMsdAObp9NQ2rHSsSbnAqZ5f5g==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.3.tgz", + "integrity": "sha512-YyRDR7On9H07ICFpRm/igcdjIqebXbvf4Cff+Pf0BrBys1i1EOzx9iFXNlAbdrLAR8jf7bkUYkDAr8pEy0q4Pw==", "dev": true, "requires": { "is-text-path": "^1.0.1", @@ -8371,9 +8997,9 @@ "dev": true }, "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", "dev": true, "requires": { "ms": "2.1.2" @@ -8427,6 +9053,15 @@ "strip-bom": "^4.0.0" } }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, "denque": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/denque/-/denque-2.0.1.tgz", @@ -8524,10 +9159,10 @@ "p-limit": "^2.0.0" } }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true } } @@ -8544,9 +9179,9 @@ } }, "electron-to-chromium": { - "version": "1.3.866", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.866.tgz", - "integrity": "sha512-iYze6TpDXWxk+sfcpUUdTs6Pv/3kG45Pnjer2DxEeFw0N08bZeNLuz97s2lMgy8yObon48o0WHY2Bkg3xuAPOA==", + "version": "1.4.17", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.17.tgz", + "integrity": "sha512-zhk1MravPtq/KBhmGB7TLBILmXTgRG9TFSI3qS3DbgyfHzIl72iiTE37r/BHIbPCJJlWIo5rySyxiH4vWhu2ZA==", "dev": true }, "emoji-regex": { @@ -8573,6 +9208,45 @@ "is-arrayish": "^0.2.1" } }, + "es-abstract": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", + "is-string": "^1.0.7", + "is-weakref": "^1.0.1", + "object-inspect": "^1.11.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, "es6-error": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", @@ -8653,15 +9327,6 @@ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true }, - "glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "requires": { - "is-glob": "^4.0.3" - } - }, "ignore": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", @@ -8691,23 +9356,114 @@ "plur": "^4.0.0", "string-width": "^4.2.0", "supports-hyperlinks": "^2.0.0" + } + }, + "eslint-import-resolver-node": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "dev": true, + "requires": { + "debug": "^3.2.7", + "resolve": "^1.20.0" }, "dependencies": { - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "dev": true, + "requires": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + } + } + } + }, + "eslint-module-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.1.tgz", + "integrity": "sha512-fjoetBXQZq2tSTWZ9yWVl2KuFrTZZH3V+9iD1V1RfpDgxzJR+mPd/KZmMiA8gbPqdBzpNiEHOuT7IYEWxrH0zQ==", + "dev": true, + "requires": { + "debug": "^3.2.7", + "find-up": "^2.1.0", + "pkg-dir": "^2.0.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-plugin-import": { + "version": "2.25.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.3.tgz", + "integrity": "sha512-RzAVbby+72IB3iOEL8clzPLzL3wpDrlwjsTBAQXgyp5SeTqqY+0bFubwuo+y/HLhNZcXV4XqTBO4LGsfyHIDXg==", + "dev": true, + "requires": { + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.1", + "has": "^1.0.3", + "is-core-module": "^2.8.0", + "is-glob": "^4.0.3", + "minimatch": "^3.0.4", + "object.values": "^1.1.5", + "resolve": "^1.20.0", + "tsconfig-paths": "^3.11.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", "dev": true, "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" } } } @@ -8721,6 +9477,13 @@ "prettier-linter-helpers": "^1.0.0" } }, + "eslint-plugin-simple-import-sort": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-7.0.0.tgz", + "integrity": "sha512-U3vEDB5zhYPNfxT5TYR7u01dboFZp+HNpnGhkDB2g/2E4wZ/g1Q9Ton8UwCLfRV9yAKyYqDh62oHOamvkFxsvw==", + "dev": true, + "requires": {} + }, "eslint-plugin-tsdoc": { "version": "0.2.14", "resolved": "https://registry.npmjs.org/eslint-plugin-tsdoc/-/eslint-plugin-tsdoc-0.2.14.tgz", @@ -8797,9 +9560,9 @@ }, "dependencies": { "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true } } @@ -8856,6 +9619,17 @@ "glob-parent": "^5.1.2", "merge2": "^1.3.0", "micromatch": "^4.0.4" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } } }, "fast-json-stable-stringify": { @@ -8923,16 +9697,75 @@ "commondir": "^1.0.1", "make-dir": "^3.0.2", "pkg-dir": "^4.1.0" + }, + "dependencies": { + "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, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "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, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "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, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "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 + }, + "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, + "requires": { + "find-up": "^4.0.0" + } + } } }, "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" + "locate-path": "^2.0.0" } }, "flat": { @@ -8952,9 +9785,9 @@ } }, "flatted": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz", - "integrity": "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==", + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz", + "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==", "dev": true }, "foreground-child": { @@ -9036,6 +9869,17 @@ "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", "dev": true }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, "get-package-type": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", @@ -9054,21 +9898,34 @@ "yargs": "^16.2.0" }, "dependencies": { - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "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" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "safe-buffer": "~5.1.0" } }, "through2": { @@ -9098,6 +9955,16 @@ } } }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, "git-raw-commits": { "version": "2.0.10", "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.10.tgz", @@ -9163,12 +10030,12 @@ } }, "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, "requires": { - "is-glob": "^4.0.1" + "is-glob": "^4.0.3" } }, "globals": { @@ -9234,12 +10101,33 @@ "function-bind": "^1.1.1" } }, + "has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "dev": true + }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "dev": true + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, "hasha": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", @@ -9285,9 +10173,9 @@ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" }, "ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.9.tgz", + "integrity": "sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ==", "dev": true }, "import-fresh": { @@ -9340,6 +10228,17 @@ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", "dev": true }, + "internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, "interpret": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", @@ -9358,6 +10257,15 @@ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "requires": { + "has-bigints": "^1.0.1" + } + }, "is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -9367,21 +10275,52 @@ "binary-extensions": "^2.0.0" } }, + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true + }, "is-core-module": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.7.0.tgz", - "integrity": "sha512-ByY+tjCciCr+9nLryBYcSD50EOGWt95c7tIsKTG1J2ixKKXPvF7Ej3AVd+UfDydAJom3biBGDBALaO79ktwgEQ==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", + "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", "dev": true, "requires": { "has": "^1.0.3" } }, + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", "dev": true }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, "is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", @@ -9391,12 +10330,27 @@ "is-extglob": "^2.1.1" } }, + "is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true + }, "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, + "is-number-object": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", + "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, "is-obj": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", @@ -9409,12 +10363,46 @@ "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", "dev": true }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-shared-array-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", + "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", + "dev": true + }, "is-stream": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, "is-text-path": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", @@ -9436,6 +10424,15 @@ "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "dev": true }, + "is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, "is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", @@ -9455,9 +10452,9 @@ "dev": true }, "istanbul-lib-coverage": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.2.tgz", - "integrity": "sha512-o5+eTUYzCJ11/+JhW5/FUCdfsdoYVdQ/8I/OveE2XsjehYn5DdeSnNQAbjYaO8gQ6hvGTN6GM6ddQqpTVG5j8g==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", "dev": true }, "istanbul-lib-hook": { @@ -9527,9 +10524,9 @@ } }, "istanbul-reports": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.4.tgz", - "integrity": "sha512-bFjUnc95rHjdCR63WMHUS7yfJJh8T9IPSWavvR02hhjVwezWALZ5axF9EqjmwZHpXqkzbgAMP8DmAtiyNxrdrQ==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.1.tgz", + "integrity": "sha512-q1kvhAXWSsXfMjCdNHNPKZZv94OlspKnoGv+R9RGbnqOOQ0VbNfLFgQDVgi7hHenKsndGq3/o0OBdzDXthWcNw==", "dev": true, "requires": { "html-escaper": "^2.0.0", @@ -9658,9 +10655,9 @@ } }, "lines-and-columns": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true }, "load-json-file": { @@ -9690,12 +10687,13 @@ } }, "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, "requires": { - "p-locate": "^5.0.0" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" } }, "lodash": { @@ -9856,6 +10854,12 @@ "p-limit": "^2.2.0" } }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, "parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", @@ -9868,6 +10872,12 @@ "lines-and-columns": "^1.1.6" } }, + "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 + }, "read-pkg": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", @@ -10013,11 +11023,41 @@ "yargs-unparser": "2.0.0" }, "dependencies": { - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "requires": { + "ms": "2.1.2" + }, + "dependencies": { + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } }, "ms": { "version": "2.1.3", @@ -10025,17 +11065,30 @@ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "p-limit": "^3.0.2" } }, + "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 + }, "supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", @@ -10131,9 +11184,9 @@ } }, "node-releases": { - "version": "1.1.77", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz", - "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", + "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", "dev": true }, "normalize-package-data": { @@ -10216,12 +11269,6 @@ "path-exists": "^4.0.0" } }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, "locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", @@ -10249,23 +11296,24 @@ "p-limit": "^2.2.0" } }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "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 + }, "resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, "wrap-ansi": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", @@ -10314,6 +11362,41 @@ } } }, + "object-inspect": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.1.tgz", + "integrity": "sha512-If7BjFlpkzzBeV1cqgT3OSWT3azyoxDGajR+iGnFBfVV2EWyDyWaZZW2ERDjUaY2QM8i5jI3Sj7mhsM4DDAqWA==", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "object.values": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + } + }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -10338,21 +11421,21 @@ } }, "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "dev": true, "requires": { - "yocto-queue": "^0.1.0" + "p-try": "^1.0.0" } }, "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { - "p-limit": "^3.0.2" + "p-limit": "^1.1.0" } }, "p-map": { @@ -10365,9 +11448,9 @@ } }, "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", "dev": true }, "package-hash": { @@ -10402,9 +11485,9 @@ } }, "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==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "dev": true }, "path-is-absolute": { @@ -10447,9 +11530,9 @@ "dev": true }, "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", "dev": true }, "picomatch": { @@ -10465,51 +11548,12 @@ "dev": true }, "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==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", "dev": true, "requires": { - "find-up": "^4.0.0" - }, - "dependencies": { - "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, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "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, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "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, - "requires": { - "p-limit": "^2.2.0" - } - } + "find-up": "^2.1.0" } }, "plur": { @@ -10655,80 +11699,17 @@ "requires": { "find-up": "^2.0.0", "read-pkg": "^3.0.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - } } }, "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dev": true, "requires": { - "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" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - } + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" } }, "readdirp": { @@ -10896,10 +11877,21 @@ "rechoir": "^0.6.2" } }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, "signal-exit": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.5.tgz", - "integrity": "sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", + "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==", "dev": true }, "sinon": { @@ -11006,9 +11998,9 @@ } }, "spdx-license-ids": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz", - "integrity": "sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", + "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", "dev": true }, "split": { @@ -11027,19 +12019,6 @@ "dev": true, "requires": { "readable-stream": "^3.0.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } } }, "sprintf-js": { @@ -11112,29 +12091,55 @@ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "p-limit": "^3.0.2" } }, + "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 + }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -11162,12 +12167,20 @@ } }, "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "dev": true, "requires": { - "safe-buffer": "~5.1.0" + "safe-buffer": "~5.2.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } } }, "string-argv": { @@ -11176,6 +12189,37 @@ "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==", "dev": true }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, "stringify-package": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/stringify-package/-/stringify-package-1.0.1.tgz", @@ -11267,19 +12311,6 @@ "dev": true, "requires": { "readable-stream": "3" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } } }, "timsort": { @@ -11345,6 +12376,35 @@ } } }, + "tsconfig-paths": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz", + "integrity": "sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg==", + "dev": true, + "requires": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.0", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + } + } + }, "tsd": { "version": "0.19.0", "resolved": "https://registry.npmjs.org/tsd/-/tsd-0.19.0.tgz", @@ -11422,6 +12482,12 @@ "p-limit": "^2.2.0" } }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, "parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", @@ -11434,6 +12500,12 @@ "lines-and-columns": "^1.1.6" } }, + "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 + }, "read-pkg": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", @@ -11551,9 +12623,9 @@ } }, "typescript": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.2.tgz", - "integrity": "sha512-5BlMof9H1yGt0P8/WF+wPNw6GfctgGjXp5hkblpyT+8rkASSmkUKMXrxR0Xg8ThVCi/JnHQiKXeBaEwCeQwMFw==", + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.4.tgz", + "integrity": "sha512-VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg==", "dev": true }, "typescript-cached-transpile": { @@ -11568,9 +12640,9 @@ }, "dependencies": { "@types/node": { - "version": "12.20.29", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.29.tgz", - "integrity": "sha512-dU2ypz+gO5va1OBvs0iT3BNHG5SgTqRvq8r+kU3e/LAseKapUJ8zTUE9Ve9fTpi27tN/7ahOAhCJwQWsffvsyw==", + "version": "12.20.37", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.37.tgz", + "integrity": "sha512-i1KGxqcvJaLQali+WuypQnXwcplhtNtjs66eNsZpp2P2FL/trJJxx/VWsM0YCL2iMoIJrbXje48lvIQAQ4p2ZA==", "dev": true }, "fs-extra": { @@ -11587,12 +12659,24 @@ } }, "uglify-js": { - "version": "3.14.2", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.2.tgz", - "integrity": "sha512-rtPMlmcO4agTUfz10CbgJ1k6UAoXM2gWb3GoMPPZB/+/Ackf8lNWk11K4rYi2D0apgoFRLtQOZhb+/iGNJq26A==", + "version": "3.14.5", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.5.tgz", + "integrity": "sha512-qZukoSxOG0urUTvjc2ERMTcAy+BiFh3weWAkeurLwjrCba73poHmG3E36XEjd/JGukMzwTL7uCxZiAexj8ppvQ==", "dev": true, "optional": true }, + "unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + } + }, "universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", @@ -11637,9 +12721,9 @@ } }, "validator": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/validator/-/validator-8.2.0.tgz", - "integrity": "sha512-Yw5wW34fSv5spzTXNkokD6S6/Oq92d8q/t14TqsS3fAiA1RYnxSFSIZ+CY3n6PGGRCq5HhJTSepQvFUS2QUDxA==", + "version": "13.7.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.7.0.tgz", + "integrity": "sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw==", "dev": true }, "webidl-conversions": { @@ -11665,6 +12749,19 @@ "isexe": "^2.0.0" } }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, "which-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", @@ -11698,25 +12795,6 @@ "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - } } }, "wrappy": { @@ -11786,23 +12864,6 @@ "yargs-parser": "^21.0.0" }, "dependencies": { - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, "yargs-parser": { "version": "21.0.0", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.0.tgz", @@ -11830,9 +12891,9 @@ }, "dependencies": { "camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz", + "integrity": "sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==", "dev": true }, "decamelize": { @@ -11862,15 +12923,15 @@ "dev": true }, "z-schema": { - "version": "3.18.4", - "resolved": "https://registry.npmjs.org/z-schema/-/z-schema-3.18.4.tgz", - "integrity": "sha512-DUOKC/IhbkdLKKiV89gw9DUauTV8U/8yJl1sjf6MtDmzevLKOF2duNJ495S3MFVjqZarr+qNGCPbkg4mu4PpLw==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/z-schema/-/z-schema-5.0.2.tgz", + "integrity": "sha512-40TH47ukMHq5HrzkeVE40Ad7eIDKaRV2b+Qpi2prLc9X9eFJFzV7tMe5aH12e6avaSS/u5l653EQOv+J9PirPw==", "dev": true, "requires": { "commander": "^2.7.1", - "lodash.get": "^4.0.0", - "lodash.isequal": "^4.0.0", - "validator": "^8.0.0" + "lodash.get": "^4.4.2", + "lodash.isequal": "^4.5.0", + "validator": "^13.7.0" } } } diff --git a/package.json b/package.json index f0fe035c8e..f277d3f745 100644 --- a/package.json +++ b/package.json @@ -58,7 +58,9 @@ "downlevel-dts": "^0.7.0", "eslint": "^8.4.1", "eslint-config-prettier": "^8.3.0", + "eslint-plugin-import": "^2.25.3", "eslint-plugin-prettier": "^4.0.0", + "eslint-plugin-simple-import-sort": "^7.0.0", "eslint-plugin-tsdoc": "^0.2.14", "js-yaml": "^4.1.0", "lodash.camelcase": "^4.3.0", diff --git a/src/admin.ts b/src/admin.ts index 30093cca4e..b6576dbccc 100644 --- a/src/admin.ts +++ b/src/admin.ts @@ -1,20 +1,20 @@ +import type { Document } from './bson'; +import type { Db } from './db'; import { AddUserOperation, AddUserOptions } from './operations/add_user'; -import { RemoveUserOperation, RemoveUserOptions } from './operations/remove_user'; -import { - ValidateCollectionOperation, - ValidateCollectionOptions -} from './operations/validate_collection'; +import type { CommandOperationOptions } from './operations/command'; +import { executeOperation } from './operations/execute_operation'; import { ListDatabasesOperation, ListDatabasesOptions, ListDatabasesResult } from './operations/list_databases'; -import { executeOperation } from './operations/execute_operation'; +import { RemoveUserOperation, RemoveUserOptions } from './operations/remove_user'; import { RunCommandOperation, RunCommandOptions } from './operations/run_command'; +import { + ValidateCollectionOperation, + ValidateCollectionOptions +} from './operations/validate_collection'; import { Callback, getTopology } from './utils'; -import type { Document } from './bson'; -import type { CommandOperationOptions } from './operations/command'; -import type { Db } from './db'; /** @internal */ export interface AdminPrivate { diff --git a/src/bson.ts b/src/bson.ts index d516ffb303..42d9ab08d5 100644 --- a/src/bson.ts +++ b/src/bson.ts @@ -1,11 +1,14 @@ import type { - serialize as serializeFn, + calculateObjectSize as calculateObjectSizeFn, deserialize as deserializeFn, - calculateObjectSize as calculateObjectSizeFn + DeserializeOptions, + serialize as serializeFn, + SerializeOptions } from 'bson'; // eslint-disable-next-line @typescript-eslint/no-var-requires let BSON = require('bson'); + try { // Ensure you always wrap an optional require in the try block NODE-3199 BSON = require('bson-ext'); @@ -19,25 +22,23 @@ export const serialize = BSON.serialize as typeof serializeFn; export const calculateObjectSize = BSON.calculateObjectSize as typeof calculateObjectSizeFn; export { - Long, Binary, - ObjectId, - Timestamp, + BSONRegExp, + BSONSymbol, Code, - MinKey, - MaxKey, + DBRef, Decimal128, - Int32, + Document, Double, - DBRef, - BSONRegExp, - BSONSymbol, + Int32, + Long, Map, - Document + MaxKey, + MinKey, + ObjectId, + Timestamp } from 'bson'; -import type { DeserializeOptions, SerializeOptions } from 'bson'; - /** * BSON Serialization options. * @public diff --git a/src/bulk/common.ts b/src/bulk/common.ts index a1dd1c700b..487fef3a8c 100644 --- a/src/bulk/common.ts +++ b/src/bulk/common.ts @@ -1,39 +1,39 @@ -import { PromiseProvider } from '../promise_provider'; import { + BSONSerializeOptions, + Document, Long, ObjectId, - Document, - BSONSerializeOptions, resolveBSONOptions, Timestamp } from '../bson'; +import type { Collection } from '../collection'; import { - MongoWriteConcernError, AnyError, + MongoBatchReExecutionError, MONGODB_ERROR_CODES, - MongoServerError, MongoInvalidArgumentError, - MongoBatchReExecutionError + MongoServerError, + MongoWriteConcernError } from '../error'; +import type { Filter, OneOrMore, OptionalId, UpdateFilter, WithoutId } from '../mongo_types'; +import type { CollationOptions, CommandOperationOptions } from '../operations/command'; +import { DeleteOperation, DeleteStatement, makeDeleteStatement } from '../operations/delete'; +import { executeOperation } from '../operations/execute_operation'; +import { InsertOperation } from '../operations/insert'; +import type { Hint } from '../operations/operation'; +import { makeUpdateStatement, UpdateOperation, UpdateStatement } from '../operations/update'; +import { PromiseProvider } from '../promise_provider'; +import type { Topology } from '../sdam/topology'; import { applyRetryableWrites, + Callback, executeLegacyOperation, + getTopology, hasAtomicOperators, - Callback, MongoDBNamespace, - getTopology, resolveOptions } from '../utils'; -import { executeOperation } from '../operations/execute_operation'; -import { InsertOperation } from '../operations/insert'; -import { UpdateOperation, UpdateStatement, makeUpdateStatement } from '../operations/update'; -import { DeleteOperation, DeleteStatement, makeDeleteStatement } from '../operations/delete'; import { WriteConcern } from '../write_concern'; -import type { Collection } from '../collection'; -import type { Topology } from '../sdam/topology'; -import type { CommandOperationOptions, CollationOptions } from '../operations/command'; -import type { Hint } from '../operations/operation'; -import type { Filter, OneOrMore, WithoutId, OptionalId, UpdateFilter } from '../mongo_types'; /** @internal */ const kServerError = Symbol('serverError'); diff --git a/src/bulk/ordered.ts b/src/bulk/ordered.ts index ce99650c28..e0dbf9b7e3 100644 --- a/src/bulk/ordered.ts +++ b/src/bulk/ordered.ts @@ -1,10 +1,10 @@ -import * as BSON from '../bson'; -import { BulkOperationBase, Batch, BatchType, BulkWriteOptions } from './common'; import type { Document } from '../bson'; +import * as BSON from '../bson'; import type { Collection } from '../collection'; -import type { UpdateStatement } from '../operations/update'; -import type { DeleteStatement } from '../operations/delete'; import { MongoInvalidArgumentError } from '../error'; +import type { DeleteStatement } from '../operations/delete'; +import type { UpdateStatement } from '../operations/update'; +import { Batch, BatchType, BulkOperationBase, BulkWriteOptions } from './common'; /** @public */ export class OrderedBulkOperation extends BulkOperationBase { diff --git a/src/bulk/unordered.ts b/src/bulk/unordered.ts index e241e50be6..2450446c3f 100644 --- a/src/bulk/unordered.ts +++ b/src/bulk/unordered.ts @@ -1,11 +1,11 @@ -import * as BSON from '../bson'; -import { BulkOperationBase, Batch, BatchType, BulkWriteOptions, BulkWriteResult } from './common'; -import type { Callback } from '../utils'; import type { Document } from '../bson'; +import * as BSON from '../bson'; import type { Collection } from '../collection'; -import type { UpdateStatement } from '../operations/update'; -import type { DeleteStatement } from '../operations/delete'; import { MongoInvalidArgumentError } from '../error'; +import type { DeleteStatement } from '../operations/delete'; +import type { UpdateStatement } from '../operations/update'; +import type { Callback } from '../utils'; +import { Batch, BatchType, BulkOperationBase, BulkWriteOptions, BulkWriteResult } from './common'; /** @public */ export class UnorderedBulkOperation extends BulkOperationBase { diff --git a/src/change_stream.ts b/src/change_stream.ts index c1d885f65c..28fc24c536 100644 --- a/src/change_stream.ts +++ b/src/change_stream.ts @@ -1,39 +1,40 @@ import Denque = require('denque'); +import type { Readable } from 'stream'; + +import type { Document, Timestamp } from './bson'; +import { Collection } from './collection'; +import { + AbstractCursor, + AbstractCursorEvents, + AbstractCursorOptions, + CursorStreamOptions +} from './cursor/abstract_cursor'; +import { Db } from './db'; import { - MongoError, AnyError, isResumableError, - MongoRuntimeError, MongoAPIError, - MongoChangeStreamError + MongoChangeStreamError, + MongoError, + MongoRuntimeError } from './error'; +import { MongoClient } from './mongo_client'; +import { InferIdType, Nullable, TypedEventEmitter } from './mongo_types'; import { AggregateOperation, AggregateOptions } from './operations/aggregate'; +import type { CollationOptions, OperationParent } from './operations/command'; +import { executeOperation, ExecutionResult } from './operations/execute_operation'; +import type { ReadPreference } from './read_preference'; +import type { Topology } from './sdam/topology'; +import type { ClientSession } from './sessions'; import { - maxWireVersion, calculateDurationInMs, - now, + Callback, + getTopology, + maxWireVersion, maybePromise, MongoDBNamespace, - Callback, - getTopology + now } from './utils'; -import type { ReadPreference } from './read_preference'; -import type { Timestamp, Document } from './bson'; -import type { Topology } from './sdam/topology'; -import type { OperationParent, CollationOptions } from './operations/command'; -import { MongoClient } from './mongo_client'; -import { Db } from './db'; -import { Collection } from './collection'; -import type { Readable } from 'stream'; -import { - AbstractCursor, - AbstractCursorEvents, - AbstractCursorOptions, - CursorStreamOptions -} from './cursor/abstract_cursor'; -import type { ClientSession } from './sessions'; -import { executeOperation, ExecutionResult } from './operations/execute_operation'; -import { InferIdType, Nullable, TypedEventEmitter } from './mongo_types'; /** @internal */ const kResumeQueue = Symbol('resumeQueue'); diff --git a/src/cmap/auth/auth_provider.ts b/src/cmap/auth/auth_provider.ts index 306ebd1ac4..2a38abe9b4 100644 --- a/src/cmap/auth/auth_provider.ts +++ b/src/cmap/auth/auth_provider.ts @@ -1,9 +1,9 @@ import type { Document } from '../../bson'; +import { MongoRuntimeError } from '../../error'; +import type { Callback, ClientMetadataOptions } from '../../utils'; +import type { HandshakeDocument } from '../connect'; import type { Connection, ConnectionOptions } from '../connection'; import type { MongoCredentials } from './mongo_credentials'; -import type { HandshakeDocument } from '../connect'; -import type { ClientMetadataOptions, Callback } from '../../utils'; -import { MongoRuntimeError } from '../../error'; export type AuthContextOptions = ConnectionOptions & ClientMetadataOptions; diff --git a/src/cmap/auth/defaultAuthProviders.ts b/src/cmap/auth/defaultAuthProviders.ts deleted file mode 100644 index df937d4a0c..0000000000 --- a/src/cmap/auth/defaultAuthProviders.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { MongoCR } from './mongocr'; -import { X509 } from './x509'; -import { Plain } from './plain'; -import { GSSAPI } from './gssapi'; -import { ScramSHA1, ScramSHA256 } from './scram'; -import { MongoDBAWS } from './mongodb_aws'; -import type { AuthProvider } from './auth_provider'; - -/** @public */ -export const AuthMechanism = Object.freeze({ - MONGODB_AWS: 'MONGODB-AWS', - MONGODB_CR: 'MONGODB-CR', - MONGODB_DEFAULT: 'DEFAULT', - MONGODB_GSSAPI: 'GSSAPI', - MONGODB_PLAIN: 'PLAIN', - MONGODB_SCRAM_SHA1: 'SCRAM-SHA-1', - MONGODB_SCRAM_SHA256: 'SCRAM-SHA-256', - MONGODB_X509: 'MONGODB-X509' -} as const); - -/** @public */ -export type AuthMechanism = typeof AuthMechanism[keyof typeof AuthMechanism]; - -export const AUTH_PROVIDERS = new Map([ - [AuthMechanism.MONGODB_AWS, new MongoDBAWS()], - [AuthMechanism.MONGODB_CR, new MongoCR()], - [AuthMechanism.MONGODB_GSSAPI, new GSSAPI()], - [AuthMechanism.MONGODB_PLAIN, new Plain()], - [AuthMechanism.MONGODB_SCRAM_SHA1, new ScramSHA1()], - [AuthMechanism.MONGODB_SCRAM_SHA256, new ScramSHA256()], - [AuthMechanism.MONGODB_X509, new X509()] -]); diff --git a/src/cmap/auth/gssapi.ts b/src/cmap/auth/gssapi.ts index e12d96039f..af0a03c28f 100644 --- a/src/cmap/auth/gssapi.ts +++ b/src/cmap/auth/gssapi.ts @@ -1,14 +1,16 @@ -import { AuthProvider, AuthContext } from './auth_provider'; +import * as dns from 'dns'; + +import type { Document } from '../../bson'; +import { Kerberos, KerberosClient } from '../../deps'; import { - MongoRuntimeError, + MongoError, MongoInvalidArgumentError, MongoMissingCredentialsError, - MongoError, - MongoMissingDependencyError + MongoMissingDependencyError, + MongoRuntimeError } from '../../error'; -import { Kerberos, KerberosClient } from '../../deps'; import { Callback, ns } from '../../utils'; -import type { Document } from '../../bson'; +import { AuthContext, AuthProvider } from './auth_provider'; type MechanismProperties = { gssapiCanonicalizeHostName?: boolean; @@ -16,8 +18,6 @@ type MechanismProperties = { SERVICE_REALM?: string; }; -import * as dns from 'dns'; - export class GSSAPI extends AuthProvider { auth(authContext: AuthContext, callback: Callback): void { const { connection, credentials } = authContext; diff --git a/src/cmap/auth/mongo_credentials.ts b/src/cmap/auth/mongo_credentials.ts index cbc4007ac8..b11f6fa4b5 100644 --- a/src/cmap/auth/mongo_credentials.ts +++ b/src/cmap/auth/mongo_credentials.ts @@ -2,7 +2,7 @@ import type { Document } from '../../bson'; import { MongoAPIError, MongoMissingCredentialsError } from '../../error'; -import { AuthMechanism } from './defaultAuthProviders'; +import { AuthMechanism } from './providers'; // https://github.com/mongodb/specifications/blob/master/source/auth/auth.rst function getDefaultAuthMechanism(ismaster?: Document): AuthMechanism { diff --git a/src/cmap/auth/mongocr.ts b/src/cmap/auth/mongocr.ts index fa801caf48..068193aa0a 100644 --- a/src/cmap/auth/mongocr.ts +++ b/src/cmap/auth/mongocr.ts @@ -1,7 +1,8 @@ import * as crypto from 'crypto'; -import { AuthProvider, AuthContext } from './auth_provider'; -import { Callback, ns } from '../../utils'; + import { MongoMissingCredentialsError } from '../../error'; +import { Callback, ns } from '../../utils'; +import { AuthContext, AuthProvider } from './auth_provider'; export class MongoCR extends AuthProvider { auth(authContext: AuthContext, callback: Callback): void { diff --git a/src/cmap/auth/mongodb_aws.ts b/src/cmap/auth/mongodb_aws.ts index a6cb48ab9e..0f274f1c22 100644 --- a/src/cmap/auth/mongodb_aws.ts +++ b/src/cmap/auth/mongodb_aws.ts @@ -1,20 +1,19 @@ -import * as http from 'http'; import * as crypto from 'crypto'; +import * as http from 'http'; import * as url from 'url'; + +import type { Binary, BSONSerializeOptions } from '../../bson'; import * as BSON from '../../bson'; -import { AuthProvider, AuthContext } from './auth_provider'; -import { MongoCredentials } from './mongo_credentials'; +import { aws4 } from '../../deps'; import { - MongoRuntimeError, + MongoCompatibilityError, MongoMissingCredentialsError, - MongoCompatibilityError + MongoRuntimeError } from '../../error'; -import { maxWireVersion, Callback, ns } from '../../utils'; -import type { BSONSerializeOptions } from '../../bson'; - -import { aws4 } from '../../deps'; -import { AuthMechanism } from './defaultAuthProviders'; -import type { Binary } from 'bson'; +import { Callback, maxWireVersion, ns } from '../../utils'; +import { AuthContext, AuthProvider } from './auth_provider'; +import { MongoCredentials } from './mongo_credentials'; +import { AuthMechanism } from './providers'; const ASCII_N = 110; const AWS_RELATIVE_URI = 'http://169.254.170.2'; diff --git a/src/cmap/auth/plain.ts b/src/cmap/auth/plain.ts index afbca63d20..c069550e40 100644 --- a/src/cmap/auth/plain.ts +++ b/src/cmap/auth/plain.ts @@ -1,7 +1,7 @@ import { Binary } from '../../bson'; -import { AuthProvider, AuthContext } from './auth_provider'; import { MongoMissingCredentialsError } from '../../error'; import { Callback, ns } from '../../utils'; +import { AuthContext, AuthProvider } from './auth_provider'; export class Plain extends AuthProvider { auth(authContext: AuthContext, callback: Callback): void { diff --git a/src/cmap/auth/providers.ts b/src/cmap/auth/providers.ts new file mode 100644 index 0000000000..07436baff7 --- /dev/null +++ b/src/cmap/auth/providers.ts @@ -0,0 +1,14 @@ +/** @public */ +export const AuthMechanism = Object.freeze({ + MONGODB_AWS: 'MONGODB-AWS', + MONGODB_CR: 'MONGODB-CR', + MONGODB_DEFAULT: 'DEFAULT', + MONGODB_GSSAPI: 'GSSAPI', + MONGODB_PLAIN: 'PLAIN', + MONGODB_SCRAM_SHA1: 'SCRAM-SHA-1', + MONGODB_SCRAM_SHA256: 'SCRAM-SHA-256', + MONGODB_X509: 'MONGODB-X509' +} as const); + +/** @public */ +export type AuthMechanism = typeof AuthMechanism[keyof typeof AuthMechanism]; diff --git a/src/cmap/auth/scram.ts b/src/cmap/auth/scram.ts index 7c58eac7d9..e798434df6 100644 --- a/src/cmap/auth/scram.ts +++ b/src/cmap/auth/scram.ts @@ -1,19 +1,19 @@ import * as crypto from 'crypto'; + import { Binary, Document } from '../../bson'; +import { saslprep } from '../../deps'; import { AnyError, - MongoRuntimeError, - MongoServerError, MongoInvalidArgumentError, - MongoMissingCredentialsError + MongoMissingCredentialsError, + MongoRuntimeError, + MongoServerError } from '../../error'; -import { AuthProvider, AuthContext } from './auth_provider'; -import { Callback, ns, emitWarning } from '../../utils'; -import type { MongoCredentials } from './mongo_credentials'; +import { Callback, emitWarning, ns } from '../../utils'; import type { HandshakeDocument } from '../connect'; - -import { saslprep } from '../../deps'; -import { AuthMechanism } from './defaultAuthProviders'; +import { AuthContext, AuthProvider } from './auth_provider'; +import type { MongoCredentials } from './mongo_credentials'; +import { AuthMechanism } from './providers'; type CryptoMethod = 'sha1' | 'sha256'; diff --git a/src/cmap/auth/x509.ts b/src/cmap/auth/x509.ts index 73f7688035..852081d3a4 100644 --- a/src/cmap/auth/x509.ts +++ b/src/cmap/auth/x509.ts @@ -1,9 +1,9 @@ -import { AuthProvider, AuthContext } from './auth_provider'; -import { MongoMissingCredentialsError } from '../../error'; import type { Document } from '../../bson'; +import { MongoMissingCredentialsError } from '../../error'; import { Callback, ns } from '../../utils'; -import type { MongoCredentials } from './mongo_credentials'; import type { HandshakeDocument } from '../connect'; +import { AuthContext, AuthProvider } from './auth_provider'; +import type { MongoCredentials } from './mongo_credentials'; export class X509 extends AuthProvider { prepare(handshakeDoc: HandshakeDocument, authContext: AuthContext, callback: Callback): void { diff --git a/src/cmap/command_monitoring_events.ts b/src/cmap/command_monitoring_events.ts index 5be637240c..e3fd504d58 100644 --- a/src/cmap/command_monitoring_events.ts +++ b/src/cmap/command_monitoring_events.ts @@ -1,7 +1,7 @@ -import { GetMore, KillCursor, Msg, WriteProtocolMessageType } from './commands'; +import type { Document, ObjectId } from '../bson'; import { calculateDurationInMs, deepCopy } from '../utils'; +import { GetMore, KillCursor, Msg, WriteProtocolMessageType } from './commands'; import type { Connection } from './connection'; -import type { Document, ObjectId } from '../bson'; /** * An event indicating the start of a given diff --git a/src/cmap/commands.ts b/src/cmap/commands.ts index 29791ebccf..7234127238 100644 --- a/src/cmap/commands.ts +++ b/src/cmap/commands.ts @@ -1,11 +1,11 @@ -import { ReadPreference } from '../read_preference'; +import type { BSONSerializeOptions, Document, Long } from '../bson'; import * as BSON from '../bson'; -import { databaseNamespace } from '../utils'; -import { OP_QUERY, OP_GETMORE, OP_KILL_CURSORS, OP_MSG } from './wire_protocol/constants'; -import type { Long, Document, BSONSerializeOptions } from '../bson'; +import { MongoInvalidArgumentError, MongoRuntimeError } from '../error'; +import { ReadPreference } from '../read_preference'; import type { ClientSession } from '../sessions'; +import { databaseNamespace } from '../utils'; import type { CommandOptions } from './connection'; -import { MongoRuntimeError, MongoInvalidArgumentError } from '../error'; +import { OP_GETMORE, OP_KILL_CURSORS, OP_MSG, OP_QUERY } from './wire_protocol/constants'; // Incrementing request id let _requestId = 0; diff --git a/src/cmap/connect.ts b/src/cmap/connect.ts index 07917c80e6..ba2f2c7f41 100644 --- a/src/cmap/connect.ts +++ b/src/cmap/connect.ts @@ -1,29 +1,45 @@ +import type { Socket, SocketConnectOpts } from 'net'; import * as net from 'net'; +import type { ConnectionOptions as TLSConnectionOpts, TLSSocket } from 'tls'; import * as tls from 'tls'; -import { Connection, ConnectionOptions, CryptoConnection } from './connection'; + +import type { Document } from '../bson'; +import { Int32 } from '../bson'; import { - MongoNetworkError, - MongoNetworkTimeoutError, AnyError, MongoCompatibilityError, MongoInvalidArgumentError, - MongoServerError, - MongoRuntimeError + MongoNetworkError, + MongoNetworkTimeoutError, + MongoRuntimeError, + MongoServerError } from '../error'; -import { AUTH_PROVIDERS, AuthMechanism } from './auth/defaultAuthProviders'; -import { AuthContext } from './auth/auth_provider'; -import { makeClientMetadata, ClientMetadata, Callback, CallbackWithType, ns } from '../utils'; +import { Callback, CallbackWithType, ClientMetadata, makeClientMetadata, ns } from '../utils'; +import { AuthContext, AuthProvider } from './auth/auth_provider'; +import { GSSAPI } from './auth/gssapi'; +import { MongoCR } from './auth/mongocr'; +import { MongoDBAWS } from './auth/mongodb_aws'; +import { Plain } from './auth/plain'; +import { AuthMechanism } from './auth/providers'; +import { ScramSHA1, ScramSHA256 } from './auth/scram'; +import { X509 } from './auth/x509'; +import { Connection, ConnectionOptions, CryptoConnection } from './connection'; import { - MAX_SUPPORTED_WIRE_VERSION, MAX_SUPPORTED_SERVER_VERSION, - MIN_SUPPORTED_WIRE_VERSION, - MIN_SUPPORTED_SERVER_VERSION + MAX_SUPPORTED_WIRE_VERSION, + MIN_SUPPORTED_SERVER_VERSION, + MIN_SUPPORTED_WIRE_VERSION } from './wire_protocol/constants'; -import type { Document } from '../bson'; -import { Int32 } from '../bson'; -import type { Socket, SocketConnectOpts } from 'net'; -import type { TLSSocket, ConnectionOptions as TLSConnectionOpts } from 'tls'; +const AUTH_PROVIDERS = new Map([ + [AuthMechanism.MONGODB_AWS, new MongoDBAWS()], + [AuthMechanism.MONGODB_CR, new MongoCR()], + [AuthMechanism.MONGODB_GSSAPI, new GSSAPI()], + [AuthMechanism.MONGODB_PLAIN, new Plain()], + [AuthMechanism.MONGODB_SCRAM_SHA1, new ScramSHA1()], + [AuthMechanism.MONGODB_SCRAM_SHA256, new ScramSHA256()], + [AuthMechanism.MONGODB_X509, new X509()] +]); const FAKE_MONGODB_SERVICE_ID = typeof process.env.FAKE_MONGODB_SERVICE_ID === 'string' && diff --git a/src/cmap/connection.ts b/src/cmap/connection.ts index b3ff7f9c0b..63eb6f5dbe 100644 --- a/src/cmap/connection.ts +++ b/src/cmap/connection.ts @@ -1,49 +1,59 @@ -import { MessageStream, OperationDescription } from './message_stream'; -import { StreamDescription, StreamDescriptionOptions } from './stream_description'; -import { - CommandStartedEvent, - CommandFailedEvent, - CommandSucceededEvent -} from './command_monitoring_events'; -import { applySession, ClientSession, updateSessionFromResponse } from '../sessions'; +import { BSONSerializeOptions, Document, Long, ObjectId, pluckBSONSerializeOptions } from '../bson'; import { - uuidV4, - ClientMetadata, - now, - calculateDurationInMs, - Callback, - MongoDBNamespace, - maxWireVersion, - HostAddress -} from '../utils'; + CLOSE, + CLUSTER_TIME_RECEIVED, + COMMAND_FAILED, + COMMAND_STARTED, + COMMAND_SUCCEEDED, + MESSAGE, + PINNED, + UNPINNED +} from '../constants'; +import type { AutoEncrypter } from '../deps'; import { - MongoRuntimeError, - MongoMissingDependencyError, MongoCompatibilityError, + MongoMissingDependencyError, MongoNetworkError, MongoNetworkTimeoutError, + MongoRuntimeError, MongoServerError, MongoWriteConcernError } from '../error'; +import type { ServerApi, SupportedNodeConnectionOptions } from '../mongo_client'; +import { CancellationToken, TypedEventEmitter } from '../mongo_types'; +import { ReadPreference, ReadPreferenceLike } from '../read_preference'; +import { applySession, ClientSession, updateSessionFromResponse } from '../sessions'; +import { + calculateDurationInMs, + Callback, + ClientMetadata, + HostAddress, + maxWireVersion, + MongoDBNamespace, + now, + uuidV4 +} from '../utils'; +import type { W, WriteConcern, WriteConcernOptions } from '../write_concern'; +import type { MongoCredentials } from './auth/mongo_credentials'; +import { + CommandFailedEvent, + CommandStartedEvent, + CommandSucceededEvent +} from './command_monitoring_events'; import { BinMsg, - WriteProtocolMessageType, - Response, - KillCursor, GetMore, - Query, + KillCursor, + Msg, OpQueryOptions, - Msg + Query, + Response, + WriteProtocolMessageType } from './commands'; -import { BSONSerializeOptions, Document, Long, pluckBSONSerializeOptions, ObjectId } from '../bson'; -import type { AutoEncrypter } from '../deps'; -import type { MongoCredentials } from './auth/mongo_credentials'; import type { Stream } from './connect'; +import { MessageStream, OperationDescription } from './message_stream'; +import { StreamDescription, StreamDescriptionOptions } from './stream_description'; import { applyCommonQueryOptions, getReadPreference, isSharded } from './wire_protocol/shared'; -import { ReadPreference, ReadPreferenceLike } from '../read_preference'; -import type { W, WriteConcern, WriteConcernOptions } from '../write_concern'; -import type { ServerApi, SupportedNodeConnectionOptions } from '../mongo_client'; -import { CancellationToken, TypedEventEmitter } from '../mongo_types'; /** @internal */ const kStream = Symbol('stream'); @@ -187,21 +197,21 @@ export class Connection extends TypedEventEmitter { [kClusterTime]: Document; /** @event */ - static readonly COMMAND_STARTED = 'commandStarted' as const; + static readonly COMMAND_STARTED = COMMAND_STARTED; /** @event */ - static readonly COMMAND_SUCCEEDED = 'commandSucceeded' as const; + static readonly COMMAND_SUCCEEDED = COMMAND_SUCCEEDED; /** @event */ - static readonly COMMAND_FAILED = 'commandFailed' as const; + static readonly COMMAND_FAILED = COMMAND_FAILED; /** @event */ - static readonly CLUSTER_TIME_RECEIVED = 'clusterTimeReceived' as const; + static readonly CLUSTER_TIME_RECEIVED = CLUSTER_TIME_RECEIVED; /** @event */ - static readonly CLOSE = 'close' as const; + static readonly CLOSE = CLOSE; /** @event */ - static readonly MESSAGE = 'message' as const; + static readonly MESSAGE = MESSAGE; /** @event */ - static readonly PINNED = 'pinned' as const; + static readonly PINNED = PINNED; /** @event */ - static readonly UNPINNED = 'unpinned' as const; + static readonly UNPINNED = UNPINNED; constructor(stream: Stream, options: ConnectionOptions) { super(); @@ -616,13 +626,6 @@ export class Connection extends TypedEventEmitter { } } -/** @public */ -export const APM_EVENTS = [ - Connection.COMMAND_STARTED, - Connection.COMMAND_SUCCEEDED, - Connection.COMMAND_FAILED -]; - /** @internal */ export class CryptoConnection extends Connection { /** @internal */ diff --git a/src/cmap/connection_pool.ts b/src/cmap/connection_pool.ts index 83c74d7407..a815b1408b 100644 --- a/src/cmap/connection_pool.ts +++ b/src/cmap/connection_pool.ts @@ -1,25 +1,38 @@ import Denque = require('denque'); -import { APM_EVENTS, Connection, ConnectionEvents, ConnectionOptions } from './connection'; -import type { ObjectId } from 'bson'; +import type { ObjectId } from '../bson'; +import { + APM_EVENTS, + CONNECTION_CHECK_OUT_FAILED, + CONNECTION_CHECK_OUT_STARTED, + CONNECTION_CHECKED_IN, + CONNECTION_CHECKED_OUT, + CONNECTION_CLOSED, + CONNECTION_CREATED, + CONNECTION_POOL_CLEARED, + CONNECTION_POOL_CLOSED, + CONNECTION_POOL_CREATED, + CONNECTION_READY +} from '../constants'; +import { MongoError, MongoInvalidArgumentError, MongoRuntimeError } from '../error'; import { Logger } from '../logger'; -import { ConnectionPoolMetrics } from './metrics'; +import { CancellationToken, TypedEventEmitter } from '../mongo_types'; +import { Callback, eachAsync, makeCounter } from '../utils'; import { connect } from './connect'; -import { eachAsync, makeCounter, Callback } from '../utils'; -import { MongoError, MongoInvalidArgumentError, MongoRuntimeError } from '../error'; -import { PoolClosedError, WaitQueueTimeoutError } from './errors'; +import { Connection, ConnectionEvents, ConnectionOptions } from './connection'; import { - ConnectionPoolCreatedEvent, - ConnectionPoolClosedEvent, - ConnectionCreatedEvent, - ConnectionReadyEvent, - ConnectionClosedEvent, - ConnectionCheckOutStartedEvent, - ConnectionCheckOutFailedEvent, - ConnectionCheckedOutEvent, ConnectionCheckedInEvent, - ConnectionPoolClearedEvent + ConnectionCheckedOutEvent, + ConnectionCheckOutFailedEvent, + ConnectionCheckOutStartedEvent, + ConnectionClosedEvent, + ConnectionCreatedEvent, + ConnectionPoolClearedEvent, + ConnectionPoolClosedEvent, + ConnectionPoolCreatedEvent, + ConnectionReadyEvent } from './connection_pool_events'; -import { CancellationToken, TypedEventEmitter } from '../mongo_types'; +import { PoolClosedError, WaitQueueTimeoutError } from './errors'; +import { ConnectionPoolMetrics } from './metrics'; /** @internal */ const kLogger = Symbol('logger'); @@ -132,52 +145,52 @@ export class ConnectionPool extends TypedEventEmitter { * Emitted when the connection pool is created. * @event */ - static readonly CONNECTION_POOL_CREATED = 'connectionPoolCreated' as const; + static readonly CONNECTION_POOL_CREATED = CONNECTION_POOL_CREATED; /** * Emitted once when the connection pool is closed * @event */ - static readonly CONNECTION_POOL_CLOSED = 'connectionPoolClosed' as const; + static readonly CONNECTION_POOL_CLOSED = CONNECTION_POOL_CLOSED; /** * Emitted each time the connection pool is cleared and it's generation incremented * @event */ - static readonly CONNECTION_POOL_CLEARED = 'connectionPoolCleared' as const; + static readonly CONNECTION_POOL_CLEARED = CONNECTION_POOL_CLEARED; /** * Emitted when a connection is created. * @event */ - static readonly CONNECTION_CREATED = 'connectionCreated' as const; + static readonly CONNECTION_CREATED = CONNECTION_CREATED; /** * Emitted when a connection becomes established, and is ready to use * @event */ - static readonly CONNECTION_READY = 'connectionReady' as const; + static readonly CONNECTION_READY = CONNECTION_READY; /** * Emitted when a connection is closed * @event */ - static readonly CONNECTION_CLOSED = 'connectionClosed' as const; + static readonly CONNECTION_CLOSED = CONNECTION_CLOSED; /** * Emitted when an attempt to check out a connection begins * @event */ - static readonly CONNECTION_CHECK_OUT_STARTED = 'connectionCheckOutStarted' as const; + static readonly CONNECTION_CHECK_OUT_STARTED = CONNECTION_CHECK_OUT_STARTED; /** * Emitted when an attempt to check out a connection fails * @event */ - static readonly CONNECTION_CHECK_OUT_FAILED = 'connectionCheckOutFailed' as const; + static readonly CONNECTION_CHECK_OUT_FAILED = CONNECTION_CHECK_OUT_FAILED; /** * Emitted each time a connection is successfully checked out of the connection pool * @event */ - static readonly CONNECTION_CHECKED_OUT = 'connectionCheckedOut' as const; + static readonly CONNECTION_CHECKED_OUT = CONNECTION_CHECKED_OUT; /** * Emitted each time a connection is successfully checked into the connection pool * @event */ - static readonly CONNECTION_CHECKED_IN = 'connectionCheckedIn' as const; + static readonly CONNECTION_CHECKED_IN = CONNECTION_CHECKED_IN; /** @internal */ constructor(options: ConnectionPoolOptions) { @@ -664,19 +677,6 @@ function processWaitQueue(pool: ConnectionPool) { } } -export const CMAP_EVENTS = [ - ConnectionPool.CONNECTION_POOL_CREATED, - ConnectionPool.CONNECTION_POOL_CLOSED, - ConnectionPool.CONNECTION_CREATED, - ConnectionPool.CONNECTION_READY, - ConnectionPool.CONNECTION_CLOSED, - ConnectionPool.CONNECTION_CHECK_OUT_STARTED, - ConnectionPool.CONNECTION_CHECK_OUT_FAILED, - ConnectionPool.CONNECTION_CHECKED_OUT, - ConnectionPool.CONNECTION_CHECKED_IN, - ConnectionPool.CONNECTION_POOL_CLEARED -] as const; - /** * A callback provided to `withConnection` * @internal diff --git a/src/cmap/connection_pool_events.ts b/src/cmap/connection_pool_events.ts index 8083f6d2cd..ee67272b99 100644 --- a/src/cmap/connection_pool_events.ts +++ b/src/cmap/connection_pool_events.ts @@ -1,7 +1,7 @@ import type { ObjectId } from '../bson'; +import type { AnyError } from '../error'; import type { Connection } from './connection'; import type { ConnectionPool, ConnectionPoolOptions } from './connection_pool'; -import type { AnyError } from '../error'; /** * The base export class for all monitoring events published from the connection pool diff --git a/src/cmap/message_stream.ts b/src/cmap/message_stream.ts index 8ab3290e3b..57764f75e9 100644 --- a/src/cmap/message_stream.ts +++ b/src/cmap/message_stream.ts @@ -1,17 +1,18 @@ import { Duplex, DuplexOptions } from 'stream'; -import { Response, Msg, BinMsg, Query, WriteProtocolMessageType, MessageHeader } from './commands'; + +import type { BSONSerializeOptions, Document } from '../bson'; import { MongoDecompressionError, MongoParseError } from '../error'; -import { OP_COMPRESSED, OP_MSG } from './wire_protocol/constants'; +import type { ClientSession } from '../sessions'; +import { BufferPool, Callback } from '../utils'; +import { BinMsg, MessageHeader, Msg, Query, Response, WriteProtocolMessageType } from './commands'; import { compress, - decompress, - uncompressibleCommands, Compressor, - CompressorName + CompressorName, + decompress, + uncompressibleCommands } from './wire_protocol/compression'; -import type { Document, BSONSerializeOptions } from '../bson'; -import { BufferPool, Callback } from '../utils'; -import type { ClientSession } from '../sessions'; +import { OP_COMPRESSED, OP_MSG } from './wire_protocol/constants'; const MESSAGE_HEADER_SIZE = 16; const COMPRESSION_DETAILS_SIZE = 9; // originalOpcode + uncompressedSize, compressorID diff --git a/src/cmap/stream_description.ts b/src/cmap/stream_description.ts index 1dfb669a52..dd601fd8b9 100644 --- a/src/cmap/stream_description.ts +++ b/src/cmap/stream_description.ts @@ -1,7 +1,7 @@ -import { parseServerType } from '../sdam/server_description'; import type { Document } from '../bson'; -import type { CompressorName } from './wire_protocol/compression'; import { ServerType } from '../sdam/common'; +import { parseServerType } from '../sdam/server_description'; +import type { CompressorName } from './wire_protocol/compression'; const RESPONSE_FIELDS = [ 'minWireVersion', diff --git a/src/cmap/wire_protocol/compression.ts b/src/cmap/wire_protocol/compression.ts index 957fb45a2e..91cab88a05 100644 --- a/src/cmap/wire_protocol/compression.ts +++ b/src/cmap/wire_protocol/compression.ts @@ -1,9 +1,9 @@ import * as zlib from 'zlib'; -import type { Callback } from '../../utils'; -import type { OperationDescription } from '../message_stream'; import { PKG_VERSION, Snappy } from '../../deps'; import { MongoDecompressionError, MongoInvalidArgumentError } from '../../error'; +import type { Callback } from '../../utils'; +import type { OperationDescription } from '../message_stream'; /** @public */ export const Compressor = Object.freeze({ diff --git a/src/cmap/wire_protocol/shared.ts b/src/cmap/wire_protocol/shared.ts index 53db9b85b7..ee4a35c0d4 100644 --- a/src/cmap/wire_protocol/shared.ts +++ b/src/cmap/wire_protocol/shared.ts @@ -1,15 +1,14 @@ -import { ServerType } from '../../sdam/common'; -import { TopologyDescription } from '../../sdam/topology_description'; +import type { Document } from '../../bson'; import { MongoInvalidArgumentError } from '../../error'; +import type { ReadPreferenceLike } from '../../read_preference'; import { ReadPreference } from '../../read_preference'; -import type { Document } from '../../bson'; -import type { OpQueryOptions } from '../commands'; -import type { Topology } from '../../sdam/topology'; +import { ServerType } from '../../sdam/common'; import type { Server } from '../../sdam/server'; import type { ServerDescription } from '../../sdam/server_description'; -import type { ReadPreferenceLike } from '../../read_preference'; -import type { CommandOptions } from '../connection'; -import type { Connection } from '../connection'; +import type { Topology } from '../../sdam/topology'; +import { TopologyDescription } from '../../sdam/topology_description'; +import type { OpQueryOptions } from '../commands'; +import type { CommandOptions, Connection } from '../connection'; export interface ReadPreferenceOption { readPreference?: ReadPreferenceLike; diff --git a/src/collection.ts b/src/collection.ts index 703e00cd97..f69d368d0b 100644 --- a/src/collection.ts +++ b/src/collection.ts @@ -1,102 +1,104 @@ -import { DEFAULT_PK_FACTORY, emitWarningOnce, resolveOptions } from './utils'; -import { ReadPreference, ReadPreferenceLike } from './read_preference'; -import { - normalizeHintField, - checkCollectionName, - MongoDBNamespace, - Callback, - getTopology -} from './utils'; -import { Document, BSONSerializeOptions, resolveBSONOptions } from './bson'; -import { MongoInvalidArgumentError } from './error'; -import { UnorderedBulkOperation } from './bulk/unordered'; +import { BSONSerializeOptions, Document, resolveBSONOptions } from './bson'; +import type { AnyBulkWriteOperation, BulkWriteOptions, BulkWriteResult } from './bulk/common'; import { OrderedBulkOperation } from './bulk/ordered'; +import { UnorderedBulkOperation } from './bulk/unordered'; import { ChangeStream, ChangeStreamOptions } from './change_stream'; -import { WriteConcern, WriteConcernOptions } from './write_concern'; -import { ReadConcern, ReadConcernLike } from './read_concern'; import { AggregationCursor } from './cursor/aggregation_cursor'; +import { FindCursor } from './cursor/find_cursor'; +import type { Db } from './db'; +import { MongoInvalidArgumentError } from './error'; +import type { Logger, LoggerOptions } from './logger'; +import type { PkFactory } from './mongo_client'; +import type { + Filter, + Flatten, + OptionalId, + TODO_NODE_3286, + UpdateFilter, + WithId, + WithoutId +} from './mongo_types'; import type { AggregateOptions } from './operations/aggregate'; import { BulkWriteOperation } from './operations/bulk_write'; +import type { IndexInformationOptions } from './operations/common_functions'; +import type { CountOptions } from './operations/count'; import { CountDocumentsOperation, CountDocumentsOptions } from './operations/count_documents'; import { - CreateIndexesOperation, - CreateIndexOperation, - DropIndexOperation, - DropIndexesOperation, - IndexesOperation, - IndexExistsOperation, - IndexInformationOperation, - CreateIndexesOptions, - DropIndexesOptions, - ListIndexesOptions, - IndexSpecification, - IndexDescription, - ListIndexesCursor -} from './operations/indexes'; + DeleteManyOperation, + DeleteOneOperation, + DeleteOptions, + DeleteResult +} from './operations/delete'; import { DistinctOperation, DistinctOptions } from './operations/distinct'; import { DropCollectionOperation, DropCollectionOptions } from './operations/drop'; import { EstimatedDocumentCountOperation, EstimatedDocumentCountOptions } from './operations/estimated_document_count'; +import { executeOperation } from './operations/execute_operation'; import type { FindOptions } from './operations/find'; import { FindOneAndDeleteOperation, - FindOneAndReplaceOperation, - FindOneAndUpdateOperation, FindOneAndDeleteOptions, + FindOneAndReplaceOperation, FindOneAndReplaceOptions, + FindOneAndUpdateOperation, FindOneAndUpdateOptions } from './operations/find_and_modify'; import { + CreateIndexesOperation, + CreateIndexesOptions, + CreateIndexOperation, + DropIndexesOperation, + DropIndexesOptions, + DropIndexOperation, + IndexDescription, + IndexesOperation, + IndexExistsOperation, + IndexInformationOperation, + IndexSpecification, + ListIndexesCursor, + ListIndexesOptions +} from './operations/indexes'; +import { + InsertManyOperation, + InsertManyResult, InsertOneOperation, InsertOneOptions, - InsertOneResult, - InsertManyOperation, - InsertManyResult + InsertOneResult } from './operations/insert'; -import { - UpdateOneOperation, - UpdateManyOperation, - UpdateOptions, - UpdateResult, - ReplaceOneOperation, - ReplaceOptions -} from './operations/update'; -import { - DeleteOneOperation, - DeleteManyOperation, - DeleteOptions, - DeleteResult -} from './operations/delete'; import { IsCappedOperation } from './operations/is_capped'; import { - MapReduceOperation, MapFunction, - ReduceFunction, - MapReduceOptions + MapReduceOperation, + MapReduceOptions, + ReduceFunction } from './operations/map_reduce'; +import type { Hint, OperationOptions } from './operations/operation'; import { OptionsOperation } from './operations/options_operation'; import { RenameOperation, RenameOptions } from './operations/rename'; import { CollStats, CollStatsOperation, CollStatsOptions } from './operations/stats'; -import { executeOperation } from './operations/execute_operation'; -import type { Db } from './db'; -import type { OperationOptions, Hint } from './operations/operation'; -import type { IndexInformationOptions } from './operations/common_functions'; -import type { BulkWriteResult, BulkWriteOptions, AnyBulkWriteOperation } from './bulk/common'; -import type { PkFactory } from './mongo_client'; -import type { Logger, LoggerOptions } from './logger'; -import { FindCursor } from './cursor/find_cursor'; -import type { CountOptions } from './operations/count'; -import type { - Filter, - TODO_NODE_3286, - UpdateFilter, - WithId, - WithoutId, - OptionalId, - Flatten -} from './mongo_types'; +import { + ReplaceOneOperation, + ReplaceOptions, + UpdateManyOperation, + UpdateOneOperation, + UpdateOptions, + UpdateResult +} from './operations/update'; +import { ReadConcern, ReadConcernLike } from './read_concern'; +import { ReadPreference, ReadPreferenceLike } from './read_preference'; +import { + Callback, + checkCollectionName, + DEFAULT_PK_FACTORY, + emitWarningOnce, + getTopology, + MongoDBNamespace, + normalizeHintField, + resolveOptions +} from './utils'; +import { WriteConcern, WriteConcernOptions } from './write_concern'; /** @public */ export interface ModifyResult { diff --git a/src/connection_string.ts b/src/connection_string.ts index e33765e322..a2f3764364 100644 --- a/src/connection_string.ts +++ b/src/connection_string.ts @@ -2,22 +2,14 @@ import * as dns from 'dns'; import * as fs from 'fs'; import ConnectionString from 'mongodb-connection-string-url'; import { URLSearchParams } from 'url'; -import { AuthMechanism } from './cmap/auth/defaultAuthProviders'; -import { ReadPreference, ReadPreferenceMode } from './read_preference'; -import { ReadConcern, ReadConcernLevel } from './read_concern'; -import { W, WriteConcern } from './write_concern'; -import { MongoAPIError, MongoInvalidArgumentError, MongoParseError } from './error'; -import { - AnyOptions, - Callback, - DEFAULT_PK_FACTORY, - isRecord, - makeClientMetadata, - setDifference, - HostAddress, - emitWarning -} from './utils'; + import type { Document } from './bson'; +import { MongoCredentials } from './cmap/auth/mongo_credentials'; +import { AuthMechanism } from './cmap/auth/providers'; +import { Compressor, CompressorName } from './cmap/wire_protocol/compression'; +import { Encrypter } from './encrypter'; +import { MongoAPIError, MongoInvalidArgumentError, MongoParseError } from './error'; +import { Logger, LoggerLevel } from './logger'; import { DriverInfo, MongoClient, @@ -27,12 +19,21 @@ import { ServerApi, ServerApiVersion } from './mongo_client'; -import { MongoCredentials } from './cmap/auth/mongo_credentials'; -import type { TagSet } from './sdam/server_description'; -import { Logger, LoggerLevel } from './logger'; import { PromiseProvider } from './promise_provider'; -import { Encrypter } from './encrypter'; -import { Compressor, CompressorName } from './cmap/wire_protocol/compression'; +import { ReadConcern, ReadConcernLevel } from './read_concern'; +import { ReadPreference, ReadPreferenceMode } from './read_preference'; +import type { TagSet } from './sdam/server_description'; +import { + AnyOptions, + Callback, + DEFAULT_PK_FACTORY, + emitWarning, + HostAddress, + isRecord, + makeClientMetadata, + setDifference +} from './utils'; +import { W, WriteConcern } from './write_concern'; const VALID_TXT_RECORDS = ['authSource', 'replicaSet', 'loadBalanced']; diff --git a/src/constants.ts b/src/constants.ts index 4a6b538265..e5c3a5573f 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -4,3 +4,113 @@ export const SYSTEM_PROFILE_COLLECTION = 'system.profile'; export const SYSTEM_USER_COLLECTION = 'system.users'; export const SYSTEM_COMMAND_COLLECTION = '$cmd'; export const SYSTEM_JS_COLLECTION = 'system.js'; + +// events +export const ERROR = 'error' as const; +export const TIMEOUT = 'timeout' as const; +export const CLOSE = 'close' as const; +export const OPEN = 'open' as const; +export const CONNECT = 'connect' as const; +export const CLOSED = 'closed' as const; +export const ENDED = 'ended' as const; +export const MESSAGE = 'message' as const; +export const PINNED = 'pinned' as const; +export const UNPINNED = 'unpinned' as const; +export const DESCRIPTION_RECEIVED = 'descriptionReceived'; +export const SERVER_OPENING = 'serverOpening' as const; +export const SERVER_CLOSED = 'serverClosed' as const; +export const SERVER_DESCRIPTION_CHANGED = 'serverDescriptionChanged' as const; +export const TOPOLOGY_OPENING = 'topologyOpening' as const; +export const TOPOLOGY_CLOSED = 'topologyClosed' as const; +export const TOPOLOGY_DESCRIPTION_CHANGED = 'topologyDescriptionChanged' as const; +export const CONNECTION_POOL_CREATED = 'connectionPoolCreated' as const; +export const CONNECTION_POOL_CLOSED = 'connectionPoolClosed' as const; +export const CONNECTION_POOL_CLEARED = 'connectionPoolCleared' as const; +export const CONNECTION_CREATED = 'connectionCreated' as const; +export const CONNECTION_READY = 'connectionReady' as const; +export const CONNECTION_CLOSED = 'connectionClosed' as const; +export const CONNECTION_CHECK_OUT_STARTED = 'connectionCheckOutStarted' as const; +export const CONNECTION_CHECK_OUT_FAILED = 'connectionCheckOutFailed' as const; +export const CONNECTION_CHECKED_OUT = 'connectionCheckedOut' as const; +export const CONNECTION_CHECKED_IN = 'connectionCheckedIn' as const; +export const CLUSTER_TIME_RECEIVED = 'clusterTimeReceived' as const; +export const COMMAND_STARTED = 'commandStarted' as const; +export const COMMAND_SUCCEEDED = 'commandSucceeded' as const; +export const COMMAND_FAILED = 'commandFailed' as const; +export const SERVER_HEARTBEAT_STARTED = 'serverHeartbeatStarted' as const; +export const SERVER_HEARTBEAT_SUCCEEDED = 'serverHeartbeatSucceeded' as const; +export const SERVER_HEARTBEAT_FAILED = 'serverHeartbeatFailed' as const; + +/** @public */ +export const HEARTBEAT_EVENTS = Object.freeze([ + SERVER_HEARTBEAT_STARTED, + SERVER_HEARTBEAT_SUCCEEDED, + SERVER_HEARTBEAT_FAILED +] as const); + +/** @public */ +export const CMAP_EVENTS = Object.freeze([ + CONNECTION_POOL_CREATED, + CONNECTION_POOL_CLOSED, + CONNECTION_CREATED, + CONNECTION_READY, + CONNECTION_CLOSED, + CONNECTION_CHECK_OUT_STARTED, + CONNECTION_CHECK_OUT_FAILED, + CONNECTION_CHECKED_OUT, + CONNECTION_CHECKED_IN, + CONNECTION_POOL_CLEARED +] as const); + +/** @public */ +export const TOPOLOGY_EVENTS = Object.freeze([ + SERVER_OPENING, + SERVER_CLOSED, + SERVER_DESCRIPTION_CHANGED, + TOPOLOGY_OPENING, + TOPOLOGY_CLOSED, + TOPOLOGY_DESCRIPTION_CHANGED, + ERROR, + TIMEOUT, + CLOSE +] as const); + +/** @public */ +export const APM_EVENTS = Object.freeze([ + COMMAND_STARTED, + COMMAND_SUCCEEDED, + COMMAND_FAILED +] as const); + +/** + * All events that we relay to the `Topology` + * @internal + */ +export const SERVER_RELAY_EVENTS = Object.freeze([ + SERVER_HEARTBEAT_STARTED, + SERVER_HEARTBEAT_SUCCEEDED, + SERVER_HEARTBEAT_FAILED, + COMMAND_STARTED, + COMMAND_SUCCEEDED, + COMMAND_FAILED, + ...CMAP_EVENTS +] as const); + +/** + * All events we listen to from `Server` instances, but do not forward to the client + * @internal + */ +export const LOCAL_SERVER_EVENTS = Object.freeze([ + CONNECT, + DESCRIPTION_RECEIVED, + CLOSED, + ENDED +] as const); + +/** @public */ +export const MONGO_CLIENT_EVENTS = Object.freeze([ + ...CMAP_EVENTS, + ...APM_EVENTS, + ...TOPOLOGY_EVENTS, + ...HEARTBEAT_EVENTS +] as const); diff --git a/src/cursor/abstract_cursor.ts b/src/cursor/abstract_cursor.ts index f30fbf1e91..d729dc38a8 100644 --- a/src/cursor/abstract_cursor.ts +++ b/src/cursor/abstract_cursor.ts @@ -1,23 +1,24 @@ -import { Callback, maybePromise, MongoDBNamespace, ns } from '../utils'; -import { Long, Document, BSONSerializeOptions, pluckBSONSerializeOptions } from '../bson'; -import { ClientSession, maybeClearPinnedConnection } from '../sessions'; +import { Readable, Transform } from 'stream'; + +import { BSONSerializeOptions, Document, Long, pluckBSONSerializeOptions } from '../bson'; import { AnyError, - MongoRuntimeError, - MongoNetworkError, - MongoInvalidArgumentError, MongoCursorExhaustedError, - MongoTailableCursorError, - MongoCursorInUseError + MongoCursorInUseError, + MongoInvalidArgumentError, + MongoNetworkError, + MongoRuntimeError, + MongoTailableCursorError } from '../error'; -import { ReadPreference, ReadPreferenceLike } from '../read_preference'; -import type { Server } from '../sdam/server'; -import type { Topology } from '../sdam/topology'; -import { Readable, Transform } from 'stream'; +import { TODO_NODE_3286, TypedEventEmitter } from '../mongo_types'; import { executeOperation, ExecutionResult } from '../operations/execute_operation'; import { GetMoreOperation } from '../operations/get_more'; import { ReadConcern, ReadConcernLike } from '../read_concern'; -import { TODO_NODE_3286, TypedEventEmitter } from '../mongo_types'; +import { ReadPreference, ReadPreferenceLike } from '../read_preference'; +import type { Server } from '../sdam/server'; +import type { Topology } from '../sdam/topology'; +import { ClientSession, maybeClearPinnedConnection } from '../sessions'; +import { Callback, maybePromise, MongoDBNamespace, ns } from '../utils'; /** @internal */ const kId = Symbol('id'); diff --git a/src/cursor/aggregation_cursor.ts b/src/cursor/aggregation_cursor.ts index ffe658e34e..281e2f0cb6 100644 --- a/src/cursor/aggregation_cursor.ts +++ b/src/cursor/aggregation_cursor.ts @@ -1,14 +1,14 @@ +import type { Document } from '../bson'; +import type { ExplainVerbosityLike } from '../explain'; import { AggregateOperation, AggregateOptions } from '../operations/aggregate'; -import { AbstractCursor, assertUninitialized } from './abstract_cursor'; import { executeOperation, ExecutionResult } from '../operations/execute_operation'; -import { mergeOptions } from '../utils'; -import type { Document } from '../bson'; -import type { Sort } from '../sort'; import type { Topology } from '../sdam/topology'; -import type { Callback, MongoDBNamespace } from '../utils'; import type { ClientSession } from '../sessions'; +import type { Sort } from '../sort'; +import type { Callback, MongoDBNamespace } from '../utils'; +import { mergeOptions } from '../utils'; import type { AbstractCursorOptions } from './abstract_cursor'; -import type { ExplainVerbosityLike } from '../explain'; +import { AbstractCursor, assertUninitialized } from './abstract_cursor'; /** @public */ export interface AggregationCursorOptions extends AbstractCursorOptions, AggregateOptions {} diff --git a/src/cursor/find_cursor.ts b/src/cursor/find_cursor.ts index 2c9a04d3b4..ba6125917d 100644 --- a/src/cursor/find_cursor.ts +++ b/src/cursor/find_cursor.ts @@ -1,16 +1,16 @@ import type { Document } from '../bson'; import { MongoInvalidArgumentError, MongoTailableCursorError } from '../error'; import type { ExplainVerbosityLike } from '../explain'; +import type { CollationOptions } from '../operations/command'; import { CountOperation, CountOptions } from '../operations/count'; import { executeOperation, ExecutionResult } from '../operations/execute_operation'; import { FindOperation, FindOptions } from '../operations/find'; -import { mergeOptions } from '../utils'; import type { Hint } from '../operations/operation'; -import type { CollationOptions } from '../operations/command'; import type { Topology } from '../sdam/topology'; import type { ClientSession } from '../sessions'; import { formatSort, Sort, SortDirection } from '../sort'; import type { Callback, MongoDBNamespace } from '../utils'; +import { mergeOptions } from '../utils'; import { AbstractCursor, assertUninitialized } from './abstract_cursor'; /** @internal */ diff --git a/src/db.ts b/src/db.ts index 0fa9dad2a8..4d686d4457 100644 --- a/src/db.ts +++ b/src/db.ts @@ -1,39 +1,31 @@ -import { - Callback, - resolveOptions, - filterOptions, - MongoDBNamespace, - getTopology, - DEFAULT_PK_FACTORY -} from './utils'; -import { AggregationCursor } from './cursor/aggregation_cursor'; -import { Document, BSONSerializeOptions, resolveBSONOptions } from './bson'; -import { ReadPreference, ReadPreferenceLike } from './read_preference'; -import { MongoAPIError, MongoInvalidArgumentError } from './error'; -import { Collection, CollectionOptions } from './collection'; +import { Admin } from './admin'; +import { BSONSerializeOptions, Document, resolveBSONOptions } from './bson'; import { ChangeStream, ChangeStreamOptions } from './change_stream'; +import { Collection, CollectionOptions } from './collection'; import * as CONSTANTS from './constants'; -import { WriteConcern, WriteConcernOptions } from './write_concern'; -import { ReadConcern } from './read_concern'; +import { AggregationCursor } from './cursor/aggregation_cursor'; +import { MongoAPIError, MongoInvalidArgumentError } from './error'; import { Logger, LoggerOptions } from './logger'; -import type { AggregateOptions } from './operations/aggregate'; +import type { MongoClient, PkFactory } from './mongo_client'; +import type { TODO_NODE_3286 } from './mongo_types'; import { AddUserOperation, AddUserOptions } from './operations/add_user'; +import type { AggregateOptions } from './operations/aggregate'; import { CollectionsOperation } from './operations/collections'; -import { DbStatsOperation, DbStatsOptions } from './operations/stats'; -import { RunCommandOperation, RunCommandOptions } from './operations/run_command'; +import type { IndexInformationOptions } from './operations/common_functions'; import { CreateCollectionOperation, CreateCollectionOptions } from './operations/create_collection'; import { + DropCollectionOperation, + DropCollectionOptions, + DropDatabaseOperation, + DropDatabaseOptions +} from './operations/drop'; +import { executeOperation } from './operations/execute_operation'; +import { + CreateIndexesOptions, CreateIndexOperation, IndexInformationOperation, - CreateIndexesOptions, IndexSpecification } from './operations/indexes'; -import { - DropCollectionOperation, - DropDatabaseOperation, - DropDatabaseOptions, - DropCollectionOptions -} from './operations/drop'; import { CollectionInfo, ListCollectionsCursor, @@ -42,16 +34,24 @@ import { import { ProfilingLevelOperation, ProfilingLevelOptions } from './operations/profiling_level'; import { RemoveUserOperation, RemoveUserOptions } from './operations/remove_user'; import { RenameOperation, RenameOptions } from './operations/rename'; +import { RunCommandOperation, RunCommandOptions } from './operations/run_command'; import { + ProfilingLevel, SetProfilingLevelOperation, - SetProfilingLevelOptions, - ProfilingLevel + SetProfilingLevelOptions } from './operations/set_profiling_level'; -import { executeOperation } from './operations/execute_operation'; -import type { IndexInformationOptions } from './operations/common_functions'; -import type { MongoClient, PkFactory } from './mongo_client'; -import { Admin } from './admin'; -import type { TODO_NODE_3286 } from './mongo_types'; +import { DbStatsOperation, DbStatsOptions } from './operations/stats'; +import { ReadConcern } from './read_concern'; +import { ReadPreference, ReadPreferenceLike } from './read_preference'; +import { + Callback, + DEFAULT_PK_FACTORY, + filterOptions, + getTopology, + MongoDBNamespace, + resolveOptions +} from './utils'; +import { WriteConcern, WriteConcernOptions } from './write_concern'; // Allowed parameters const DB_OPTIONS_ALLOW_LIST = [ diff --git a/src/deps.ts b/src/deps.ts index 35bd4ebf44..1d3a4821b0 100644 --- a/src/deps.ts +++ b/src/deps.ts @@ -1,7 +1,7 @@ /* eslint-disable @typescript-eslint/no-var-requires */ +import type { deserialize, Document, serialize } from './bson'; import { MongoMissingDependencyError } from './error'; import type { MongoClient } from './mongo_client'; -import type { deserialize, Document, serialize } from './bson'; import { Callback, parsePackageVersion } from './utils'; export const PKG_VERSION = Symbol('kPkgVersion'); diff --git a/src/encrypter.ts b/src/encrypter.ts index 18cd7a1279..5fd97019e2 100644 --- a/src/encrypter.ts +++ b/src/encrypter.ts @@ -1,10 +1,10 @@ /* eslint-disable @typescript-eslint/no-var-requires */ -import { MongoClient, MongoClientOptions } from './mongo_client'; +import { deserialize, serialize } from './bson'; +import { MONGO_CLIENT_EVENTS } from './constants'; import type { AutoEncrypter, AutoEncryptionOptions } from './deps'; import { MongoInvalidArgumentError, MongoMissingDependencyError } from './error'; -import { deserialize, serialize } from './bson'; +import { MongoClient, MongoClientOptions } from './mongo_client'; import type { Callback } from './utils'; -import { MONGO_CLIENT_EVENTS } from './operations/connect'; let AutoEncrypterClass: AutoEncrypter; diff --git a/src/error.ts b/src/error.ts index f713355634..cfd70f32aa 100644 --- a/src/error.ts +++ b/src/error.ts @@ -1,5 +1,5 @@ -import type { TopologyVersion } from './sdam/server_description'; import type { Document } from './bson'; +import type { TopologyVersion } from './sdam/server_description'; import type { TopologyDescription } from './sdam/topology_description'; /** @public */ diff --git a/src/gridfs/download.ts b/src/gridfs/download.ts index 7e2925bb24..2d005e1c85 100644 --- a/src/gridfs/download.ts +++ b/src/gridfs/download.ts @@ -1,19 +1,19 @@ import { Readable } from 'stream'; + +import type { Document, ObjectId } from '../bson'; +import type { Collection } from '../collection'; +import type { FindCursor } from '../cursor/find_cursor'; import { - MongoRuntimeError, MongoGridFSChunkError, MongoGridFSStreamError, - MongoInvalidArgumentError + MongoInvalidArgumentError, + MongoRuntimeError } from '../error'; -import type { Document } from '../bson'; import type { FindOptions } from '../operations/find'; +import type { ReadPreference } from '../read_preference'; import type { Sort } from '../sort'; import type { Callback } from '../utils'; -import type { Collection } from '../collection'; -import type { ReadPreference } from '../read_preference'; import type { GridFSChunk } from './upload'; -import type { FindCursor } from '../cursor/find_cursor'; -import type { ObjectId } from 'bson'; /** @public */ export interface GridFSBucketReadStreamOptions { diff --git a/src/gridfs/index.ts b/src/gridfs/index.ts index f2e6fb53f5..b79c9cc8f2 100644 --- a/src/gridfs/index.ts +++ b/src/gridfs/index.ts @@ -1,4 +1,15 @@ +import type { ObjectId } from '../bson'; +import type { Collection } from '../collection'; +import type { FindCursor } from '../cursor/find_cursor'; +import type { Db } from '../db'; import { MongoRuntimeError } from '../error'; +import type { Logger } from '../logger'; +import { Filter, TypedEventEmitter } from '../mongo_types'; +import type { ReadPreference } from '../read_preference'; +import type { Sort } from '../sort'; +import { Callback, executeLegacyOperation, getTopology } from '../utils'; +import { WriteConcern, WriteConcernOptions } from '../write_concern'; +import type { FindOptions } from './../operations/find'; import { GridFSBucketReadStream, GridFSBucketReadStreamOptions, @@ -6,17 +17,6 @@ import { GridFSFile } from './download'; import { GridFSBucketWriteStream, GridFSBucketWriteStreamOptions, GridFSChunk } from './upload'; -import { executeLegacyOperation, Callback, getTopology } from '../utils'; -import { WriteConcernOptions, WriteConcern } from '../write_concern'; -import type { ObjectId } from '../bson'; -import type { Db } from '../db'; -import type { ReadPreference } from '../read_preference'; -import type { Collection } from '../collection'; -import type { FindOptions } from './../operations/find'; -import type { Sort } from '../sort'; -import type { Logger } from '../logger'; -import type { FindCursor } from '../cursor/find_cursor'; -import { Filter, TypedEventEmitter } from '../mongo_types'; const DEFAULT_GRIDFS_BUCKET_OPTIONS: { bucketName: string; diff --git a/src/gridfs/upload.ts b/src/gridfs/upload.ts index da812994b0..26e9a4ad1c 100644 --- a/src/gridfs/upload.ts +++ b/src/gridfs/upload.ts @@ -1,8 +1,9 @@ import { Writable } from 'stream'; + import type { Document } from '../bson'; import { ObjectId } from '../bson'; import type { Collection } from '../collection'; -import { AnyError, MONGODB_ERROR_CODES, MongoError, MongoAPIError } from '../error'; +import { AnyError, MongoAPIError, MONGODB_ERROR_CODES, MongoError } from '../error'; import { Callback, maybePromise } from '../utils'; import type { WriteConcernOptions } from '../write_concern'; import { WriteConcern } from './../write_concern'; diff --git a/src/index.ts b/src/index.ts index 4a80f643bd..609d2607df 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,122 +1,121 @@ +import { Admin } from './admin'; +import { ObjectId } from './bson'; +import { Collection } from './collection'; import { AbstractCursor } from './cursor/abstract_cursor'; import { AggregationCursor } from './cursor/aggregation_cursor'; import { FindCursor } from './cursor/find_cursor'; -import { ListIndexesCursor } from './operations/indexes'; -import { ListCollectionsCursor } from './operations/list_collections'; -import { PromiseProvider } from './promise_provider'; -import { Admin } from './admin'; -import { MongoClient } from './mongo_client'; import { Db } from './db'; -import { Collection } from './collection'; -import { Logger } from './logger'; import { GridFSBucket } from './gridfs'; +import { Logger } from './logger'; +import { MongoClient } from './mongo_client'; import { CancellationToken } from './mongo_types'; +import { ListIndexesCursor } from './operations/indexes'; +import { ListCollectionsCursor } from './operations/list_collections'; +import { PromiseProvider } from './promise_provider'; export { Binary, + BSONRegExp, + BSONSymbol, Code, DBRef, + Decimal128, Double, Int32, Long, - MinKey, + Map, MaxKey, + MinKey, ObjectId, - Timestamp, - Decimal128, - BSONRegExp, - BSONSymbol, - Map + Timestamp } from './bson'; - -import { ObjectId } from 'bson'; /** * @public * @deprecated Please use `ObjectId` */ export const ObjectID = ObjectId; +export { AnyBulkWriteOperation, BulkWriteOptions, MongoBulkWriteError } from './bulk/common'; export { - MongoError, - MongoServerError, - MongoDriverError, MongoAPIError, + MongoBatchReExecutionError, + MongoChangeStreamError, MongoCompatibilityError, + MongoCursorExhaustedError, + MongoCursorInUseError, + MongoDecompressionError, + MongoDriverError, + MongoError, + MongoExpiredSessionError, + MongoGridFSChunkError, + MongoGridFSStreamError, MongoInvalidArgumentError, + MongoKerberosError, MongoMissingCredentialsError, MongoMissingDependencyError, MongoNetworkError, MongoNetworkTimeoutError, - MongoSystemError, - MongoServerSelectionError, + MongoNotConnectedError, MongoParseError, - MongoWriteConcernError, MongoRuntimeError, - MongoChangeStreamError, - MongoGridFSStreamError, - MongoGridFSChunkError, - MongoDecompressionError, - MongoBatchReExecutionError, - MongoCursorExhaustedError, - MongoCursorInUseError, - MongoNotConnectedError, - MongoExpiredSessionError, - MongoTransactionError, - MongoKerberosError, MongoServerClosedError, - MongoTopologyClosedError + MongoServerError, + MongoServerSelectionError, + MongoSystemError, + MongoTopologyClosedError, + MongoTransactionError, + MongoWriteConcernError } from './error'; -export { MongoBulkWriteError, BulkWriteOptions, AnyBulkWriteOperation } from './bulk/common'; export { - // Utils - PromiseProvider as Promise, + AbstractCursor, // Actual driver classes exported Admin, - MongoClient, - Db, - Collection, - Logger, - AbstractCursor, AggregationCursor, + CancellationToken, + Collection, + Db, FindCursor, - ListIndexesCursor, - ListCollectionsCursor, GridFSBucket, - CancellationToken + ListCollectionsCursor, + ListIndexesCursor, + Logger, + MongoClient, + // Utils + PromiseProvider as Promise }; // enums -export { ProfilingLevel } from './operations/set_profiling_level'; -export { ServerType, TopologyType } from './sdam/common'; -export { LoggerLevel } from './logger'; -export { AutoEncryptionLoggerLevel } from './deps'; export { BatchType } from './bulk/common'; -export { AuthMechanism } from './cmap/auth/defaultAuthProviders'; -export { CURSOR_FLAGS } from './cursor/abstract_cursor'; +export { AuthMechanism } from './cmap/auth/providers'; export { Compressor } from './cmap/wire_protocol/compression'; -export { ReturnDocument } from './operations/find_and_modify'; +export { CURSOR_FLAGS } from './cursor/abstract_cursor'; +export { AutoEncryptionLoggerLevel } from './deps'; export { ExplainVerbosity } from './explain'; -export { ReadConcernLevel } from './read_concern'; -export { ReadPreferenceMode } from './read_preference'; +export { LoggerLevel } from './logger'; export { ServerApiVersion } from './mongo_client'; export { BSONType } from './mongo_types'; +export { ReturnDocument } from './operations/find_and_modify'; +export { ProfilingLevel } from './operations/set_profiling_level'; +export { ReadConcernLevel } from './read_concern'; +export { ReadPreferenceMode } from './read_preference'; +export { ServerType, TopologyType } from './sdam/common'; // Helper classes -export { WriteConcern } from './write_concern'; export { ReadConcern } from './read_concern'; export { ReadPreference } from './read_preference'; +export { WriteConcern } from './write_concern'; // events export { + CommandFailedEvent, CommandStartedEvent, - CommandSucceededEvent, - CommandFailedEvent + CommandSucceededEvent } from './cmap/command_monitoring_events'; export { - ConnectionCheckOutFailedEvent, - ConnectionCheckOutStartedEvent, ConnectionCheckedInEvent, ConnectionCheckedOutEvent, + ConnectionCheckOutFailedEvent, + ConnectionCheckOutStartedEvent, ConnectionClosedEvent, ConnectionCreatedEvent, ConnectionPoolClearedEvent, @@ -126,11 +125,11 @@ export { ConnectionReadyEvent } from './cmap/connection_pool_events'; export { - ServerHeartbeatStartedEvent, - ServerHeartbeatSucceededEvent, - ServerHeartbeatFailedEvent, ServerClosedEvent, ServerDescriptionChangedEvent, + ServerHeartbeatFailedEvent, + ServerHeartbeatStartedEvent, + ServerHeartbeatSucceededEvent, ServerOpeningEvent, TopologyClosedEvent, TopologyDescriptionChangedEvent, @@ -140,84 +139,97 @@ export { SrvPollingEvent } from './sdam/srv_polling'; // type only exports below, these are removed from emitted JS export type { AdminPrivate } from './admin'; -export type { Document, BSONSerializeOptions } from './bson'; +export type { BSONSerializeOptions, Document } from './bson'; +export type { deserialize, serialize } from './bson'; export type { + BulkResult, + BulkWriteOperationError, + BulkWriteResult, + DeleteManyModel, + DeleteOneModel, InsertOneModel, ReplaceOneModel, - UpdateOneModel, UpdateManyModel, - DeleteOneModel, - DeleteManyModel, - BulkResult, - BulkWriteResult, - WriteError, + UpdateOneModel, WriteConcernError, - BulkWriteOperationError + WriteError } from './bulk/common'; +export type { + Batch, + BulkOperationBase, + BulkOperationPrivate, + FindOperators, + WriteConcernErrorData +} from './bulk/common'; +export type { OrderedBulkOperation } from './bulk/ordered'; +export type { UnorderedBulkOperation } from './bulk/unordered'; export type { ChangeStream, + ChangeStreamCursor, + ChangeStreamCursorOptions, ChangeStreamDocument, - UpdateDescription, ChangeStreamEvents, ChangeStreamOptions, - ChangeStreamCursor, - ResumeToken, - PipeOptions, - ChangeStreamCursorOptions, OperationTime, - ResumeOptions + PipeOptions, + ResumeOptions, + ResumeToken, + UpdateDescription } from './change_stream'; export type { - MongoCredentials, AuthMechanismProperties, + MongoCredentials, MongoCredentialsOptions } from './cmap/auth/mongo_credentials'; export type { - WriteProtocolMessageType, - Query, GetMore, - Msg, KillCursor, + Msg, OpGetMoreOptions, - OpQueryOptions + OpQueryOptions, + Query, + WriteProtocolMessageType } from './cmap/commands'; -export type { Stream, LEGAL_TLS_SOCKET_OPTIONS, LEGAL_TCP_SOCKET_OPTIONS } from './cmap/connect'; +export type { LEGAL_TCP_SOCKET_OPTIONS, LEGAL_TLS_SOCKET_OPTIONS, Stream } from './cmap/connect'; export type { + CommandOptions, Connection, + ConnectionEvents, ConnectionOptions, DestroyOptions, - CommandOptions, - QueryOptions, GetMoreOptions, - ConnectionEvents + QueryOptions } from './cmap/connection'; -export type { ConnectionPoolMetrics } from './cmap/metrics'; export type { CloseOptions, + ConnectionPool, + ConnectionPoolEvents, ConnectionPoolOptions, WaitQueueMember, - WithConnectionCallback, - ConnectionPool, - ConnectionPoolEvents + WithConnectionCallback } from './cmap/connection_pool'; export type { - OperationDescription, MessageStream, - MessageStreamOptions + MessageStreamOptions, + OperationDescription } from './cmap/message_stream'; +export type { ConnectionPoolMetrics } from './cmap/metrics'; export type { StreamDescription, StreamDescriptionOptions } from './cmap/stream_description'; export type { CompressorName } from './cmap/wire_protocol/compression'; -export type { CollectionPrivate, CollectionOptions, ModifyResult } from './collection'; -export type { AggregationCursorOptions } from './cursor/aggregation_cursor'; +export type { CollectionOptions, CollectionPrivate, ModifyResult } from './collection'; +export type { MONGO_CLIENT_EVENTS } from './constants'; export type { - CursorCloseOptions, - CursorStreamOptions, - AbstractCursorOptions, AbstractCursorEvents, - CursorFlag + AbstractCursorOptions, + CursorCloseOptions, + CursorFlag, + CursorStreamOptions } from './cursor/abstract_cursor'; -export type { DbPrivate, DbOptions } from './db'; -export type { AutoEncryptionOptions, AutoEncrypter } from './deps'; +export type { InternalAbstractCursorOptions } from './cursor/abstract_cursor'; +export type { AggregationCursorOptions } from './cursor/aggregation_cursor'; +export type { DbOptions, DbPrivate } from './db'; +export type { AutoEncrypter, AutoEncryptionOptions } from './deps'; +export type { Encrypter, EncrypterOptions } from './encrypter'; export type { AnyError, ErrorDescription, MongoNetworkErrorOptions } from './error'; export type { Explain, ExplainOptions, ExplainVerbosityLike } from './explain'; export type { @@ -227,46 +239,82 @@ export type { GridFSBucketReadStreamPrivate, GridFSFile } from './gridfs/download'; -export type { GridFSBucketOptions, GridFSBucketPrivate, GridFSBucketEvents } from './gridfs/index'; +export type { GridFSBucketEvents, GridFSBucketOptions, GridFSBucketPrivate } from './gridfs/index'; export type { - GridFSBucketWriteStreamOptions, GridFSBucketWriteStream, + GridFSBucketWriteStreamOptions, GridFSChunk } from './gridfs/upload'; -export type { LoggerOptions, LoggerFunction } from './logger'; +export type { LoggerFunction, LoggerOptions } from './logger'; export type { - MongoClientEvents, - MongoClientPrivate, - MongoClientOptions, - WithSessionCallback, - PkFactory, Auth, DriverInfo, + MongoClientEvents, + MongoClientOptions, + MongoClientPrivate, MongoOptions, + PkFactory, ServerApi, SupportedNodeConnectionOptions, + SupportedSocketOptions, SupportedTLSConnectionOptions, SupportedTLSSocketOptions, - SupportedSocketOptions + WithSessionCallback } from './mongo_client'; export type { - TypedEventEmitter, - EventsDescription, CommonEvents, - GenericListener + EventsDescription, + GenericListener, + TypedEventEmitter +} from './mongo_types'; +export type { + AcceptedFields, + AddToSetOperators, + AlternativeType, + ArrayOperator, + BitwiseFilter, + BSONTypeAlias, + Condition, + EnhancedOmit, + Filter, + FilterOperations, + FilterOperators, + Flatten, + InferIdType, + IntegerType, + IsAny, + KeysOfAType, + KeysOfOtherType, + MatchKeysAndValues, + NotAcceptedFields, + NumericType, + OneOrMore, + OnlyFieldsOfType, + OptionalId, + Projection, + ProjectionOperators, + PullAllOperator, + PullOperator, + PushOperator, + RegExpOrString, + RootFilterOperators, + SchemaMember, + SetFields, + UpdateFilter, + WithId, + WithoutId } from './mongo_types'; export type { AddUserOptions, RoleSpecification } from './operations/add_user'; export type { - AggregateOptions, AggregateOperation, + AggregateOptions, DB_AGGREGATE_COLLECTION } from './operations/aggregate'; -export type { MONGO_CLIENT_EVENTS } from './operations/connect'; export type { - CommandOperationOptions, - OperationParent, + CollationOptions, CommandOperation, - CollationOptions + CommandOperationOptions, + OperationParent } from './operations/command'; export type { IndexInformationOptions } from './operations/common_functions'; export type { CountOptions } from './operations/count'; @@ -280,85 +328,85 @@ export type { DistinctOptions } from './operations/distinct'; export type { DropCollectionOptions, DropDatabaseOptions } from './operations/drop'; export type { EstimatedDocumentCountOptions } from './operations/estimated_document_count'; export type { EvalOptions } from './operations/eval'; +export type { ExecutionResult } from './operations/execute_operation'; export type { FindOptions } from './operations/find'; -export type { Sort, SortDirection, SortDirectionForCmd, SortForCmd } from './sort'; export type { FindOneAndDeleteOptions, FindOneAndReplaceOptions, FindOneAndUpdateOptions } from './operations/find_and_modify'; export type { - IndexSpecification, CreateIndexesOptions, - IndexDescription, DropIndexesOptions, - ListIndexesOptions, - IndexDirection + IndexDescription, + IndexDirection, + IndexSpecification, + ListIndexesOptions } from './operations/indexes'; -export type { InsertOneResult, InsertOneOptions, InsertManyResult } from './operations/insert'; -export type { ListCollectionsOptions, CollectionInfo } from './operations/list_collections'; -export type { ListDatabasesResult, ListDatabasesOptions } from './operations/list_databases'; +export type { InsertManyResult, InsertOneOptions, InsertOneResult } from './operations/insert'; +export type { CollectionInfo, ListCollectionsOptions } from './operations/list_collections'; +export type { ListDatabasesOptions, ListDatabasesResult } from './operations/list_databases'; export type { + FinalizeFunction, MapFunction, - ReduceFunction, MapReduceOptions, - FinalizeFunction + ReduceFunction } from './operations/map_reduce'; -export type { Hint, OperationOptions, AbstractOperation } from './operations/operation'; +export type { AbstractOperation, Hint, OperationOptions } from './operations/operation'; export type { ProfilingLevelOptions } from './operations/profiling_level'; export type { RemoveUserOptions } from './operations/remove_user'; export type { RenameOptions } from './operations/rename'; export type { RunCommandOptions } from './operations/run_command'; export type { SetProfilingLevelOptions } from './operations/set_profiling_level'; export type { + CollStats, CollStatsOptions, DbStatsOptions, - CollStats, WiredTigerData } from './operations/stats'; export type { - UpdateResult, - UpdateOptions, ReplaceOptions, + UpdateOptions, + UpdateResult, UpdateStatement } from './operations/update'; export type { ValidateCollectionOptions } from './operations/validate_collection'; export type { ReadConcernLike } from './read_concern'; export type { + HedgeOptions, + ReadPreferenceFromOptions, ReadPreferenceLike, - ReadPreferenceOptions, ReadPreferenceLikeOptions, - ReadPreferenceFromOptions, - HedgeOptions + ReadPreferenceOptions } from './read_preference'; export type { ClusterTime, TimerQueue } from './sdam/common'; export type { Monitor, MonitorEvents, - MonitorPrivate, MonitorOptions, + MonitorPrivate, RTTPinger, RTTPingerOptions } from './sdam/monitor'; -export type { Server, ServerEvents, ServerPrivate, ServerOptions } from './sdam/server'; +export type { Server, ServerEvents, ServerOptions, ServerPrivate } from './sdam/server'; export type { - TopologyVersion, - TagSet, ServerDescription, - ServerDescriptionOptions + ServerDescriptionOptions, + TagSet, + TopologyVersion } from './sdam/server_description'; export type { ServerSelector } from './sdam/server_selection'; export type { SrvPoller, SrvPollerEvents, SrvPollerOptions } from './sdam/srv_polling'; export type { + ConnectOptions, + SelectServerOptions, + ServerCapabilities, + ServerSelectionCallback, + ServerSelectionRequest, Topology, TopologyEvents, - TopologyPrivate, - ServerSelectionRequest, TopologyOptions, - ServerCapabilities, - ConnectOptions, - SelectServerOptions, - ServerSelectionCallback + TopologyPrivate } from './sdam/topology'; export type { TopologyDescription, TopologyDescriptionOptions } from './sdam/topology_description'; export type { @@ -366,70 +414,21 @@ export type { ClientSessionEvents, ClientSessionOptions, EndSessionOptions, - ServerSessionPool, ServerSession, ServerSessionId, + ServerSessionPool, WithTransactionCallback } from './sessions'; -export type { TransactionOptions, Transaction, TxnState } from './transactions'; +export type { Sort, SortDirection, SortDirectionForCmd, SortForCmd } from './sort'; +export type { Transaction, TransactionOptions, TxnState } from './transactions'; export type { + BufferPool, Callback, ClientMetadata, ClientMetadataOptions, - MongoDBNamespace, - InterruptibleAsyncInterval, - BufferPool, + EventEmitterWithState, HostAddress, - EventEmitterWithState + InterruptibleAsyncInterval, + MongoDBNamespace } from './utils'; export type { W, WriteConcernOptions, WriteConcernSettings } from './write_concern'; -export type { ExecutionResult } from './operations/execute_operation'; -export type { InternalAbstractCursorOptions } from './cursor/abstract_cursor'; -export type { - BulkOperationBase, - BulkOperationPrivate, - FindOperators, - Batch, - WriteConcernErrorData -} from './bulk/common'; -export type { OrderedBulkOperation } from './bulk/ordered'; -export type { UnorderedBulkOperation } from './bulk/unordered'; -export type { Encrypter, EncrypterOptions } from './encrypter'; -export type { - EnhancedOmit, - WithId, - OptionalId, - WithoutId, - UpdateFilter, - Filter, - Projection, - InferIdType, - ProjectionOperators, - Flatten, - SchemaMember, - Condition, - RootFilterOperators, - AlternativeType, - FilterOperators, - BSONTypeAlias, - BitwiseFilter, - RegExpOrString, - OnlyFieldsOfType, - NumericType, - IntegerType, - MatchKeysAndValues, - SetFields, - PullOperator, - PushOperator, - PullAllOperator, - AcceptedFields, - NotAcceptedFields, - AddToSetOperators, - ArrayOperator, - FilterOperations, - KeysOfAType, - KeysOfOtherType, - IsAny, - OneOrMore -} from './mongo_types'; -export type { serialize, deserialize } from './bson'; diff --git a/src/logger.ts b/src/logger.ts index e51540215e..22609c868b 100644 --- a/src/logger.ts +++ b/src/logger.ts @@ -1,6 +1,7 @@ import { format } from 'util'; -import { enumToString } from './utils'; + import { MongoInvalidArgumentError } from './error'; +import { enumToString } from './utils'; // Filters for classes const classFilters: any = {}; diff --git a/src/mongo_client.ts b/src/mongo_client.ts index 7e4ccfef9b..d1c031040f 100644 --- a/src/mongo_client.ts +++ b/src/mongo_client.ts @@ -1,42 +1,44 @@ -import { Db, DbOptions } from './db'; +import type { TcpNetConnectOpts } from 'net'; +import type { ConnectionOptions as TLSConnectionOptions, TLSSocketOptions } from 'tls'; + +import { BSONSerializeOptions, Document, resolveBSONOptions } from './bson'; import { ChangeStream, ChangeStreamOptions } from './change_stream'; -import type { ReadPreference, ReadPreferenceMode } from './read_preference'; +import type { AuthMechanismProperties, MongoCredentials } from './cmap/auth/mongo_credentials'; +import type { AuthMechanism } from './cmap/auth/providers'; +import type { LEGAL_TCP_SOCKET_OPTIONS, LEGAL_TLS_SOCKET_OPTIONS } from './cmap/connect'; +import type { Connection } from './cmap/connection'; +import type { CompressorName } from './cmap/wire_protocol/compression'; +import { parseOptions } from './connection_string'; +import type { MONGO_CLIENT_EVENTS } from './constants'; +import { Db, DbOptions } from './db'; +import type { AutoEncrypter, AutoEncryptionOptions } from './deps'; +import type { Encrypter } from './encrypter'; import { AnyError, - MongoRuntimeError, MongoInvalidArgumentError, - MongoNotConnectedError + MongoNotConnectedError, + MongoRuntimeError } from './error'; -import type { W, WriteConcern } from './write_concern'; +import type { Logger, LoggerLevel } from './logger'; +import { TypedEventEmitter } from './mongo_types'; +import { connect } from './operations/connect'; +import { PromiseProvider } from './promise_provider'; +import type { ReadConcern, ReadConcernLevel, ReadConcernLike } from './read_concern'; +import type { ReadPreference, ReadPreferenceMode } from './read_preference'; +import type { TagSet } from './sdam/server_description'; +import type { SrvPoller } from './sdam/srv_polling'; +import type { Topology, TopologyEvents } from './sdam/topology'; +import type { ClientSession, ClientSessionOptions } from './sessions'; import { - maybePromise, - MongoDBNamespace, Callback, - resolveOptions, ClientMetadata, + HostAddress, + maybePromise, + MongoDBNamespace, ns, - HostAddress + resolveOptions } from './utils'; -import { connect, MONGO_CLIENT_EVENTS } from './operations/connect'; -import { PromiseProvider } from './promise_provider'; -import type { Logger, LoggerLevel } from './logger'; -import type { ReadConcern, ReadConcernLevel, ReadConcernLike } from './read_concern'; -import { BSONSerializeOptions, Document, resolveBSONOptions } from './bson'; -import type { AutoEncrypter, AutoEncryptionOptions } from './deps'; -import type { AuthMechanism } from './cmap/auth/defaultAuthProviders'; -import type { Topology, TopologyEvents } from './sdam/topology'; -import type { ClientSession, ClientSessionOptions } from './sessions'; -import type { TagSet } from './sdam/server_description'; -import type { AuthMechanismProperties, MongoCredentials } from './cmap/auth/mongo_credentials'; -import { parseOptions } from './connection_string'; -import type { CompressorName } from './cmap/wire_protocol/compression'; -import type { TLSSocketOptions, ConnectionOptions as TLSConnectionOptions } from 'tls'; -import type { TcpNetConnectOpts } from 'net'; -import type { SrvPoller } from './sdam/srv_polling'; -import type { Connection } from './cmap/connection'; -import type { LEGAL_TLS_SOCKET_OPTIONS, LEGAL_TCP_SOCKET_OPTIONS } from './cmap/connect'; -import type { Encrypter } from './encrypter'; -import { TypedEventEmitter } from './mongo_types'; +import type { W, WriteConcern } from './write_concern'; /** @public */ export const ServerApiVersion = Object.freeze({ diff --git a/src/mongo_types.ts b/src/mongo_types.ts index cb221ab78e..fd06ae7831 100644 --- a/src/mongo_types.ts +++ b/src/mongo_types.ts @@ -1,15 +1,16 @@ +import { EventEmitter } from 'events'; + import type { Binary, - Document, - ObjectId, BSONRegExp, - Timestamp, Decimal128, + Document, Double, Int32, - Long + Long, + ObjectId, + Timestamp } from './bson'; -import { EventEmitter } from 'events'; import type { Sort } from './sort'; /** @internal */ diff --git a/src/operations/add_user.ts b/src/operations/add_user.ts index 4dd56acc5d..545dc31bb0 100644 --- a/src/operations/add_user.ts +++ b/src/operations/add_user.ts @@ -1,12 +1,13 @@ import * as crypto from 'crypto'; -import { Aspect, defineAspects } from './operation'; -import { CommandOperation, CommandOperationOptions } from './command'; -import { MongoInvalidArgumentError } from '../error'; -import { Callback, emitWarningOnce, getTopology } from '../utils'; + import type { Document } from '../bson'; -import type { Server } from '../sdam/server'; import type { Db } from '../db'; +import { MongoInvalidArgumentError } from '../error'; +import type { Server } from '../sdam/server'; import type { ClientSession } from '../sessions'; +import { Callback, emitWarningOnce, getTopology } from '../utils'; +import { CommandOperation, CommandOperationOptions } from './command'; +import { Aspect, defineAspects } from './operation'; /** @public */ export interface RoleSpecification { diff --git a/src/operations/aggregate.ts b/src/operations/aggregate.ts index ca899a896b..631926ce71 100644 --- a/src/operations/aggregate.ts +++ b/src/operations/aggregate.ts @@ -1,11 +1,11 @@ -import { CommandOperation, CommandOperationOptions, CollationOptions } from './command'; -import { MongoInvalidArgumentError } from '../error'; -import { maxWireVersion, MongoDBNamespace } from '../utils'; -import { Aspect, defineAspects, Hint } from './operation'; -import type { Callback } from '../utils'; import type { Document } from '../bson'; +import { MongoInvalidArgumentError } from '../error'; import type { Server } from '../sdam/server'; import type { ClientSession } from '../sessions'; +import type { Callback } from '../utils'; +import { maxWireVersion, MongoDBNamespace } from '../utils'; +import { CollationOptions, CommandOperation, CommandOperationOptions } from './command'; +import { Aspect, defineAspects, Hint } from './operation'; /** @internal */ export const DB_AGGREGATE_COLLECTION = 1 as const; diff --git a/src/operations/bulk_write.ts b/src/operations/bulk_write.ts index 8ab1f913e0..990ed3a531 100644 --- a/src/operations/bulk_write.ts +++ b/src/operations/bulk_write.ts @@ -1,14 +1,14 @@ -import { Aspect, defineAspects, AbstractOperation } from './operation'; -import type { Callback } from '../utils'; -import type { Collection } from '../collection'; import type { + AnyBulkWriteOperation, BulkOperationBase, - BulkWriteResult, BulkWriteOptions, - AnyBulkWriteOperation + BulkWriteResult } from '../bulk/common'; +import type { Collection } from '../collection'; import type { Server } from '../sdam/server'; import type { ClientSession } from '../sessions'; +import type { Callback } from '../utils'; +import { AbstractOperation, Aspect, defineAspects } from './operation'; /** @internal */ export class BulkWriteOperation extends AbstractOperation { diff --git a/src/operations/collections.ts b/src/operations/collections.ts index fbdf417512..d7f0381209 100644 --- a/src/operations/collections.ts +++ b/src/operations/collections.ts @@ -1,9 +1,9 @@ -import { AbstractOperation, OperationOptions } from './operation'; import { Collection } from '../collection'; -import type { Callback } from '../utils'; import type { Db } from '../db'; import type { Server } from '../sdam/server'; import type { ClientSession } from '../sessions'; +import type { Callback } from '../utils'; +import { AbstractOperation, OperationOptions } from './operation'; export interface CollectionsOptions extends OperationOptions { nameOnly?: boolean; diff --git a/src/operations/command.ts b/src/operations/command.ts index 0d5ae4e1b0..2abb500b5e 100644 --- a/src/operations/command.ts +++ b/src/operations/command.ts @@ -1,16 +1,22 @@ -import { Aspect, AbstractOperation, OperationOptions } from './operation'; +import type { BSONSerializeOptions, Document } from '../bson'; +import { MongoCompatibilityError, MongoInvalidArgumentError } from '../error'; +import { Explain, ExplainOptions } from '../explain'; +import type { Logger } from '../logger'; import { ReadConcern } from '../read_concern'; -import { WriteConcern, WriteConcernOptions } from '../write_concern'; -import { maxWireVersion, MongoDBNamespace, Callback, decorateWithExplain } from '../utils'; import type { ReadPreference } from '../read_preference'; -import { ClientSession, commandSupportsReadConcern } from '../sessions'; -import { MongoInvalidArgumentError, MongoCompatibilityError } from '../error'; -import type { Logger } from '../logger'; import type { Server } from '../sdam/server'; -import type { BSONSerializeOptions, Document } from '../bson'; -import type { ReadConcernLike } from './../read_concern'; -import { Explain, ExplainOptions } from '../explain'; import { MIN_SECONDARY_WRITE_WIRE_VERSION } from '../sdam/server_selection'; +import type { ClientSession } from '../sessions'; +import { + Callback, + commandSupportsReadConcern, + decorateWithExplain, + maxWireVersion, + MongoDBNamespace +} from '../utils'; +import { WriteConcern, WriteConcernOptions } from '../write_concern'; +import type { ReadConcernLike } from './../read_concern'; +import { AbstractOperation, Aspect, OperationOptions } from './operation'; const SUPPORTS_WRITE_CONCERN_AND_COLLATION = 5; diff --git a/src/operations/common_functions.ts b/src/operations/common_functions.ts index f056f32a64..5ce2aa1304 100644 --- a/src/operations/common_functions.ts +++ b/src/operations/common_functions.ts @@ -1,10 +1,10 @@ -import { MongoTopologyClosedError } from '../error'; -import { Callback, getTopology } from '../utils'; import type { Document } from '../bson'; +import type { Collection } from '../collection'; import type { Db } from '../db'; -import type { ClientSession } from '../sessions'; +import { MongoTopologyClosedError } from '../error'; import type { ReadPreference } from '../read_preference'; -import type { Collection } from '../collection'; +import type { ClientSession } from '../sessions'; +import { Callback, getTopology } from '../utils'; /** @public */ export interface IndexInformationOptions { diff --git a/src/operations/connect.ts b/src/operations/connect.ts index 7a1241130b..f2685426df 100644 --- a/src/operations/connect.ts +++ b/src/operations/connect.ts @@ -1,19 +1,9 @@ -import { MongoRuntimeError, MongoInvalidArgumentError } from '../error'; -import { Topology, TOPOLOGY_EVENTS } from '../sdam/topology'; import { resolveSRVRecord } from '../connection_string'; -import type { Callback } from '../utils'; +import { MONGO_CLIENT_EVENTS } from '../constants'; +import { MongoInvalidArgumentError, MongoRuntimeError } from '../error'; import type { MongoClient, MongoOptions } from '../mongo_client'; -import { CMAP_EVENTS } from '../cmap/connection_pool'; -import { APM_EVENTS } from '../cmap/connection'; -import { HEARTBEAT_EVENTS } from '../sdam/server'; - -/** @public */ -export const MONGO_CLIENT_EVENTS = [ - ...CMAP_EVENTS, - ...APM_EVENTS, - ...TOPOLOGY_EVENTS, - ...HEARTBEAT_EVENTS -] as const; +import { Topology } from '../sdam/topology'; +import type { Callback } from '../utils'; export function connect( mongoClient: MongoClient, diff --git a/src/operations/count.ts b/src/operations/count.ts index 34f4156a8d..b467514090 100644 --- a/src/operations/count.ts +++ b/src/operations/count.ts @@ -1,10 +1,10 @@ -import { Aspect, defineAspects } from './operation'; -import { CommandOperation, CommandOperationOptions } from './command'; -import type { Callback, MongoDBNamespace } from '../utils'; import type { Document } from '../bson'; -import type { Server } from '../sdam/server'; import type { Collection } from '../collection'; +import type { Server } from '../sdam/server'; import type { ClientSession } from '../sessions'; +import type { Callback, MongoDBNamespace } from '../utils'; +import { CommandOperation, CommandOperationOptions } from './command'; +import { Aspect, defineAspects } from './operation'; /** @public */ export interface CountOptions extends CommandOperationOptions { diff --git a/src/operations/count_documents.ts b/src/operations/count_documents.ts index d7e8c3e099..8b490ce078 100644 --- a/src/operations/count_documents.ts +++ b/src/operations/count_documents.ts @@ -1,9 +1,9 @@ -import { AggregateOperation, AggregateOptions } from './aggregate'; -import type { Callback } from '../utils'; import type { Document } from '../bson'; -import type { Server } from '../sdam/server'; import type { Collection } from '../collection'; +import type { Server } from '../sdam/server'; import type { ClientSession } from '../sessions'; +import type { Callback } from '../utils'; +import { AggregateOperation, AggregateOptions } from './aggregate'; /** @public */ export interface CountDocumentsOptions extends AggregateOptions { diff --git a/src/operations/create_collection.ts b/src/operations/create_collection.ts index 7f350e48a8..659d3ebe9d 100644 --- a/src/operations/create_collection.ts +++ b/src/operations/create_collection.ts @@ -1,12 +1,12 @@ -import { CommandOperation, CommandOperationOptions } from './command'; -import { Aspect, defineAspects } from './operation'; -import { Collection } from '../collection'; -import type { Callback } from '../utils'; import type { Document } from '../bson'; -import type { Server } from '../sdam/server'; +import { Collection } from '../collection'; import type { Db } from '../db'; import type { PkFactory } from '../mongo_client'; +import type { Server } from '../sdam/server'; import type { ClientSession } from '../sessions'; +import type { Callback } from '../utils'; +import { CommandOperation, CommandOperationOptions } from './command'; +import { Aspect, defineAspects } from './operation'; const ILLEGAL_COMMAND_FIELDS = new Set([ 'w', diff --git a/src/operations/delete.ts b/src/operations/delete.ts index c8c15b74bd..20e7d61a49 100644 --- a/src/operations/delete.ts +++ b/src/operations/delete.ts @@ -1,12 +1,12 @@ -import { defineAspects, Aspect, Hint } from './operation'; -import { CommandOperation, CommandOperationOptions, CollationOptions } from './command'; -import { Callback, maxWireVersion, MongoDBNamespace, collationNotSupported } from '../utils'; import type { Document } from '../bson'; -import type { Server } from '../sdam/server'; import type { Collection } from '../collection'; +import { MongoCompatibilityError, MongoServerError } from '../error'; +import type { Server } from '../sdam/server'; import type { ClientSession } from '../sessions'; -import { MongoServerError, MongoCompatibilityError } from '../error'; +import { Callback, collationNotSupported, maxWireVersion, MongoDBNamespace } from '../utils'; import type { WriteConcernOptions } from '../write_concern'; +import { CollationOptions, CommandOperation, CommandOperationOptions } from './command'; +import { Aspect, defineAspects, Hint } from './operation'; /** @public */ export interface DeleteOptions extends CommandOperationOptions, WriteConcernOptions { diff --git a/src/operations/distinct.ts b/src/operations/distinct.ts index 5524b2b12f..29f6619c7c 100644 --- a/src/operations/distinct.ts +++ b/src/operations/distinct.ts @@ -1,11 +1,11 @@ -import { Aspect, defineAspects } from './operation'; -import { CommandOperation, CommandOperationOptions } from './command'; -import { decorateWithCollation, decorateWithReadConcern, Callback, maxWireVersion } from '../utils'; import type { Document } from '../bson'; -import type { Server } from '../sdam/server'; import type { Collection } from '../collection'; import { MongoCompatibilityError } from '../error'; +import type { Server } from '../sdam/server'; import type { ClientSession } from '../sessions'; +import { Callback, decorateWithCollation, decorateWithReadConcern, maxWireVersion } from '../utils'; +import { CommandOperation, CommandOperationOptions } from './command'; +import { Aspect, defineAspects } from './operation'; /** @public */ export type DistinctOptions = CommandOperationOptions; diff --git a/src/operations/drop.ts b/src/operations/drop.ts index f8a375746c..2f42bb8c19 100644 --- a/src/operations/drop.ts +++ b/src/operations/drop.ts @@ -1,9 +1,9 @@ -import { Aspect, defineAspects } from './operation'; -import { CommandOperation, CommandOperationOptions } from './command'; -import type { Callback } from '../utils'; -import type { Server } from '../sdam/server'; import type { Db } from '../db'; +import type { Server } from '../sdam/server'; import type { ClientSession } from '../sessions'; +import type { Callback } from '../utils'; +import { CommandOperation, CommandOperationOptions } from './command'; +import { Aspect, defineAspects } from './operation'; /** @public */ export type DropCollectionOptions = CommandOperationOptions; diff --git a/src/operations/estimated_document_count.ts b/src/operations/estimated_document_count.ts index 90261cb308..ef9b76a0d5 100644 --- a/src/operations/estimated_document_count.ts +++ b/src/operations/estimated_document_count.ts @@ -1,11 +1,11 @@ -import { Aspect, defineAspects } from './operation'; -import { CommandOperation, CommandOperationOptions } from './command'; -import { Callback, maxWireVersion } from '../utils'; import type { Document } from '../bson'; -import type { Server } from '../sdam/server'; import type { Collection } from '../collection'; -import type { ClientSession } from '../sessions'; import type { MongoServerError } from '../error'; +import type { Server } from '../sdam/server'; +import type { ClientSession } from '../sessions'; +import { Callback, maxWireVersion } from '../utils'; +import { CommandOperation, CommandOperationOptions } from './command'; +import { Aspect, defineAspects } from './operation'; /** @public */ export interface EstimatedDocumentCountOptions extends CommandOperationOptions { diff --git a/src/operations/eval.ts b/src/operations/eval.ts index 39749124f7..8a1609d873 100644 --- a/src/operations/eval.ts +++ b/src/operations/eval.ts @@ -1,12 +1,12 @@ -import { CommandOperation, CommandOperationOptions } from './command'; import { Code, Document } from '../bson'; -import { ReadPreference } from '../read_preference'; +import type { Collection } from '../collection'; +import type { Db } from '../db'; import { MongoServerError } from '../error'; -import type { Callback } from '../utils'; +import { ReadPreference } from '../read_preference'; import type { Server } from '../sdam/server'; -import type { Db } from '../db'; -import type { Collection } from '../collection'; import type { ClientSession } from '../sessions'; +import type { Callback } from '../utils'; +import { CommandOperation, CommandOperationOptions } from './command'; /** @public */ export interface EvalOptions extends CommandOperationOptions { diff --git a/src/operations/execute_operation.ts b/src/operations/execute_operation.ts index 12149c2c61..ea1eba4f2f 100644 --- a/src/operations/execute_operation.ts +++ b/src/operations/execute_operation.ts @@ -1,27 +1,26 @@ -import { ReadPreference } from '../read_preference'; +import type { Document } from '../bson'; import { - MongoError, isRetryableError, + MongoCompatibilityError, MONGODB_ERROR_CODES, - MongoRuntimeError, + MongoError, + MongoExpiredSessionError, MongoNetworkError, - MongoCompatibilityError, + MongoRuntimeError, MongoServerError, - MongoExpiredSessionError, MongoTransactionError } from '../error'; -import { Aspect, AbstractOperation } from './operation'; -import { maxWireVersion, maybePromise, Callback } from '../utils'; +import { ReadPreference } from '../read_preference'; import type { Server } from '../sdam/server'; -import type { Topology } from '../sdam/topology'; -import type { ClientSession } from '../sessions'; -import type { Document } from '../bson'; -import { supportsRetryableWrites } from '../utils'; import { sameServerSelector, secondaryWritableServerSelector, ServerSelector } from '../sdam/server_selection'; +import type { Topology } from '../sdam/topology'; +import type { ClientSession } from '../sessions'; +import { Callback, maxWireVersion, maybePromise, supportsRetryableWrites } from '../utils'; +import { AbstractOperation, Aspect } from './operation'; const MMAPv1_RETRY_WRITES_ERROR_CODE = MONGODB_ERROR_CODES.IllegalOperation; const MMAPv1_RETRY_WRITES_ERROR_MESSAGE = diff --git a/src/operations/find.ts b/src/operations/find.ts index f832eeafcf..f557e4ba2c 100644 --- a/src/operations/find.ts +++ b/src/operations/find.ts @@ -1,20 +1,20 @@ -import { Aspect, defineAspects, Hint } from './operation'; -import { - maxWireVersion, - MongoDBNamespace, - Callback, - normalizeHintField, - decorateWithExplain -} from '../utils'; -import { MongoInvalidArgumentError, MongoCompatibilityError } from '../error'; import type { Document } from '../bson'; -import type { Server } from '../sdam/server'; -import type { Collection } from '../collection'; -import { CommandOperation, CommandOperationOptions, CollationOptions } from './command'; -import { Sort, formatSort } from '../sort'; import { isSharded } from '../cmap/wire_protocol/shared'; +import type { Collection } from '../collection'; +import { MongoCompatibilityError, MongoInvalidArgumentError } from '../error'; import { ReadConcern } from '../read_concern'; +import type { Server } from '../sdam/server'; import type { ClientSession } from '../sessions'; +import { formatSort, Sort } from '../sort'; +import { + Callback, + decorateWithExplain, + maxWireVersion, + MongoDBNamespace, + normalizeHintField +} from '../utils'; +import { CollationOptions, CommandOperation, CommandOperationOptions } from './command'; +import { Aspect, defineAspects, Hint } from './operation'; /** * @public diff --git a/src/operations/find_and_modify.ts b/src/operations/find_and_modify.ts index eb04588c81..77314bf144 100644 --- a/src/operations/find_and_modify.ts +++ b/src/operations/find_and_modify.ts @@ -1,14 +1,14 @@ -import { ReadPreference } from '../read_preference'; -import { maxWireVersion, decorateWithCollation, hasAtomicOperators, Callback } from '../utils'; -import { MongoInvalidArgumentError, MongoCompatibilityError } from '../error'; -import { CommandOperation, CommandOperationOptions } from './command'; -import { defineAspects, Aspect } from './operation'; import type { Document } from '../bson'; -import type { Server } from '../sdam/server'; import type { Collection } from '../collection'; -import { Sort, SortForCmd, formatSort } from '../sort'; +import { MongoCompatibilityError, MongoInvalidArgumentError } from '../error'; +import { ReadPreference } from '../read_preference'; +import type { Server } from '../sdam/server'; import type { ClientSession } from '../sessions'; +import { formatSort, Sort, SortForCmd } from '../sort'; +import { Callback, decorateWithCollation, hasAtomicOperators, maxWireVersion } from '../utils'; import type { WriteConcern, WriteConcernSettings } from '../write_concern'; +import { CommandOperation, CommandOperationOptions } from './command'; +import { Aspect, defineAspects } from './operation'; /** @public */ export const ReturnDocument = Object.freeze({ diff --git a/src/operations/get_more.ts b/src/operations/get_more.ts index a11824b64f..a1b3fce124 100644 --- a/src/operations/get_more.ts +++ b/src/operations/get_more.ts @@ -1,9 +1,9 @@ import type { Document, Long } from '../bson'; import { MongoRuntimeError } from '../error'; -import type { Callback, MongoDBNamespace } from '../utils'; import type { Server } from '../sdam/server'; -import { Aspect, AbstractOperation, OperationOptions, defineAspects } from './operation'; import type { ClientSession } from '../sessions'; +import type { Callback, MongoDBNamespace } from '../utils'; +import { AbstractOperation, Aspect, defineAspects, OperationOptions } from './operation'; /** * @public diff --git a/src/operations/indexes.ts b/src/operations/indexes.ts index 91b479f1b9..d4a8cae1ba 100644 --- a/src/operations/indexes.ts +++ b/src/operations/indexes.ts @@ -1,28 +1,28 @@ -import { indexInformation, IndexInformationOptions } from './common_functions'; -import { AbstractOperation, Aspect, defineAspects } from './operation'; -import { MONGODB_ERROR_CODES, MongoServerError, MongoCompatibilityError } from '../error'; +import type { Document } from '../bson'; +import type { Collection } from '../collection'; +import { AbstractCursor } from '../cursor/abstract_cursor'; +import type { Db } from '../db'; +import { MongoCompatibilityError, MONGODB_ERROR_CODES, MongoServerError } from '../error'; +import type { OneOrMore } from '../mongo_types'; +import { ReadPreference } from '../read_preference'; +import type { Server } from '../sdam/server'; +import type { ClientSession } from '../sessions'; import { + Callback, + getTopology, maxWireVersion, - parseIndexOptions, MongoDBNamespace, - Callback, - getTopology + parseIndexOptions } from '../utils'; import { + CollationOptions, CommandOperation, CommandOperationOptions, - OperationParent, - CollationOptions + OperationParent } from './command'; -import { ReadPreference } from '../read_preference'; -import type { Server } from '../sdam/server'; -import type { Document } from '../bson'; -import type { Collection } from '../collection'; -import type { Db } from '../db'; -import { AbstractCursor } from '../cursor/abstract_cursor'; -import type { ClientSession } from '../sessions'; +import { indexInformation, IndexInformationOptions } from './common_functions'; import { executeOperation, ExecutionResult } from './execute_operation'; -import type { OneOrMore } from '../mongo_types'; +import { AbstractOperation, Aspect, defineAspects } from './operation'; const LIST_INDEXES_WIRE_VERSION = 3; const VALID_INDEX_OPTIONS = new Set([ diff --git a/src/operations/insert.ts b/src/operations/insert.ts index 10af5cee81..dad5dba93d 100644 --- a/src/operations/insert.ts +++ b/src/operations/insert.ts @@ -1,16 +1,16 @@ -import { MongoServerError, MongoInvalidArgumentError } from '../error'; -import { defineAspects, Aspect, AbstractOperation } from './operation'; -import { CommandOperation, CommandOperationOptions } from './command'; -import { prepareDocs } from './common_functions'; -import type { Callback, MongoDBNamespace } from '../utils'; -import type { Server } from '../sdam/server'; -import type { Collection } from '../collection'; import type { Document } from '../bson'; import type { BulkWriteOptions } from '../bulk/common'; -import { WriteConcern } from '../write_concern'; +import type { Collection } from '../collection'; +import { MongoInvalidArgumentError, MongoServerError } from '../error'; +import type { InferIdType } from '../mongo_types'; +import type { Server } from '../sdam/server'; import type { ClientSession } from '../sessions'; +import type { Callback, MongoDBNamespace } from '../utils'; +import { WriteConcern } from '../write_concern'; import { BulkWriteOperation } from './bulk_write'; -import type { InferIdType } from '../mongo_types'; +import { CommandOperation, CommandOperationOptions } from './command'; +import { prepareDocs } from './common_functions'; +import { AbstractOperation, Aspect, defineAspects } from './operation'; /** @internal */ export class InsertOperation extends CommandOperation { diff --git a/src/operations/is_capped.ts b/src/operations/is_capped.ts index 4adc5f58e8..8d6a48a821 100644 --- a/src/operations/is_capped.ts +++ b/src/operations/is_capped.ts @@ -1,9 +1,9 @@ -import type { Callback } from '../utils'; import type { Collection } from '../collection'; -import { OperationOptions, AbstractOperation } from './operation'; +import { MongoAPIError } from '../error'; import type { Server } from '../sdam/server'; import type { ClientSession } from '../sessions'; -import { MongoAPIError } from '../error'; +import type { Callback } from '../utils'; +import { AbstractOperation, OperationOptions } from './operation'; /** @internal */ export class IsCappedOperation extends AbstractOperation { diff --git a/src/operations/list_collections.ts b/src/operations/list_collections.ts index b9e704cfd5..16ed86d4d6 100644 --- a/src/operations/list_collections.ts +++ b/src/operations/list_collections.ts @@ -1,13 +1,13 @@ -import { CommandOperation, CommandOperationOptions } from './command'; -import { Aspect, defineAspects } from './operation'; -import { maxWireVersion, Callback, getTopology, MongoDBNamespace } from '../utils'; -import * as CONSTANTS from '../constants'; import type { Binary, Document } from '../bson'; -import type { Server } from '../sdam/server'; -import type { Db } from '../db'; +import * as CONSTANTS from '../constants'; import { AbstractCursor } from '../cursor/abstract_cursor'; +import type { Db } from '../db'; +import type { Server } from '../sdam/server'; import type { ClientSession } from '../sessions'; +import { Callback, getTopology, maxWireVersion, MongoDBNamespace } from '../utils'; +import { CommandOperation, CommandOperationOptions } from './command'; import { executeOperation, ExecutionResult } from './execute_operation'; +import { Aspect, defineAspects } from './operation'; const LIST_COLLECTIONS_WIRE_VERSION = 3; diff --git a/src/operations/list_databases.ts b/src/operations/list_databases.ts index 5a5ed52927..994e4a2822 100644 --- a/src/operations/list_databases.ts +++ b/src/operations/list_databases.ts @@ -1,10 +1,10 @@ -import { CommandOperation, CommandOperationOptions } from './command'; -import { Aspect, defineAspects } from './operation'; -import { MongoDBNamespace, Callback } from '../utils'; import type { Document } from '../bson'; -import type { Server } from '../sdam/server'; import type { Db } from '../db'; +import type { Server } from '../sdam/server'; import type { ClientSession } from '../sessions'; +import { Callback, MongoDBNamespace } from '../utils'; +import { CommandOperation, CommandOperationOptions } from './command'; +import { Aspect, defineAspects } from './operation'; /** @public */ export interface ListDatabasesResult { diff --git a/src/operations/map_reduce.ts b/src/operations/map_reduce.ts index 5d73ee7a94..dcb52f6c01 100644 --- a/src/operations/map_reduce.ts +++ b/src/operations/map_reduce.ts @@ -1,22 +1,22 @@ +import type { ObjectId } from '../bson'; import { Code, Document } from '../bson'; +import type { Collection } from '../collection'; +import { Db } from '../db'; +import { MongoCompatibilityError, MongoServerError } from '../error'; +import { ReadPreference, ReadPreferenceMode } from '../read_preference'; +import type { Server } from '../sdam/server'; +import type { ClientSession } from '../sessions'; +import type { Sort } from '../sort'; import { applyWriteConcern, + Callback, decorateWithCollation, decorateWithReadConcern, isObject, - Callback, maxWireVersion } from '../utils'; -import { ReadPreference, ReadPreferenceMode } from '../read_preference'; import { CommandOperation, CommandOperationOptions } from './command'; -import type { Server } from '../sdam/server'; -import type { Collection } from '../collection'; -import type { Sort } from '../sort'; -import { MongoServerError, MongoCompatibilityError } from '../error'; -import type { ObjectId } from '../bson'; import { Aspect, defineAspects } from './operation'; -import type { ClientSession } from '../sessions'; -import { Db } from '../db'; const exclusionList = [ 'explain', diff --git a/src/operations/operation.ts b/src/operations/operation.ts index d26fbf2ce7..de90124d7b 100644 --- a/src/operations/operation.ts +++ b/src/operations/operation.ts @@ -1,8 +1,8 @@ +import { BSONSerializeOptions, Document, resolveBSONOptions } from '../bson'; import { ReadPreference, ReadPreferenceLike } from '../read_preference'; -import type { ClientSession } from '../sessions'; -import { Document, BSONSerializeOptions, resolveBSONOptions } from '../bson'; -import type { MongoDBNamespace, Callback } from '../utils'; import type { Server } from '../sdam/server'; +import type { ClientSession } from '../sessions'; +import type { Callback, MongoDBNamespace } from '../utils'; export const Aspect = { READ_OPERATION: Symbol('READ_OPERATION'), diff --git a/src/operations/options_operation.ts b/src/operations/options_operation.ts index 0d1dee1ece..3a80b5fbce 100644 --- a/src/operations/options_operation.ts +++ b/src/operations/options_operation.ts @@ -1,10 +1,10 @@ -import { AbstractOperation, OperationOptions } from './operation'; -import { MongoAPIError } from '../error'; -import type { Callback } from '../utils'; import type { Document } from '../bson'; import type { Collection } from '../collection'; +import { MongoAPIError } from '../error'; import type { Server } from '../sdam/server'; import type { ClientSession } from '../sessions'; +import type { Callback } from '../utils'; +import { AbstractOperation, OperationOptions } from './operation'; /** @internal */ export class OptionsOperation extends AbstractOperation { diff --git a/src/operations/profiling_level.ts b/src/operations/profiling_level.ts index 2c28da5f02..4c607ba4a0 100644 --- a/src/operations/profiling_level.ts +++ b/src/operations/profiling_level.ts @@ -1,9 +1,9 @@ -import { CommandOperation, CommandOperationOptions } from './command'; -import type { Callback } from '../utils'; -import type { Server } from '../sdam/server'; import type { Db } from '../db'; -import type { ClientSession } from '../sessions'; import { MongoRuntimeError } from '../error'; +import type { Server } from '../sdam/server'; +import type { ClientSession } from '../sessions'; +import type { Callback } from '../utils'; +import { CommandOperation, CommandOperationOptions } from './command'; /** @public */ export type ProfilingLevelOptions = CommandOperationOptions; diff --git a/src/operations/remove_user.ts b/src/operations/remove_user.ts index 073b6eb993..b1311c2399 100644 --- a/src/operations/remove_user.ts +++ b/src/operations/remove_user.ts @@ -1,9 +1,9 @@ -import { Aspect, defineAspects } from './operation'; -import { CommandOperation, CommandOperationOptions } from './command'; -import type { Callback } from '../utils'; -import type { Server } from '../sdam/server'; import type { Db } from '../db'; +import type { Server } from '../sdam/server'; import type { ClientSession } from '../sessions'; +import type { Callback } from '../utils'; +import { CommandOperation, CommandOperationOptions } from './command'; +import { Aspect, defineAspects } from './operation'; /** @public */ export type RemoveUserOptions = CommandOperationOptions; diff --git a/src/operations/rename.ts b/src/operations/rename.ts index 47d03a2e2c..faba1a89f8 100644 --- a/src/operations/rename.ts +++ b/src/operations/rename.ts @@ -1,12 +1,12 @@ -import { checkCollectionName, Callback } from '../utils'; -import { RunAdminCommandOperation } from './run_command'; -import { defineAspects, Aspect } from './operation'; -import type { Server } from '../sdam/server'; +import type { Document } from '../bson'; import { Collection } from '../collection'; -import type { CommandOperationOptions } from './command'; import { MongoServerError } from '../error'; +import type { Server } from '../sdam/server'; import type { ClientSession } from '../sessions'; -import type { Document } from 'bson'; +import { Callback, checkCollectionName } from '../utils'; +import type { CommandOperationOptions } from './command'; +import { Aspect, defineAspects } from './operation'; +import { RunAdminCommandOperation } from './run_command'; /** @public */ export interface RenameOptions extends CommandOperationOptions { diff --git a/src/operations/run_command.ts b/src/operations/run_command.ts index e9cabb90d9..a05f62a24e 100644 --- a/src/operations/run_command.ts +++ b/src/operations/run_command.ts @@ -1,8 +1,8 @@ -import { CommandOperation, CommandOperationOptions, OperationParent } from './command'; -import { MongoDBNamespace, Callback } from '../utils'; -import type { Server } from '../sdam/server'; import type { Document } from '../bson'; +import type { Server } from '../sdam/server'; import type { ClientSession } from '../sessions'; +import { Callback, MongoDBNamespace } from '../utils'; +import { CommandOperation, CommandOperationOptions, OperationParent } from './command'; /** @public */ export type RunCommandOptions = CommandOperationOptions; diff --git a/src/operations/set_profiling_level.ts b/src/operations/set_profiling_level.ts index db3a2e0c70..7c65fa7449 100644 --- a/src/operations/set_profiling_level.ts +++ b/src/operations/set_profiling_level.ts @@ -1,10 +1,11 @@ -import { CommandOperation, CommandOperationOptions } from './command'; -import type { Callback } from '../utils'; -import { enumToString } from '../utils'; -import type { Server } from '../sdam/server'; import type { Db } from '../db'; +import { MongoInvalidArgumentError, MongoRuntimeError } from '../error'; +import type { Server } from '../sdam/server'; import type { ClientSession } from '../sessions'; -import { MongoRuntimeError, MongoInvalidArgumentError } from '../error'; +import type { Callback } from '../utils'; +import { enumToString } from '../utils'; +import { CommandOperation, CommandOperationOptions } from './command'; + const levelValues = new Set(['off', 'slow_only', 'all']); /** @public */ diff --git a/src/operations/stats.ts b/src/operations/stats.ts index 98de40765c..d4b94e019c 100644 --- a/src/operations/stats.ts +++ b/src/operations/stats.ts @@ -1,11 +1,11 @@ -import { Aspect, defineAspects } from './operation'; -import { CommandOperation, CommandOperationOptions } from './command'; -import type { Callback } from '../utils'; import type { Document } from '../bson'; -import type { Server } from '../sdam/server'; import type { Collection } from '../collection'; import type { Db } from '../db'; +import type { Server } from '../sdam/server'; import type { ClientSession } from '../sessions'; +import type { Callback } from '../utils'; +import { CommandOperation, CommandOperationOptions } from './command'; +import { Aspect, defineAspects } from './operation'; /** @public */ export interface CollStatsOptions extends CommandOperationOptions { diff --git a/src/operations/update.ts b/src/operations/update.ts index fa69973411..0026245bfb 100644 --- a/src/operations/update.ts +++ b/src/operations/update.ts @@ -1,17 +1,17 @@ -import { defineAspects, Aspect, Hint } from './operation'; +import type { Document, ObjectId } from '../bson'; +import type { Collection } from '../collection'; +import { MongoCompatibilityError, MongoInvalidArgumentError, MongoServerError } from '../error'; +import type { Server } from '../sdam/server'; +import type { ClientSession } from '../sessions'; import { - hasAtomicOperators, - MongoDBNamespace, Callback, collationNotSupported, - maxWireVersion + hasAtomicOperators, + maxWireVersion, + MongoDBNamespace } from '../utils'; -import { CommandOperation, CommandOperationOptions, CollationOptions } from './command'; -import type { Server } from '../sdam/server'; -import type { Collection } from '../collection'; -import type { ObjectId, Document } from '../bson'; -import type { ClientSession } from '../sessions'; -import { MongoServerError, MongoInvalidArgumentError, MongoCompatibilityError } from '../error'; +import { CollationOptions, CommandOperation, CommandOperationOptions } from './command'; +import { Aspect, defineAspects, Hint } from './operation'; /** @public */ export interface UpdateOptions extends CommandOperationOptions { diff --git a/src/operations/validate_collection.ts b/src/operations/validate_collection.ts index ce3a681ee4..7c7d0cda5f 100644 --- a/src/operations/validate_collection.ts +++ b/src/operations/validate_collection.ts @@ -1,10 +1,10 @@ -import { CommandOperation, CommandOperationOptions } from './command'; -import type { Callback } from '../utils'; +import type { Admin } from '../admin'; import type { Document } from '../bson'; +import { MongoRuntimeError } from '../error'; import type { Server } from '../sdam/server'; -import type { Admin } from '../admin'; import type { ClientSession } from '../sessions'; -import { MongoRuntimeError } from '../error'; +import type { Callback } from '../utils'; +import { CommandOperation, CommandOperationOptions } from './command'; /** @public */ export interface ValidateCollectionOptions extends CommandOperationOptions { diff --git a/src/read_preference.ts b/src/read_preference.ts index e2a713e9ea..5a5538e939 100644 --- a/src/read_preference.ts +++ b/src/read_preference.ts @@ -1,7 +1,7 @@ -import type { TagSet } from './sdam/server_description'; import type { Document } from './bson'; -import type { ClientSession } from './sessions'; import { MongoInvalidArgumentError } from './error'; +import type { TagSet } from './sdam/server_description'; +import type { ClientSession } from './sessions'; /** @public */ export type ReadPreferenceLike = ReadPreference | ReadPreferenceMode; diff --git a/src/sdam/common.ts b/src/sdam/common.ts index 673573b258..9a9a5450a7 100644 --- a/src/sdam/common.ts +++ b/src/sdam/common.ts @@ -1,6 +1,6 @@ -import type { Timestamp, Binary, Long } from '../bson'; -import type { Topology } from './topology'; +import type { Binary, Long, Timestamp } from '../bson'; import type { ClientSession } from '../sessions'; +import type { Topology } from './topology'; // shared state names export const STATE_CLOSING = 'closing'; diff --git a/src/sdam/events.ts b/src/sdam/events.ts index ff8c4600a6..7afb59425e 100644 --- a/src/sdam/events.ts +++ b/src/sdam/events.ts @@ -1,6 +1,6 @@ +import type { Document } from '../bson'; import type { ServerDescription } from './server_description'; import type { TopologyDescription } from './topology_description'; -import type { Document } from '../bson'; /** * Emitted when server description changes, but does NOT include changes to the RTT. diff --git a/src/sdam/monitor.ts b/src/sdam/monitor.ts index aad980713c..8c531a701c 100644 --- a/src/sdam/monitor.ts +++ b/src/sdam/monitor.ts @@ -1,26 +1,25 @@ -import { ServerType, STATE_CLOSED, STATE_CLOSING } from './common'; +import { Document, Long } from '../bson'; +import { connect } from '../cmap/connect'; +import { Connection, ConnectionOptions } from '../cmap/connection'; +import { AnyError, MongoNetworkError } from '../error'; +import { CancellationToken, TypedEventEmitter } from '../mongo_types'; +import type { Callback, InterruptibleAsyncInterval } from '../utils'; import { - now, - makeStateMachine, calculateDurationInMs, + EventEmitterWithState, makeInterruptibleAsyncInterval, - ns, - EventEmitterWithState + makeStateMachine, + now, + ns } from '../utils'; -import { connect } from '../cmap/connect'; -import { Connection, ConnectionOptions } from '../cmap/connection'; -import { MongoNetworkError, AnyError } from '../error'; -import { Long, Document } from '../bson'; +import { ServerType, STATE_CLOSED, STATE_CLOSING } from './common'; import { + ServerHeartbeatFailedEvent, ServerHeartbeatStartedEvent, - ServerHeartbeatSucceededEvent, - ServerHeartbeatFailedEvent + ServerHeartbeatSucceededEvent } from './events'; - import { Server } from './server'; -import type { InterruptibleAsyncInterval, Callback } from '../utils'; import type { TopologyVersion } from './server_description'; -import { CancellationToken, TypedEventEmitter } from '../mongo_types'; /** @internal */ const kServer = Symbol('server'); diff --git a/src/sdam/server.ts b/src/sdam/server.ts index 393e2a72ba..cda973458e 100644 --- a/src/sdam/server.ts +++ b/src/sdam/server.ts @@ -1,62 +1,72 @@ -import { Logger } from '../logger'; +import type { Document, Long } from '../bson'; +import { + CommandOptions, + Connection, + DestroyOptions, + GetMoreOptions, + QueryOptions +} from '../cmap/connection'; import { ConnectionPool, - ConnectionPoolOptions, - CMAP_EVENTS, - ConnectionPoolEvents + ConnectionPoolEvents, + ConnectionPoolOptions } from '../cmap/connection_pool'; -import { ServerDescription, compareTopologyVersion } from './server_description'; -import { Monitor, MonitorOptions } from './monitor'; +import { + APM_EVENTS, + CLOSED, + CMAP_EVENTS, + CONNECT, + DESCRIPTION_RECEIVED, + ENDED, + HEARTBEAT_EVENTS, + SERVER_HEARTBEAT_FAILED, + SERVER_HEARTBEAT_STARTED, + SERVER_HEARTBEAT_SUCCEEDED +} from '../constants'; +import type { AutoEncrypter } from '../deps'; +import { + isNetworkErrorBeforeHandshake, + isNodeShuttingDownError, + isRetryableWriteError, + isSDAMUnrecoverableError, + MongoCompatibilityError, + MongoError, + MongoInvalidArgumentError, + MongoNetworkError, + MongoNetworkTimeoutError, + MongoServerClosedError +} from '../error'; +import { Logger } from '../logger'; +import type { ServerApi } from '../mongo_client'; +import { TypedEventEmitter } from '../mongo_types'; +import type { ClientSession } from '../sessions'; import { isTransactionCommand } from '../transactions'; import { + Callback, + CallbackWithType, collationNotSupported, + EventEmitterWithState, makeStateMachine, maxWireVersion, - Callback, - CallbackWithType, MongoDBNamespace, - EventEmitterWithState + supportsRetryableWrites } from '../utils'; import { + ClusterTime, STATE_CLOSED, STATE_CLOSING, - STATE_CONNECTING, STATE_CONNECTED, - ClusterTime, + STATE_CONNECTING, TopologyType } from './common'; -import { - MongoError, - MongoNetworkError, - MongoNetworkTimeoutError, - isSDAMUnrecoverableError, - isRetryableWriteError, - isNodeShuttingDownError, - isNetworkErrorBeforeHandshake, - MongoCompatibilityError, - MongoInvalidArgumentError, - MongoServerClosedError -} from '../error'; -import { - Connection, - DestroyOptions, - QueryOptions, - GetMoreOptions, - CommandOptions, - APM_EVENTS -} from '../cmap/connection'; -import type { Topology } from './topology'; import type { ServerHeartbeatFailedEvent, ServerHeartbeatStartedEvent, ServerHeartbeatSucceededEvent } from './events'; -import type { ClientSession } from '../sessions'; -import type { Document, Long } from '../bson'; -import type { AutoEncrypter } from '../deps'; -import type { ServerApi } from '../mongo_client'; -import { TypedEventEmitter } from '../mongo_types'; -import { supportsRetryableWrites } from '../utils'; +import { Monitor, MonitorOptions } from './monitor'; +import { compareTopologyVersion, ServerDescription } from './server_description'; +import type { Topology } from './topology'; const stateTransition = makeStateMachine({ [STATE_CLOSED]: [STATE_CLOSED, STATE_CONNECTING], @@ -108,24 +118,23 @@ export class Server extends TypedEventEmitter { /** @internal */ s: ServerPrivate; serverApi?: ServerApi; - clusterTime?: ClusterTime; ismaster?: Document; [kMonitor]: Monitor; /** @event */ - static readonly SERVER_HEARTBEAT_STARTED = 'serverHeartbeatStarted' as const; + static readonly SERVER_HEARTBEAT_STARTED = SERVER_HEARTBEAT_STARTED; /** @event */ - static readonly SERVER_HEARTBEAT_SUCCEEDED = 'serverHeartbeatSucceeded' as const; + static readonly SERVER_HEARTBEAT_SUCCEEDED = SERVER_HEARTBEAT_SUCCEEDED; /** @event */ - static readonly SERVER_HEARTBEAT_FAILED = 'serverHeartbeatFailed' as const; + static readonly SERVER_HEARTBEAT_FAILED = SERVER_HEARTBEAT_FAILED; /** @event */ - static readonly CONNECT = 'connect' as const; + static readonly CONNECT = CONNECT; /** @event */ - static readonly DESCRIPTION_RECEIVED = 'descriptionReceived' as const; + static readonly DESCRIPTION_RECEIVED = DESCRIPTION_RECEIVED; /** @event */ - static readonly CLOSED = 'closed' as const; + static readonly CLOSED = CLOSED; /** @event */ - static readonly ENDED = 'ended' as const; + static readonly ENDED = ENDED; /** * Create a server @@ -184,6 +193,14 @@ export class Server extends TypedEventEmitter { }); } + get clusterTime(): ClusterTime | undefined { + return this.s.topology.clusterTime; + } + + set clusterTime(clusterTime: ClusterTime | undefined) { + this.s.topology.clusterTime = clusterTime; + } + get description(): ServerDescription { return this.s.description; } @@ -453,21 +470,6 @@ export class Server extends TypedEventEmitter { } } -export const HEARTBEAT_EVENTS = [ - Server.SERVER_HEARTBEAT_STARTED, - Server.SERVER_HEARTBEAT_SUCCEEDED, - Server.SERVER_HEARTBEAT_FAILED -]; - -Object.defineProperty(Server.prototype, 'clusterTime', { - get() { - return this.s.topology.clusterTime; - }, - set(clusterTime: ClusterTime) { - this.s.topology.clusterTime = clusterTime; - } -}); - function calculateRoundTripTime(oldRtt: number, duration: number): number { if (oldRtt === -1) { return duration; diff --git a/src/sdam/server_description.ts b/src/sdam/server_description.ts index bd907b2c4b..8294ea0899 100644 --- a/src/sdam/server_description.ts +++ b/src/sdam/server_description.ts @@ -1,8 +1,8 @@ -import { arrayStrictEqual, errorStrictEqual, now, HostAddress } from '../utils'; -import { ServerType } from './common'; -import { ObjectId, Long, Document } from '../bson'; -import type { ClusterTime } from './common'; +import { Document, Long, ObjectId } from '../bson'; import type { MongoError } from '../error'; +import { arrayStrictEqual, errorStrictEqual, HostAddress, now } from '../utils'; +import type { ClusterTime } from './common'; +import { ServerType } from './common'; const WRITABLE_SERVER_TYPES = new Set([ ServerType.RSPrimary, diff --git a/src/sdam/server_selection.ts b/src/sdam/server_selection.ts index 5a51a7a94e..74bbd89189 100644 --- a/src/sdam/server_selection.ts +++ b/src/sdam/server_selection.ts @@ -1,8 +1,8 @@ -import { ServerType, TopologyType } from './common'; -import { ReadPreference } from '../read_preference'; import { MongoCompatibilityError, MongoInvalidArgumentError } from '../error'; -import type { TopologyDescription } from './topology_description'; +import { ReadPreference } from '../read_preference'; +import { ServerType, TopologyType } from './common'; import type { ServerDescription, TagSet } from './server_description'; +import type { TopologyDescription } from './topology_description'; // max staleness constants const IDLE_WRITE_PERIOD = 10000; diff --git a/src/sdam/srv_polling.ts b/src/sdam/srv_polling.ts index aaa0f7fea2..e867f4f932 100644 --- a/src/sdam/srv_polling.ts +++ b/src/sdam/srv_polling.ts @@ -1,8 +1,9 @@ import * as dns from 'dns'; + +import { MongoRuntimeError } from '../error'; import { Logger, LoggerOptions } from '../logger'; -import { HostAddress } from '../utils'; import { TypedEventEmitter } from '../mongo_types'; -import { MongoRuntimeError } from '../error'; +import { HostAddress } from '../utils'; /** * Determines whether a provided address matches the provided parent domain in order diff --git a/src/sdam/topology.ts b/src/sdam/topology.ts index 1c9aeb26b7..1159ea602d 100644 --- a/src/sdam/topology.ts +++ b/src/sdam/topology.ts @@ -1,88 +1,83 @@ import Denque = require('denque'); -import { ReadPreference, ReadPreferenceLike } from '../read_preference'; -import { compareTopologyVersion, ServerDescription } from './server_description'; -import { TopologyDescription } from './topology_description'; -import { Server, ServerEvents, ServerOptions } from './server'; +import type { BSONSerializeOptions, Document } from '../bson'; +import { deserialize, serialize } from '../bson'; +import type { MongoCredentials } from '../cmap/auth/mongo_credentials'; +import type { ConnectionEvents, DestroyOptions } from '../cmap/connection'; +import type { CloseOptions, ConnectionPoolEvents } from '../cmap/connection_pool'; +import { DEFAULT_OPTIONS } from '../connection_string'; import { - ClientSession, - ServerSessionPool, - ServerSessionId, - ClientSessionOptions -} from '../sessions'; -import { SrvPoller, SrvPollingEvent } from './srv_polling'; -import { CMAP_EVENTS, ConnectionPoolEvents } from '../cmap/connection_pool'; + CLOSE, + CONNECT, + ERROR, + LOCAL_SERVER_EVENTS, + OPEN, + SERVER_CLOSED, + SERVER_DESCRIPTION_CHANGED, + SERVER_OPENING, + SERVER_RELAY_EVENTS, + TIMEOUT, + TOPOLOGY_CLOSED, + TOPOLOGY_DESCRIPTION_CHANGED, + TOPOLOGY_OPENING +} from '../constants'; import { - MongoServerSelectionError, MongoCompatibilityError, MongoDriverError, - MongoTopologyClosedError, - MongoRuntimeError + MongoRuntimeError, + MongoServerSelectionError, + MongoTopologyClosedError } from '../error'; -import { readPreferenceServerSelector, ServerSelector } from './server_selection'; +import type { MongoOptions, ServerApi } from '../mongo_client'; +import { TypedEventEmitter } from '../mongo_types'; +import { ReadPreference, ReadPreferenceLike } from '../read_preference'; +import { + ClientSession, + ClientSessionOptions, + ServerSessionId, + ServerSessionPool +} from '../sessions'; +import type { Transaction } from '../transactions'; import { - makeStateMachine, - eachAsync, - ClientMetadata, Callback, - HostAddress, - ns, + ClientMetadata, + eachAsync, emitWarning, EventEmitterWithState, + HostAddress, + makeStateMachine, + ns, shuffle } from '../utils'; import { - TopologyType, - ServerType, - ClusterTime, - TimerQueue, _advanceClusterTime, - drainTimerQueue, clearAndRemoveTimerFrom, + ClusterTime, + drainTimerQueue, + ServerType, STATE_CLOSED, STATE_CLOSING, + STATE_CONNECTED, STATE_CONNECTING, - STATE_CONNECTED + TimerQueue, + TopologyType } from './common'; import { - ServerOpeningEvent, ServerClosedEvent, ServerDescriptionChangedEvent, - TopologyOpeningEvent, + ServerOpeningEvent, TopologyClosedEvent, - TopologyDescriptionChangedEvent + TopologyDescriptionChangedEvent, + TopologyOpeningEvent } from './events'; -import type { Document, BSONSerializeOptions } from '../bson'; -import type { MongoCredentials } from '../cmap/auth/mongo_credentials'; -import type { Transaction } from '../transactions'; -import type { CloseOptions } from '../cmap/connection_pool'; -import { DestroyOptions, Connection, ConnectionEvents } from '../cmap/connection'; -import type { MongoOptions, ServerApi } from '../mongo_client'; -import { DEFAULT_OPTIONS } from '../connection_string'; -import { serialize, deserialize } from '../bson'; -import { TypedEventEmitter } from '../mongo_types'; +import { Server, ServerEvents, ServerOptions } from './server'; +import { compareTopologyVersion, ServerDescription } from './server_description'; +import { readPreferenceServerSelector, ServerSelector } from './server_selection'; +import { SrvPoller, SrvPollingEvent } from './srv_polling'; +import { TopologyDescription } from './topology_description'; // Global state let globalTopologyCounter = 0; -// events that we relay to the `Topology` -const SERVER_RELAY_EVENTS = [ - Server.SERVER_HEARTBEAT_STARTED, - Server.SERVER_HEARTBEAT_SUCCEEDED, - Server.SERVER_HEARTBEAT_FAILED, - Connection.COMMAND_STARTED, - Connection.COMMAND_SUCCEEDED, - Connection.COMMAND_FAILED, - ...CMAP_EVENTS -]; - -// all events we listen to from `Server` instances -const LOCAL_SERVER_EVENTS = [ - Server.CONNECT, - Server.DESCRIPTION_RECEIVED, - Server.CLOSED, - Server.ENDED -]; - const stateTransition = makeStateMachine({ [STATE_CLOSED]: [STATE_CLOSED, STATE_CONNECTING], [STATE_CONNECTING]: [STATE_CONNECTING, STATE_CLOSING, STATE_CONNECTED, STATE_CLOSED], @@ -208,27 +203,27 @@ export class Topology extends TypedEventEmitter { _type?: string; /** @event */ - static readonly SERVER_OPENING = 'serverOpening' as const; + static readonly SERVER_OPENING = SERVER_OPENING; /** @event */ - static readonly SERVER_CLOSED = 'serverClosed' as const; + static readonly SERVER_CLOSED = SERVER_CLOSED; /** @event */ - static readonly SERVER_DESCRIPTION_CHANGED = 'serverDescriptionChanged' as const; + static readonly SERVER_DESCRIPTION_CHANGED = SERVER_DESCRIPTION_CHANGED; /** @event */ - static readonly TOPOLOGY_OPENING = 'topologyOpening' as const; + static readonly TOPOLOGY_OPENING = TOPOLOGY_OPENING; /** @event */ - static readonly TOPOLOGY_CLOSED = 'topologyClosed' as const; + static readonly TOPOLOGY_CLOSED = TOPOLOGY_CLOSED; /** @event */ - static readonly TOPOLOGY_DESCRIPTION_CHANGED = 'topologyDescriptionChanged' as const; + static readonly TOPOLOGY_DESCRIPTION_CHANGED = TOPOLOGY_DESCRIPTION_CHANGED; /** @event */ - static readonly ERROR = 'error' as const; + static readonly ERROR = ERROR; /** @event */ - static readonly OPEN = 'open' as const; + static readonly OPEN = OPEN; /** @event */ - static readonly CONNECT = 'connect' as const; + static readonly CONNECT = CONNECT; /** @event */ - static readonly CLOSE = 'close' as const; + static readonly CLOSE = CLOSE; /** @event */ - static readonly TIMEOUT = 'timeout' as const; + static readonly TIMEOUT = TIMEOUT; /** * @internal @@ -827,19 +822,6 @@ export class Topology extends TypedEventEmitter { } } -/** @public */ -export const TOPOLOGY_EVENTS = [ - Topology.SERVER_OPENING, - Topology.SERVER_CLOSED, - Topology.SERVER_DESCRIPTION_CHANGED, - Topology.TOPOLOGY_OPENING, - Topology.TOPOLOGY_CLOSED, - Topology.TOPOLOGY_DESCRIPTION_CHANGED, - Topology.ERROR, - Topology.TIMEOUT, - Topology.CLOSE -]; - /** Destroys a server, and removes all event listeners from the instance */ function destroyServer( server: Server, diff --git a/src/sdam/topology_description.ts b/src/sdam/topology_description.ts index 4d48dfc451..685a658a60 100644 --- a/src/sdam/topology_description.ts +++ b/src/sdam/topology_description.ts @@ -1,10 +1,10 @@ -import { ServerDescription } from './server_description'; +import type { Document, ObjectId } from '../bson'; import * as WIRE_CONSTANTS from '../cmap/wire_protocol/constants'; -import { TopologyType, ServerType } from './common'; -import type { ObjectId, Document } from '../bson'; -import type { SrvPollingEvent } from './srv_polling'; import { MongoError, MongoRuntimeError } from '../error'; import { shuffle } from '../utils'; +import { ServerType, TopologyType } from './common'; +import { ServerDescription } from './server_description'; +import type { SrvPollingEvent } from './srv_polling'; // constants related to compatibility checks const MIN_SUPPORTED_SERVER_VERSION = WIRE_CONSTANTS.MIN_SUPPORTED_SERVER_VERSION; diff --git a/src/sessions.ts b/src/sessions.ts index 8cc6f6f48d..830aeea9cd 100644 --- a/src/sessions.ts +++ b/src/sessions.ts @@ -1,46 +1,47 @@ -import { PromiseProvider } from './promise_provider'; -import { Binary, Long, Timestamp, Document } from './bson'; -import { ReadPreference } from './read_preference'; -import { isTransactionCommand, TxnState, Transaction, TransactionOptions } from './transactions'; -import { _advanceClusterTime, ClusterTime, TopologyType } from './sdam/common'; +import { Binary, Document, Long, Timestamp } from './bson'; +import type { CommandOptions, Connection } from './cmap/connection'; +import { ConnectionPoolMetrics } from './cmap/metrics'; import { isSharded } from './cmap/wire_protocol/shared'; +import { PINNED, UNPINNED } from './constants'; +import type { AbstractCursor } from './cursor/abstract_cursor'; import { - MongoError, - MongoInvalidArgumentError, - isRetryableError, + AnyError, isRetryableEndTransactionError, + isRetryableError, + MongoAPIError, MongoCompatibilityError, - MongoNetworkError, - MongoWriteConcernError, MONGODB_ERROR_CODES, - MongoServerError, MongoDriverError, - MongoAPIError, - AnyError, + MongoError, MongoExpiredSessionError, + MongoInvalidArgumentError, + MongoNetworkError, + MongoRuntimeError, + MongoServerError, MongoTransactionError, - MongoRuntimeError + MongoWriteConcernError } from './error'; +import type { MongoOptions } from './mongo_client'; +import { TypedEventEmitter } from './mongo_types'; +import { executeOperation } from './operations/execute_operation'; +import { RunAdminCommandOperation } from './operations/run_command'; +import { PromiseProvider } from './promise_provider'; +import { ReadConcernLevel } from './read_concern'; +import { ReadPreference } from './read_preference'; +import { _advanceClusterTime, ClusterTime, TopologyType } from './sdam/common'; +import type { Topology } from './sdam/topology'; +import { isTransactionCommand, Transaction, TransactionOptions, TxnState } from './transactions'; import { - now, calculateDurationInMs, Callback, + commandSupportsReadConcern, isPromiseLike, - uuidV4, maxWireVersion, - maybePromise + maybePromise, + now, + uuidV4 } from './utils'; -import type { Topology } from './sdam/topology'; -import type { MongoOptions } from './mongo_client'; -import { executeOperation } from './operations/execute_operation'; -import { RunAdminCommandOperation } from './operations/run_command'; -import type { AbstractCursor } from './cursor/abstract_cursor'; -import type { CommandOptions } from './cmap/connection'; -import { Connection } from './cmap/connection'; -import { ConnectionPoolMetrics } from './cmap/metrics'; import type { WriteConcern } from './write_concern'; -import { TypedEventEmitter } from './mongo_types'; -import { ReadConcernLevel } from './read_concern'; const minWireVersionForShardedTransactions = 8; @@ -225,7 +226,7 @@ export class ClientSession extends TypedEventEmitter { this[kPinnedConnection] = conn; conn.emit( - Connection.PINNED, + PINNED, this.inTransaction() ? ConnectionPoolMetrics.TXN : ConnectionPoolMetrics.CURSOR ); } @@ -520,7 +521,7 @@ export function maybeClearPinnedConnection( if (options?.error == null || options?.force) { loadBalancer.s.pool.checkIn(conn); conn.emit( - Connection.UNPINNED, + UNPINNED, session.transaction.state !== TxnState.NO_TRANSACTION ? ConnectionPoolMetrics.TXN : ConnectionPoolMetrics.CURSOR @@ -929,25 +930,6 @@ export class ServerSessionPool { } } -// TODO: this should be codified in command construction -// @see https://github.com/mongodb/specifications/blob/master/source/read-write-concern/read-write-concern.rst#read-concern -export function commandSupportsReadConcern(command: Document, options?: Document): boolean { - if (command.aggregate || command.count || command.distinct || command.find || command.geoNear) { - return true; - } - - if ( - command.mapReduce && - options && - options.out && - (options.out.inline === 1 || options.out === 'inline') - ) { - return true; - } - - return false; -} - /** * Optionally decorate a command with sessions specific keys * diff --git a/src/transactions.ts b/src/transactions.ts index 29797ace72..2d7e631bf6 100644 --- a/src/transactions.ts +++ b/src/transactions.ts @@ -1,10 +1,10 @@ -import { ReadPreference } from './read_preference'; +import type { Document } from './bson'; import { MongoRuntimeError, MongoTransactionError } from './error'; +import type { CommandOperationOptions } from './operations/command'; import { ReadConcern, ReadConcernLike } from './read_concern'; -import { WriteConcern } from './write_concern'; +import { ReadPreference } from './read_preference'; import type { Server } from './sdam/server'; -import type { CommandOperationOptions } from './operations/command'; -import type { Document } from './bson'; +import { WriteConcern } from './write_concern'; /** @internal */ export const TxnState = Object.freeze({ diff --git a/src/utils.ts b/src/utils.ts index 48c2fac259..2d79dc0fa5 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -1,34 +1,35 @@ -import * as os from 'os'; import * as crypto from 'crypto'; -import { PromiseProvider } from './promise_provider'; +import type { SrvRecord } from 'dns'; +import * as os from 'os'; +import { URL } from 'url'; + +import { Document, ObjectId, resolveBSONOptions } from './bson'; +import type { Connection } from './cmap/connection'; +import { MAX_SUPPORTED_WIRE_VERSION } from './cmap/wire_protocol/constants'; +import type { Collection } from './collection'; +import type { Db } from './db'; import { AnyError, - MongoParseError, - MongoRuntimeError, MongoCompatibilityError, - MongoNotConnectedError, + MongoExpiredSessionError, MongoInvalidArgumentError, - MongoExpiredSessionError + MongoNotConnectedError, + MongoParseError, + MongoRuntimeError } from './error'; -import { WriteConcern, WriteConcernOptions, W } from './write_concern'; -import type { Server } from './sdam/server'; -import type { Topology } from './sdam/topology'; -import { ServerType } from './sdam/common'; -import type { Db } from './db'; -import type { Collection } from './collection'; -import type { OperationOptions, Hint } from './operations/operation'; -import type { ClientSession } from './sessions'; -import { ReadConcern } from './read_concern'; -import type { Connection } from './cmap/connection'; -import { Document, ObjectId, resolveBSONOptions } from './bson'; -import type { IndexSpecification, IndexDirection } from './operations/indexes'; import type { Explain } from './explain'; import type { MongoClient } from './mongo_client'; import type { CommandOperationOptions, OperationParent } from './operations/command'; +import type { IndexDirection, IndexSpecification } from './operations/indexes'; +import type { Hint, OperationOptions } from './operations/operation'; +import { PromiseProvider } from './promise_provider'; +import { ReadConcern } from './read_concern'; import { ReadPreference } from './read_preference'; -import { URL } from 'url'; -import { MAX_SUPPORTED_WIRE_VERSION } from './cmap/wire_protocol/constants'; -import type { SrvRecord } from 'dns'; +import { ServerType } from './sdam/common'; +import type { Server } from './sdam/server'; +import type { Topology } from './sdam/topology'; +import type { ClientSession } from './sessions'; +import { W, WriteConcern, WriteConcernOptions } from './write_concern'; /** * MongoDB Driver style callback @@ -1449,3 +1450,22 @@ export function shuffle(sequence: Iterable, limit = 0): Array { return limit % items.length === 0 ? items : items.slice(lowerBound); } + +// TODO: this should be codified in command construction +// @see https://github.com/mongodb/specifications/blob/master/source/read-write-concern/read-write-concern.rst#read-concern +export function commandSupportsReadConcern(command: Document, options?: Document): boolean { + if (command.aggregate || command.count || command.distinct || command.find || command.geoNear) { + return true; + } + + if ( + command.mapReduce && + options && + options.out && + (options.out.inline === 1 || options.out === 'inline') + ) { + return true; + } + + return false; +} diff --git a/test/benchmarks/driverBench/index.js b/test/benchmarks/driverBench/index.js index 0a70337e74..028309e529 100644 --- a/test/benchmarks/driverBench/index.js +++ b/test/benchmarks/driverBench/index.js @@ -6,6 +6,7 @@ const Runner = MongoBench.Runner; const commonHelpers = require('./common'); let BSON = require('bson'); + try { BSON = require('bson-ext'); } catch (_) { diff --git a/test/functional/change_stream.test.js b/test/functional/change_stream.test.js index b723187578..e979ab0a32 100644 --- a/test/functional/change_stream.test.js +++ b/test/functional/change_stream.test.js @@ -6,6 +6,7 @@ const { delay, setupDatabase, withClient, withCursor } = require('./shared'); const mock = require('../tools/mongodb-mock/index'); const { EventCollector, getSymbolFrom } = require('../tools/utils'); const chai = require('chai'); + const expect = chai.expect; const sinon = require('sinon'); const { ObjectId, Timestamp, Long, ReadPreference } = require('../../src'); diff --git a/test/functional/change_stream_spec.test.js b/test/functional/change_stream_spec.test.js index e08199e612..5deeed04f1 100644 --- a/test/functional/change_stream_spec.test.js +++ b/test/functional/change_stream_spec.test.js @@ -7,6 +7,7 @@ const { runUnifiedSuite } = require('../tools/unified-spec-runner/runner'); const camelCase = require('lodash.camelcase'); const { setupDatabase } = require('./shared'); const { delay } = require('./shared'); + const expect = chai.expect; describe('Change Streams Spec - Unified', function () { diff --git a/test/functional/cmap/commands.test.ts b/test/functional/cmap/commands.test.ts index a7557af013..d0e0478de0 100644 --- a/test/functional/cmap/commands.test.ts +++ b/test/functional/cmap/commands.test.ts @@ -1,5 +1,6 @@ -import { spy } from 'sinon'; import { expect } from 'chai'; +import { spy } from 'sinon'; + import * as BSON from '../../../src/bson'; const deserializeSpy = spy(BSON, 'deserialize'); diff --git a/test/functional/collection.test.js b/test/functional/collection.test.js index f6846e1962..866917d7e7 100644 --- a/test/functional/collection.test.js +++ b/test/functional/collection.test.js @@ -1,9 +1,11 @@ 'use strict'; const setupDatabase = require('./shared').setupDatabase; const chai = require('chai'); + const expect = chai.expect; const sinonChai = require('sinon-chai'); const mock = require('../tools/mongodb-mock/index'); + chai.use(sinonChai); describe('Collection', function () { diff --git a/test/functional/connections_stepdown.test.js b/test/functional/connections_stepdown.test.js index 812c241611..14cef7b92c 100644 --- a/test/functional/connections_stepdown.test.js +++ b/test/functional/connections_stepdown.test.js @@ -1,6 +1,7 @@ 'use strict'; const chai = require('chai'); + const expect = chai.expect; function ignoreNsNotFound(err) { diff --git a/test/functional/contexts/index.js b/test/functional/contexts/index.js index 86101b6cc4..68d21b837d 100644 --- a/test/functional/contexts/index.js +++ b/test/functional/contexts/index.js @@ -5,6 +5,7 @@ var fs = require('fs'); var path = require('path'); var shared = require('./shared'); + var ind = fs.readFileSync(__dirname + '/other.js', 'utf8'); var filename = path.resolve(__dirname + '/other.js'); var script = vm.createScript(ind, filename); diff --git a/test/functional/contexts/other.js b/test/functional/contexts/other.js index 9c204ed54e..8bafd13075 100644 --- a/test/functional/contexts/other.js +++ b/test/functional/contexts/other.js @@ -1,6 +1,7 @@ 'use strict'; var shared = require('./shared'); + shared.object = { name: 1, age: -1 }; shared.array = ['name']; shared.string = 'woot'; diff --git a/test/functional/db.test.js b/test/functional/db.test.js index 3fbf3301dd..9b4b7b2eac 100644 --- a/test/functional/db.test.js +++ b/test/functional/db.test.js @@ -1,5 +1,6 @@ 'use strict'; var test = require('./shared').assert; + const { setupDatabase, withClient } = require(`./shared`); const { expect } = require('chai'); const { Db } = require('../../src'); diff --git a/test/functional/deprecate_warning.test.js b/test/functional/deprecate_warning.test.js index 4649213d8c..5833ce9d53 100644 --- a/test/functional/deprecate_warning.test.js +++ b/test/functional/deprecate_warning.test.js @@ -1,13 +1,16 @@ 'use strict'; const exec = require('child_process').exec; const chai = require('chai'); + const expect = chai.expect; const sinon = require('sinon'); const sinonChai = require('sinon-chai'); require('mocha-sinon'); + chai.use(sinonChai); const utils = require('../tools/utils'); + const ClassWithLogger = utils.ClassWithLogger; const ClassWithoutLogger = utils.ClassWithoutLogger; const ClassWithUndefinedLogger = utils.ClassWithUndefinedLogger; diff --git a/test/functional/error.test.js b/test/functional/error.test.js index c34d80122d..bd7ac3eb17 100644 --- a/test/functional/error.test.js +++ b/test/functional/error.test.js @@ -1,8 +1,10 @@ 'use strict'; const setupDatabase = require('./shared').setupDatabase; const chai = require('chai'); + const expect = chai.expect; const sinonChai = require('sinon-chai'); + chai.use(sinonChai); describe('Errors', function () { diff --git a/test/functional/explain.test.js b/test/functional/explain.test.js index b650563247..a412c1a65c 100644 --- a/test/functional/explain.test.js +++ b/test/functional/explain.test.js @@ -2,6 +2,7 @@ const { setupDatabase, withClient } = require('./shared'); const { MongoServerError } = require('../../src'); const chai = require('chai'); + const expect = chai.expect; describe('Explain', function () { diff --git a/test/functional/find_and_modify.test.js b/test/functional/find_and_modify.test.js index a0979c4f46..0739c8f8a1 100644 --- a/test/functional/find_and_modify.test.js +++ b/test/functional/find_and_modify.test.js @@ -1,6 +1,7 @@ 'use strict'; var f = require('util').format; var test = require('./shared').assert; + const { setupDatabase, withClient } = require(`./shared`); const { expect } = require('chai'); diff --git a/test/functional/operation_example.test.js b/test/functional/operation_example.test.js index ce111af5d4..a88de3348d 100644 --- a/test/functional/operation_example.test.js +++ b/test/functional/operation_example.test.js @@ -6,6 +6,7 @@ const { Topology } = require('../../src/sdam/topology'); const { Code, ObjectId, ReturnDocument } = require('../../src'); const chai = require('chai'); + const expect = chai.expect; chai.use(require('chai-subset')); diff --git a/test/functional/readpreference.test.js b/test/functional/readpreference.test.js index 2888e14bf3..3174642566 100644 --- a/test/functional/readpreference.test.js +++ b/test/functional/readpreference.test.js @@ -7,6 +7,7 @@ const { ReadPreference, Topology } = require('../../src'); const { withClient } = require('./shared'); const chai = require('chai'); chai.use(require('chai-subset')); + const expect = chai.expect; describe('ReadPreference', function () { diff --git a/test/functional/spec-runner/context.js b/test/functional/spec-runner/context.js index 1f3ae91354..6b6e76c95c 100644 --- a/test/functional/spec-runner/context.js +++ b/test/functional/spec-runner/context.js @@ -2,6 +2,7 @@ const { expect } = require('chai'); const { resolveConnectionString } = require('./utils'); const { ns } = require('../../../src/utils'); + class Thread { constructor() { this._killed = false; diff --git a/test/functional/spec-runner/index.js b/test/functional/spec-runner/index.js index c80d971931..8480a0e299 100644 --- a/test/functional/spec-runner/index.js +++ b/test/functional/spec-runner/index.js @@ -2,6 +2,7 @@ const path = require('path'); const fs = require('fs'); const chai = require('chai'); + const expect = chai.expect; const { EJSON } = require('bson'); const { isRecord } = require('../../../src/utils'); diff --git a/test/functional/unit-sdam/server_selection/spec.test.js b/test/functional/unit-sdam/server_selection/spec.test.js index 375d68bff7..348be4c28b 100644 --- a/test/functional/unit-sdam/server_selection/spec.test.js +++ b/test/functional/unit-sdam/server_selection/spec.test.js @@ -13,6 +13,7 @@ const { EJSON } = require('bson'); const sinon = require('sinon'); const chai = require('chai'); + const expect = chai.expect; chai.use(require('chai-subset')); diff --git a/test/functional/unit-sdam/spec.test.js b/test/functional/unit-sdam/spec.test.js index d0096d719d..6702467b53 100644 --- a/test/functional/unit-sdam/spec.test.js +++ b/test/functional/unit-sdam/spec.test.js @@ -20,6 +20,7 @@ const { eachAsyncSeries, ns } = require('../../../src/utils'); const chai = require('chai'); chai.use(require('chai-subset')); chai.use(require('../../functional/spec-runner/matcher').default); + const expect = chai.expect; const specDir = path.resolve(__dirname, '../../spec/server-discovery-and-monitoring'); diff --git a/test/functional/unit_deprecate_warning.test.js b/test/functional/unit_deprecate_warning.test.js index 7e85f270a8..1385811232 100644 --- a/test/functional/unit_deprecate_warning.test.js +++ b/test/functional/unit_deprecate_warning.test.js @@ -1,9 +1,11 @@ 'use strict'; const deprecateOptions = require('../../src/utils').deprecateOptions; const chai = require('chai'); + const expect = chai.expect; const sinonChai = require('sinon-chai'); require('mocha-sinon'); + chai.use(sinonChai); const makeTestFunction = require('../tools/utils').makeTestFunction; diff --git a/test/functional/write_concern.test.js b/test/functional/write_concern.test.js index bb6b784c51..e1298a52a1 100644 --- a/test/functional/write_concern.test.js +++ b/test/functional/write_concern.test.js @@ -1,6 +1,7 @@ 'use strict'; const chai = require('chai'); + const expect = chai.expect; const TestRunnerContext = require('./spec-runner').TestRunnerContext; const generateTopologyTests = require('./spec-runner').generateTopologyTests; diff --git a/test/integration/client-side-encryption/client_side_encryption.prose.test.js b/test/integration/client-side-encryption/client_side_encryption.prose.test.js index 7ee9232a68..acb5a53a8c 100644 --- a/test/integration/client-side-encryption/client_side_encryption.prose.test.js +++ b/test/integration/client-side-encryption/client_side_encryption.prose.test.js @@ -2,6 +2,7 @@ const BSON = require('bson'); const chai = require('chai'); const { deadlockTests } = require('./client_side_encryption.prose.deadlock'); + const expect = chai.expect; chai.use(require('chai-subset')); diff --git a/test/integration/client-side-encryption/driver.test.js b/test/integration/client-side-encryption/driver.test.js index 34a1217649..ed7496e60f 100644 --- a/test/integration/client-side-encryption/driver.test.js +++ b/test/integration/client-side-encryption/driver.test.js @@ -3,6 +3,7 @@ const crypto = require('crypto'); const BSON = require('bson'); const chai = require('chai'); + const expect = chai.expect; chai.use(require('chai-subset')); diff --git a/test/integration/crud/bulk.test.js b/test/integration/crud/bulk.test.js index 0616f7edba..6fff6fb95d 100644 --- a/test/integration/crud/bulk.test.js +++ b/test/integration/crud/bulk.test.js @@ -10,6 +10,7 @@ const { const { Long, MongoBatchReExecutionError, MongoDriverError } = require('../../../src'); const crypto = require('crypto'); const chai = require('chai'); + const expect = chai.expect; chai.use(require('chai-subset')); diff --git a/test/integration/crud/crud.spec.test.js b/test/integration/crud/crud.spec.test.js index 8311c27028..89821ff909 100644 --- a/test/integration/crud/crud.spec.test.js +++ b/test/integration/crud/crud.spec.test.js @@ -3,6 +3,7 @@ const fs = require('fs'); const path = require('path'); const chai = require('chai'); + const expect = chai.expect; chai.use(require('chai-subset')); diff --git a/test/integration/initial-dns-seedlist-discovery/initial_dns_seedlist_discovery.spec.test.ts b/test/integration/initial-dns-seedlist-discovery/initial_dns_seedlist_discovery.spec.test.ts index 7526727e4b..dbb16b80c9 100644 --- a/test/integration/initial-dns-seedlist-discovery/initial_dns_seedlist_discovery.spec.test.ts +++ b/test/integration/initial-dns-seedlist-discovery/initial_dns_seedlist_discovery.spec.test.ts @@ -1,10 +1,11 @@ +import { expect } from 'chai'; +import * as dns from 'dns'; import * as fs from 'fs'; import * as path from 'path'; -import * as dns from 'dns'; -import { expect } from 'chai'; import { promisify } from 'util'; -import { HostAddress } from '../../../src/utils'; + import { MongoClient } from '../../../src'; +import { HostAddress } from '../../../src/utils'; function makeTest(test, topology) { let client; diff --git a/test/manual/kerberos.test.js b/test/manual/kerberos.test.js index 744c9c678d..a2e5f139a4 100644 --- a/test/manual/kerberos.test.js +++ b/test/manual/kerberos.test.js @@ -1,6 +1,7 @@ 'use strict'; const { MongoClient } = require('../../src'); const chai = require('chai'); + const expect = chai.expect; function verifyKerberosAuthentication(client, done) { diff --git a/test/tools/deprecate_warning_test_program.js b/test/tools/deprecate_warning_test_program.js index c5f4e82ebf..14f75572d6 100644 --- a/test/tools/deprecate_warning_test_program.js +++ b/test/tools/deprecate_warning_test_program.js @@ -6,6 +6,7 @@ if (require.main !== module) { } const deprecateOptions = require('../../src/utils').deprecateOptions; + const testDeprecationFlags = deprecateOptions( { name: 'testDeprecationFlags', diff --git a/test/tools/mongodb-mock/src/request.js b/test/tools/mongodb-mock/src/request.js index a63ffa4edf..30b1440424 100644 --- a/test/tools/mongodb-mock/src/request.js +++ b/test/tools/mongodb-mock/src/request.js @@ -1,4 +1,5 @@ const BSON = require('bson'); + const { Long } = BSON; const { snappy } = require('./snappy_importer'); const zlib = require('zlib'); diff --git a/test/tools/mongodb-mock/src/wire_response.js b/test/tools/mongodb-mock/src/wire_response.js index 2ac8047a98..264839c65b 100644 --- a/test/tools/mongodb-mock/src/wire_response.js +++ b/test/tools/mongodb-mock/src/wire_response.js @@ -1,4 +1,5 @@ const BSON = require('bson'); + const { Long } = BSON; // Response flags diff --git a/test/tools/reporter/mongodb_reporter.js b/test/tools/reporter/mongodb_reporter.js index a5d4c40eec..896cebc196 100644 --- a/test/tools/reporter/mongodb_reporter.js +++ b/test/tools/reporter/mongodb_reporter.js @@ -2,6 +2,7 @@ 'use strict'; const mocha = require('mocha'); const chalk = require('chalk'); + const { EVENT_RUN_BEGIN, EVENT_RUN_END, diff --git a/test/tools/runner/chai-addons.js b/test/tools/runner/chai-addons.js index 06d5c5c3b0..f3d2018867 100644 --- a/test/tools/runner/chai-addons.js +++ b/test/tools/runner/chai-addons.js @@ -5,4 +5,5 @@ const chai = require('chai'); chai.use(require('sinon-chai')); chai.use(require('chai-subset')); chai.use(require('../../functional/spec-runner/matcher').default); + chai.config.truncateThreshold = 0; diff --git a/test/tools/runner/circular-dep-hack.js b/test/tools/runner/circular-dep-hack.js deleted file mode 100644 index bbc9d79007..0000000000 --- a/test/tools/runner/circular-dep-hack.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -// NODE-2899 remove this circular dependency workaround hack -const { MongoClient } = require('../../../src'); -if (!MongoClient) { - throw new Error('MongoClient should exist'); -} diff --git a/test/tools/spec-runner/context.js b/test/tools/spec-runner/context.js index 1f3ae91354..6b6e76c95c 100644 --- a/test/tools/spec-runner/context.js +++ b/test/tools/spec-runner/context.js @@ -2,6 +2,7 @@ const { expect } = require('chai'); const { resolveConnectionString } = require('./utils'); const { ns } = require('../../../src/utils'); + class Thread { constructor() { this._killed = false; diff --git a/test/tools/spec-runner/index.js b/test/tools/spec-runner/index.js index c80d971931..8480a0e299 100644 --- a/test/tools/spec-runner/index.js +++ b/test/tools/spec-runner/index.js @@ -2,6 +2,7 @@ const path = require('path'); const fs = require('fs'); const chai = require('chai'); + const expect = chai.expect; const { EJSON } = require('bson'); const { isRecord } = require('../../../src/utils'); diff --git a/test/tools/unified-spec-runner/entities.ts b/test/tools/unified-spec-runner/entities.ts index 6f0da03909..6aeb1b067b 100644 --- a/test/tools/unified-spec-runner/entities.ts +++ b/test/tools/unified-spec-runner/entities.ts @@ -1,39 +1,40 @@ +import { expect } from 'chai'; + +import { ChangeStream } from '../../../src/change_stream'; +import type { + CommandFailedEvent, + CommandStartedEvent, + CommandSucceededEvent +} from '../../../src/cmap/command_monitoring_events'; +import type { + ConnectionCheckedInEvent, + ConnectionCheckedOutEvent, + ConnectionCheckOutFailedEvent, + ConnectionCheckOutStartedEvent, + ConnectionClosedEvent, + ConnectionCreatedEvent, + ConnectionPoolClearedEvent, + ConnectionPoolClosedEvent, + ConnectionPoolCreatedEvent, + ConnectionReadyEvent +} from '../../../src/cmap/connection_pool_events'; +import { FindCursor } from '../../../src/cursor/find_cursor'; import { - MongoClient, - Db, Collection, - GridFSBucket, + Db, Document, - HostAddress + GridFSBucket, + HostAddress, + MongoClient } from '../../../src/index'; import { ReadConcern } from '../../../src/read_concern'; -import { WriteConcern } from '../../../src/write_concern'; import { ReadPreference } from '../../../src/read_preference'; import { ClientSession } from '../../../src/sessions'; -import { ChangeStream } from '../../../src/change_stream'; -import { FindCursor } from '../../../src/cursor/find_cursor'; -import type { ClientEntity, EntityDescription } from './schema'; -import type { - ConnectionPoolCreatedEvent, - ConnectionPoolClosedEvent, - ConnectionCreatedEvent, - ConnectionReadyEvent, - ConnectionClosedEvent, - ConnectionCheckOutStartedEvent, - ConnectionCheckOutFailedEvent, - ConnectionCheckedOutEvent, - ConnectionCheckedInEvent, - ConnectionPoolClearedEvent -} from '../../../src/cmap/connection_pool_events'; -import type { - CommandFailedEvent, - CommandStartedEvent, - CommandSucceededEvent -} from '../../../src/cmap/command_monitoring_events'; -import { makeConnectionString, patchCollectionOptions, patchDbOptions } from './unified-utils'; -import { expect } from 'chai'; +import { WriteConcern } from '../../../src/write_concern'; import { ejson, getEnvironmentalOptions } from '../../tools/utils'; import { TestConfiguration, trace } from './runner'; +import type { ClientEntity, EntityDescription } from './schema'; +import { makeConnectionString, patchCollectionOptions, patchDbOptions } from './unified-utils'; interface UnifiedChangeStream extends ChangeStream { eventCollector: InstanceType; diff --git a/test/tools/unified-spec-runner/match.ts b/test/tools/unified-spec-runner/match.ts index 51ecc35372..39a83c7036 100644 --- a/test/tools/unified-spec-runner/match.ts +++ b/test/tools/unified-spec-runner/match.ts @@ -1,24 +1,25 @@ import { expect } from 'chai'; import { inspect } from 'util'; -import { Binary, Document, Long, ObjectId, MongoError } from '../../../src'; + +import { Binary, Document, Long, MongoError, ObjectId } from '../../../src'; import { CommandFailedEvent, CommandStartedEvent, CommandSucceededEvent } from '../../../src/cmap/command_monitoring_events'; import { - ConnectionPoolCreatedEvent, - ConnectionPoolClosedEvent, - ConnectionCreatedEvent, - ConnectionReadyEvent, - ConnectionClosedEvent, - ConnectionCheckOutStartedEvent, - ConnectionCheckOutFailedEvent, - ConnectionCheckedOutEvent, ConnectionCheckedInEvent, - ConnectionPoolClearedEvent + ConnectionCheckedOutEvent, + ConnectionCheckOutFailedEvent, + ConnectionCheckOutStartedEvent, + ConnectionClosedEvent, + ConnectionCreatedEvent, + ConnectionPoolClearedEvent, + ConnectionPoolClosedEvent, + ConnectionPoolCreatedEvent, + ConnectionReadyEvent } from '../../../src/cmap/connection_pool_events'; -import { CommandEvent, CmapEvent, EntitiesMap } from './entities'; +import { CmapEvent, CommandEvent, EntitiesMap } from './entities'; import { ExpectedCmapEvent, ExpectedCommandEvent, ExpectedError } from './schema'; export interface ExistsOperator { diff --git a/test/tools/unified-spec-runner/operations.ts b/test/tools/unified-spec-runner/operations.ts index cad0e0cd62..c067e93df6 100644 --- a/test/tools/unified-spec-runner/operations.ts +++ b/test/tools/unified-spec-runner/operations.ts @@ -1,15 +1,23 @@ /* eslint-disable @typescript-eslint/no-unused-vars */ import { expect } from 'chai'; -import { Collection, Db, GridFSFile, MongoClient, ObjectId, AbstractCursor } from '../../../src'; + +import { + AbstractCursor, + Collection, + Db, + Document, + GridFSFile, + MongoClient, + ObjectId +} from '../../../src'; +import { CommandStartedEvent } from '../../../src/cmap/command_monitoring_events'; import { ReadConcern } from '../../../src/read_concern'; import { ReadPreference } from '../../../src/read_preference'; import { WriteConcern } from '../../../src/write_concern'; -import { Document } from '../../../src'; import { EventCollector } from '../../tools/utils'; import { EntitiesMap } from './entities'; import { expectErrorCheck, resultCheck } from './match'; import type { OperationDescription } from './schema'; -import { CommandStartedEvent } from '../../../src/cmap/command_monitoring_events'; import { translateOptions } from './unified-utils'; interface OperationFunctionParams { diff --git a/test/tools/unified-spec-runner/runner.ts b/test/tools/unified-spec-runner/runner.ts index 6c6ec0858b..56fd98f9dc 100644 --- a/test/tools/unified-spec-runner/runner.ts +++ b/test/tools/unified-spec-runner/runner.ts @@ -1,15 +1,16 @@ import { expect } from 'chai'; -import { ReadPreference } from '../../../src/read_preference'; -import * as uni from './schema'; -import { zip, topologySatisfies, patchVersion } from './unified-utils'; -import { CmapEvent, CommandEvent, EntitiesMap } from './entities'; -import { ns } from '../../../src/utils'; -import { executeOperationAndCheck } from './operations'; -import { matchesEvents } from './match'; import { satisfies as semverSatisfies } from 'semver'; + import { MongoClient } from '../../../src/mongo_client'; +import { ReadPreference } from '../../../src/read_preference'; import { TopologyType } from '../../../src/sdam/common'; +import { ns } from '../../../src/utils'; import { ejson } from '../utils'; +import { CmapEvent, CommandEvent, EntitiesMap } from './entities'; +import { matchesEvents } from './match'; +import { executeOperationAndCheck } from './operations'; +import * as uni from './schema'; +import { patchVersion, topologySatisfies, zip } from './unified-utils'; export type TestConfiguration = InstanceType< typeof import('../../tools/runner/config')['TestConfiguration'] diff --git a/test/tools/unified-spec-runner/unified-utils.ts b/test/tools/unified-spec-runner/unified-utils.ts index 639ce9d542..3ce2ae8538 100644 --- a/test/tools/unified-spec-runner/unified-utils.ts +++ b/test/tools/unified-spec-runner/unified-utils.ts @@ -1,12 +1,13 @@ import { expect } from 'chai'; -import type { Document } from '../../../src'; -import type { CollectionOrDatabaseOptions, RunOnRequirement } from './schema'; +import ConnectionString from 'mongodb-connection-string-url'; import { gte as semverGte, lte as semverLte } from 'semver'; -import { CollectionOptions, DbOptions, MongoClient } from '../../../src'; import { isDeepStrictEqual } from 'util'; -import { TestConfiguration } from './runner'; + +import type { Document } from '../../../src'; +import { CollectionOptions, DbOptions, MongoClient } from '../../../src'; import { shouldRunServerlessTest } from '../../tools/utils'; -import ConnectionString from 'mongodb-connection-string-url'; +import { TestConfiguration } from './runner'; +import type { CollectionOrDatabaseOptions, RunOnRequirement } from './schema'; const ENABLE_UNIFIED_TEST_LOGGING = false; export function log(message: unknown, ...optionalParameters: unknown[]): void { diff --git a/test/tools/utils.js b/test/tools/utils.js index 985e1c5d78..6cb4689394 100644 --- a/test/tools/utils.js +++ b/test/tools/utils.js @@ -5,9 +5,11 @@ const { deprecateOptions, arrayStrictEqual, errorStrictEqual } = require('../../ const chalk = require('chalk'); const util = require('util'); const chai = require('chai'); + const expect = chai.expect; const sinonChai = require('sinon-chai'); const { EJSON } = require('bson'); + chai.use(sinonChai); function makeTestFunction(config) { diff --git a/test/types/admin.test-d.ts b/test/types/admin.test-d.ts index ef76c3fb40..2da6d19ddc 100644 --- a/test/types/admin.test-d.ts +++ b/test/types/admin.test-d.ts @@ -1,4 +1,5 @@ import { expectType } from 'tsd'; + import { Document, MongoClient } from '../../src/index'; const client = new MongoClient(''); diff --git a/test/types/basic_schema.test-d.ts b/test/types/basic_schema.test-d.ts index 04bc7c5da9..6c2ab62dbe 100644 --- a/test/types/basic_schema.test-d.ts +++ b/test/types/basic_schema.test-d.ts @@ -1,7 +1,7 @@ import { expectAssignable, expectNotType, expectType } from 'tsd'; -import { Collection } from '../../src/collection'; import { ObjectId } from '../../src/bson'; +import { Collection } from '../../src/collection'; import { Db } from '../../src/db'; import { MongoClient } from '../../src/mongo_client'; import type { InferIdType } from '../../src/mongo_types'; diff --git a/test/types/bson.test-d.ts b/test/types/bson.test-d.ts index 8c5381ee2b..495aa90d0c 100644 --- a/test/types/bson.test-d.ts +++ b/test/types/bson.test-d.ts @@ -1,4 +1,5 @@ import { expectType } from 'tsd'; + import type { BSONSerializeOptions, Document } from '../../src/bson'; const options: BSONSerializeOptions = {}; diff --git a/test/types/community/bulk/bulk-operation-base.test-d.ts b/test/types/community/bulk/bulk-operation-base.test-d.ts index 45e7c44aaf..7f148c7c99 100644 --- a/test/types/community/bulk/bulk-operation-base.test-d.ts +++ b/test/types/community/bulk/bulk-operation-base.test-d.ts @@ -1,17 +1,17 @@ import { expectType } from 'tsd'; +import { Batch, BulkOperationBase } from '../../../../src/bulk/common'; import { - BulkWriteResult, - MongoClient, - BatchType, - UpdateStatement, - DeleteStatement, AnyError, + BatchType, BulkWriteOptions, + BulkWriteResult, Callback, - Document + DeleteStatement, + Document, + MongoClient, + UpdateStatement } from '../../../../src/index'; -import { BulkOperationBase, Batch } from '../../../../src/bulk/common'; const client = new MongoClient(''); const db = client.db('test'); diff --git a/test/types/community/changes_from_36.test-d.ts b/test/types/community/changes_from_36.test-d.ts index 5597076804..74e9c14a1b 100644 --- a/test/types/community/changes_from_36.test-d.ts +++ b/test/types/community/changes_from_36.test-d.ts @@ -1,7 +1,7 @@ /* eslint-disable @typescript-eslint/ban-types */ import type { PeerCertificate } from 'tls'; -import type { PropExists } from '../utility_types'; import { expectAssignable, expectError, expectNotType, expectType } from 'tsd'; + import { LoggerLevel, MongoClient, @@ -9,6 +9,7 @@ import { ReadPreference, ReadPreferenceMode } from '../../../src'; +import type { PropExists } from '../utility_types'; type MongoDBImport = typeof import('../../../src'); diff --git a/test/types/community/client.test-d.ts b/test/types/community/client.test-d.ts index 51aa990211..79000b8e35 100644 --- a/test/types/community/client.test-d.ts +++ b/test/types/community/client.test-d.ts @@ -1,5 +1,6 @@ /* eslint-disable @typescript-eslint/no-empty-function */ import { expectType } from 'tsd'; + import { GridFSBucket, MongoClient, diff --git a/test/types/community/collection/aggregate.test-d.ts b/test/types/community/collection/aggregate.test-d.ts index 66dffde960..5f0022bb62 100644 --- a/test/types/community/collection/aggregate.test-d.ts +++ b/test/types/community/collection/aggregate.test-d.ts @@ -1,5 +1,6 @@ import { expectNotType, expectType } from 'tsd'; -import { AggregationCursor, MongoClient, Document } from '../../../../src/index'; + +import { AggregationCursor, Document, MongoClient } from '../../../../src/index'; // collection.aggregate tests const client = new MongoClient(''); diff --git a/test/types/community/collection/bulkWrite.test-d.ts b/test/types/community/collection/bulkWrite.test-d.ts index 9502d965ad..b35c1e4d05 100644 --- a/test/types/community/collection/bulkWrite.test-d.ts +++ b/test/types/community/collection/bulkWrite.test-d.ts @@ -1,4 +1,5 @@ import { expectError } from 'tsd'; + import { MongoClient, ObjectId } from '../../../../src/index'; // TODO(NODE-3347): Improve these tests to use more expect assertions diff --git a/test/types/community/collection/count.test-d.ts b/test/types/community/collection/count.test-d.ts index 74c1195741..314a98f0c3 100644 --- a/test/types/community/collection/count.test-d.ts +++ b/test/types/community/collection/count.test-d.ts @@ -1,4 +1,5 @@ import { expectDeprecated, expectType } from 'tsd'; + import { MongoClient } from '../../../../src/index'; // test collection.countDocuments diff --git a/test/types/community/collection/distinct.test-d.ts b/test/types/community/collection/distinct.test-d.ts index f62e2e2c2b..655cd97359 100644 --- a/test/types/community/collection/distinct.test-d.ts +++ b/test/types/community/collection/distinct.test-d.ts @@ -1,4 +1,5 @@ import { expectType } from 'tsd'; + import { MongoClient, ObjectId } from '../../../../src/index'; // test collection.distinct functions diff --git a/test/types/community/collection/filterQuery.test-d.ts b/test/types/community/collection/filterQuery.test-d.ts index 95fd1035c4..06d337e98e 100644 --- a/test/types/community/collection/filterQuery.test-d.ts +++ b/test/types/community/collection/filterQuery.test-d.ts @@ -1,5 +1,6 @@ import { BSONRegExp, Decimal128, ObjectId } from 'bson'; import { expectAssignable, expectNotType, expectType } from 'tsd'; + import { Filter, MongoClient, WithId } from '../../../../src'; /** diff --git a/test/types/community/collection/findX.test-d.ts b/test/types/community/collection/findX.test-d.ts index fe6a38d72b..1310f1bf79 100644 --- a/test/types/community/collection/findX.test-d.ts +++ b/test/types/community/collection/findX.test-d.ts @@ -1,15 +1,16 @@ import { expectAssignable, expectNotType, expectType } from 'tsd'; + +import type { Projection, ProjectionOperators } from '../../../../src'; import { + Collection, + Db, + Document, FindCursor, FindOptions, MongoClient, - Document, - Collection, - Db, - WithId, - ObjectId + ObjectId, + WithId } from '../../../../src'; -import type { Projection, ProjectionOperators } from '../../../../src'; import type { PropExists } from '../../utility_types'; // collection.findX tests diff --git a/test/types/community/collection/insertX.test-d.ts b/test/types/community/collection/insertX.test-d.ts index c2cb43ba4c..8e325ffe1f 100644 --- a/test/types/community/collection/insertX.test-d.ts +++ b/test/types/community/collection/insertX.test-d.ts @@ -1,4 +1,5 @@ import { expectError, expectNotAssignable, expectNotType, expectType } from 'tsd'; + import { MongoClient, ObjectId, OptionalId } from '../../../../src'; import type { PropExists } from '../../utility_types'; diff --git a/test/types/community/collection/replaceX.test-d.ts b/test/types/community/collection/replaceX.test-d.ts index 6bd2e8c081..78656073ed 100644 --- a/test/types/community/collection/replaceX.test-d.ts +++ b/test/types/community/collection/replaceX.test-d.ts @@ -1,4 +1,5 @@ import { expectError } from 'tsd'; + import { MongoClient, ObjectId } from '../../../../src'; // test collection.replaceX functions diff --git a/test/types/community/collection/updateX.test-d.ts b/test/types/community/collection/updateX.test-d.ts index 427553a0f8..ae562e66c6 100644 --- a/test/types/community/collection/updateX.test-d.ts +++ b/test/types/community/collection/updateX.test-d.ts @@ -1,23 +1,24 @@ import { expectAssignable, expectError, expectNotAssignable, expectNotType } from 'tsd'; + import { Decimal128, + Document, Double, Int32, Long, - ObjectId, - Timestamp, MongoClient, - Document + ObjectId, + Timestamp } from '../../../../src/index'; import type { - UpdateFilter, - MatchKeysAndValues, AddToSetOperators, ArrayOperator, - SetFields, - PushOperator, + MatchKeysAndValues, + PullAllOperator, PullOperator, - PullAllOperator + PushOperator, + SetFields, + UpdateFilter } from '../../../../src/mongo_types'; // MatchKeysAndValues - for basic mapping keys to their values, restricts that key types must be the same but optional, and permit dot array notation diff --git a/test/types/community/createIndex.test-d.ts b/test/types/community/createIndex.test-d.ts index e9014c4c6a..5462948ff9 100644 --- a/test/types/community/createIndex.test-d.ts +++ b/test/types/community/createIndex.test-d.ts @@ -1,5 +1,6 @@ import { expectType } from 'tsd'; -import { CreateIndexesOptions, MongoClient, Document } from '../../../src'; + +import { CreateIndexesOptions, Document, MongoClient } from '../../../src'; const client = new MongoClient(''); const db = client.db('test'); diff --git a/test/types/community/cursor.test-d.ts b/test/types/community/cursor.test-d.ts index e212a1a2d2..05c16f28ed 100644 --- a/test/types/community/cursor.test-d.ts +++ b/test/types/community/cursor.test-d.ts @@ -1,6 +1,7 @@ import type { Readable } from 'stream'; import { expectNotType, expectType } from 'tsd'; -import { FindCursor, MongoClient, Db, Document } from '../../../src/index'; + +import { Db, Document, FindCursor, MongoClient } from '../../../src/index'; // TODO(NODE-3346): Improve these tests to use expect assertions more diff --git a/test/types/community/db/createCollection.test-d.ts b/test/types/community/db/createCollection.test-d.ts index 0f49808422..28da4deb2f 100644 --- a/test/types/community/db/createCollection.test-d.ts +++ b/test/types/community/db/createCollection.test-d.ts @@ -1,12 +1,12 @@ import { expectType } from 'tsd'; import { - MongoClient, - ObjectId, + AnyError, + Callback, Collection, CreateCollectionOptions, - AnyError, - Callback + MongoClient, + ObjectId } from '../../../../src/index'; const client = new MongoClient(''); diff --git a/test/types/community/stats.test-d.ts b/test/types/community/stats.test-d.ts index 8c976aab35..813a056e6f 100644 --- a/test/types/community/stats.test-d.ts +++ b/test/types/community/stats.test-d.ts @@ -1,4 +1,5 @@ import { expectType } from 'tsd'; + import { CollStats, MongoClient } from '../../../src/index'; const client = new MongoClient(''); diff --git a/test/types/gridfs_types.test-d.ts b/test/types/gridfs_types.test-d.ts index 56b90e0f49..eb6a1277cb 100644 --- a/test/types/gridfs_types.test-d.ts +++ b/test/types/gridfs_types.test-d.ts @@ -1,5 +1,6 @@ import { Readable } from 'stream'; import { expectType } from 'tsd'; + import type { GridFSBucket, GridFSBucketWriteStream } from '../../src'; (function test(bucket: GridFSBucket) { diff --git a/test/types/helper_types.test-d.ts b/test/types/helper_types.test-d.ts index 33253a4e5b..f73a319255 100644 --- a/test/types/helper_types.test-d.ts +++ b/test/types/helper_types.test-d.ts @@ -1,17 +1,18 @@ import { expectAssignable, expectNotAssignable, expectNotType, expectType } from 'tsd'; + +import { Decimal128, Document, Double, Int32, Long } from '../../src/index'; import type { AcceptedFields, + FilterOperations, + IntegerType, + IsAny, KeysOfAType, KeysOfOtherType, NotAcceptedFields, NumericType, - FilterOperations, - OnlyFieldsOfType, - IntegerType, - IsAny, - OneOrMore + OneOrMore, + OnlyFieldsOfType } from '../../src/mongo_types'; -import { Decimal128, Double, Int32, Long, Document } from '../../src/index'; expectType>(true); expectNotType>(true); diff --git a/test/types/index_options.test-d.ts b/test/types/index_options.test-d.ts index 717b0430f5..169b226daf 100644 --- a/test/types/index_options.test-d.ts +++ b/test/types/index_options.test-d.ts @@ -1,4 +1,5 @@ import { expectAssignable, expectNotAssignable } from 'tsd'; + import type { IndexDescription } from '../../src'; // test that all valid index options are allowed in IndexDescription diff --git a/test/types/indexed_schema.test-d.ts b/test/types/indexed_schema.test-d.ts index 690f3e13ea..d1af657230 100644 --- a/test/types/indexed_schema.test-d.ts +++ b/test/types/indexed_schema.test-d.ts @@ -1,7 +1,7 @@ -import { expectType, expectNotType, expectError } from 'tsd'; +import { expectError, expectNotType, expectType } from 'tsd'; -import { Collection } from '../../src/collection'; import { ObjectId } from '../../src/bson'; +import { Collection } from '../../src/collection'; import { Db } from '../../src/db'; import { MongoClient } from '../../src/mongo_client'; diff --git a/test/types/indexes_test-d.ts b/test/types/indexes_test-d.ts index c0f8d1db34..430559a5fc 100644 --- a/test/types/indexes_test-d.ts +++ b/test/types/indexes_test-d.ts @@ -1,5 +1,6 @@ import { expectType } from 'tsd'; -import { MongoClient, Document, AnyError } from '../../src'; + +import { AnyError, Document, MongoClient } from '../../src'; const client = new MongoClient(''); const db = client.db('test'); diff --git a/test/types/list_collections.test-d.ts b/test/types/list_collections.test-d.ts index be67027206..5dfb2923af 100644 --- a/test/types/list_collections.test-d.ts +++ b/test/types/list_collections.test-d.ts @@ -1,4 +1,4 @@ -import { expectType, expectNotType } from 'tsd'; +import { expectNotType, expectType } from 'tsd'; import { MongoClient } from '../../src/mongo_client'; import type { CollectionInfo, ListCollectionsCursor } from '../../src/operations/list_collections'; diff --git a/test/types/mongodb.test-d.ts b/test/types/mongodb.test-d.ts index 4088c13148..82c652912f 100644 --- a/test/types/mongodb.test-d.ts +++ b/test/types/mongodb.test-d.ts @@ -1,13 +1,14 @@ -import { expectType, expectDeprecated, expectNotDeprecated, expectError } from 'tsd'; -import { MongoClient } from '../../src/mongo_client'; +import type { Document } from 'bson'; +import { expectDeprecated, expectError, expectNotDeprecated, expectType } from 'tsd'; + +import { Db, WithId } from '../../src'; +import * as MongoDBDriver from '../../src'; +import type { ChangeStreamDocument } from '../../src/change_stream'; import { Collection } from '../../src/collection'; import { AggregationCursor } from '../../src/cursor/aggregation_cursor'; import type { FindCursor } from '../../src/cursor/find_cursor'; -import type { ChangeStreamDocument } from '../../src/change_stream'; -import type { Document } from 'bson'; -import { Db, WithId } from '../../src'; +import { MongoClient } from '../../src/mongo_client'; import { Topology } from '../../src/sdam/topology'; -import * as MongoDBDriver from '../../src'; // We wish to keep these APIs but continue to ensure they are marked as deprecated. expectDeprecated(Collection.prototype.insert); diff --git a/test/types/schema_helpers.test-d.ts b/test/types/schema_helpers.test-d.ts index 780b21dbe7..8281a90aa8 100644 --- a/test/types/schema_helpers.test-d.ts +++ b/test/types/schema_helpers.test-d.ts @@ -1,14 +1,14 @@ +import { Document, ObjectId } from 'bson'; +import { expectAssignable, expectNotType, expectType } from 'tsd'; + import type { + EnhancedOmit, InferIdType, - WithId, - WithoutId, OptionalId, - EnhancedOmit + WithId, + WithoutId } from '../../src/mongo_types'; -import { expectType, expectNotType, expectAssignable } from 'tsd'; -import { Document, ObjectId } from 'bson'; - // InferIdType expectType>(new ObjectId()); expectType>(1 + 1); diff --git a/test/types/sessions.test-d.ts b/test/types/sessions.test-d.ts index dc2df9dd58..de029cb495 100644 --- a/test/types/sessions.test-d.ts +++ b/test/types/sessions.test-d.ts @@ -1,4 +1,5 @@ -import { expectType, expectError } from 'tsd'; +import { expectError, expectType } from 'tsd'; + import { MongoClient } from '../../src/mongo_client'; import { ReadConcern, ReadConcernLevel } from '../../src/read_concern'; import type { ClientSession } from '../../src/sessions'; diff --git a/test/types/union_schema.test-d.ts b/test/types/union_schema.test-d.ts index 7bd8d488ec..cff5efe6fa 100644 --- a/test/types/union_schema.test-d.ts +++ b/test/types/union_schema.test-d.ts @@ -1,7 +1,7 @@ -import { expectType, expectError, expectNotType, expectNotAssignable, expectAssignable } from 'tsd'; +import { expectAssignable, expectError, expectNotAssignable, expectNotType, expectType } from 'tsd'; -import type { Collection } from '../../src/collection'; import { ObjectId } from '../../src/bson'; +import type { Collection } from '../../src/collection'; import type { WithId } from '../../src/mongo_types'; type InsertOneFirstParam = Parameters['insertOne']>[0]; diff --git a/test/unit/commands.test.ts b/test/unit/commands.test.ts index ccc44eb5e8..6c564da6a9 100644 --- a/test/unit/commands.test.ts +++ b/test/unit/commands.test.ts @@ -1,8 +1,8 @@ -import { expect } from 'chai'; -import { BinMsg, MessageHeader } from '../../src/cmap/commands'; import { BSONError } from 'bson'; +import { expect } from 'chai'; + import * as BSON from '../../src/bson'; -import { test } from 'mocha'; +import { BinMsg, MessageHeader } from '../../src/cmap/commands'; const msgHeader: MessageHeader = { length: 735, @@ -41,7 +41,7 @@ const nKeyWithInvalidUtf8 = const msgBodyNKeyWithInvalidUtf8 = Buffer.from(nKeyWithInvalidUtf8, 'hex'); describe('BinMsg BSON utf8 validation', () => { - test('bson correctly deserializes data with replacement characters for invalid utf8 in writeErrors object', () => { + it('bson correctly deserializes data with replacement characters for invalid utf8 in writeErrors object', () => { // this is a sanity check to make sure nothing unexpected is happening in the deserialize method itself const options = { validation: { utf8: { writeErrors: false } as const } }; diff --git a/test/unit/connection_string.test.js b/test/unit/connection_string.test.js index 366a1530b6..d4bda2cfb2 100644 --- a/test/unit/connection_string.test.js +++ b/test/unit/connection_string.test.js @@ -3,7 +3,7 @@ const { MongoParseError, MongoDriverError, MongoInvalidArgumentError } = require('../../src/error'); const { loadSpecTests } = require('../spec'); const { parseOptions } = require('../../src/connection_string'); -const { AuthMechanism } = require('../../src/cmap/auth/defaultAuthProviders'); +const { AuthMechanism } = require('../../src/cmap/auth/providers'); const { expect } = require('chai'); // NOTE: These are cases we could never check for unless we write our own diff --git a/test/unit/imports.test.ts b/test/unit/imports.test.ts new file mode 100644 index 0000000000..c29c869fcb --- /dev/null +++ b/test/unit/imports.test.ts @@ -0,0 +1,27 @@ +import { execSync } from 'child_process'; +import * as fs from 'fs'; +import * as path from 'path'; + +function* walk(root) { + const directoryContents = fs.readdirSync(root); + for (const filepath of directoryContents) { + const fullPath = path.join(root, filepath); + const stat = fs.statSync(fullPath); + if (stat.isDirectory()) { + yield* walk(fullPath); + } else if (stat.isFile()) { + yield fullPath; + } + } +} + +describe('importing mongodb driver', () => { + const sourceFiles = walk(path.resolve(__dirname, '../../src')); + + for (const sourceFile of sourceFiles) { + const sliceFrom = sourceFile.indexOf('src'); + it(`should import ${sourceFile.slice(sliceFrom)} directly without issue`, () => { + execSync(`./node_modules/.bin/ts-node -e "require('${sourceFile}')"`); + }); + } +}); diff --git a/test/unit/polling_srv_records_for_mongos_discovery.prose.test.ts b/test/unit/polling_srv_records_for_mongos_discovery.prose.test.ts index 62970c7e92..e1eb517d4c 100644 --- a/test/unit/polling_srv_records_for_mongos_discovery.prose.test.ts +++ b/test/unit/polling_srv_records_for_mongos_discovery.prose.test.ts @@ -1,10 +1,11 @@ +import { expect } from 'chai'; import * as dns from 'dns'; import * as sinon from 'sinon'; -import { expect } from 'chai'; + import { MongoClient } from '../../src'; -import { processTick } from '../tools/utils'; -import { it } from 'mocha'; import * as mock from '../tools/mongodb-mock/index'; +import type { MockServer } from '../tools/mongodb-mock/src/server'; +import { processTick } from '../tools/utils'; /* The SRV Prose Tests make use of the following REAL DNS records. @@ -26,7 +27,7 @@ import * as mock from '../tools/mongodb-mock/index'; const srvRecord = (name, port) => ({ name, port, weight: 0, priority: 0 }); interface ShardedClusterMocks { - mongoses: mock.MockServer[]; + mongoses: MockServer[]; readonly srvRecords: dns.SrvRecord[]; } diff --git a/test/unit/read_preference.test.ts b/test/unit/read_preference.test.ts index a149eda990..8f18aa22e8 100644 --- a/test/unit/read_preference.test.ts +++ b/test/unit/read_preference.test.ts @@ -1,6 +1,7 @@ -import { ReadPreference } from '../../src'; import { expect } from 'chai'; +import { ReadPreference } from '../../src'; + describe('class ReadPreference', function () { const maxStalenessSeconds = 1234; const { PRIMARY, SECONDARY, NEAREST } = ReadPreference; diff --git a/test/unit/unit_snappy.test.js b/test/unit/unit_snappy.test.js index 001af32b6f..06321bb60a 100644 --- a/test/unit/unit_snappy.test.js +++ b/test/unit/unit_snappy.test.js @@ -2,6 +2,7 @@ const { expect } = require('chai'); const mock = require('../tools/mongodb-mock/index'); + const snappy = optionalRequire('snappy'); const snappyVersion = optionalRequire('snappy/package.json').version; const { MongoClient } = require('../../src');