From 39822b3012b26f4b296c700dd6c7050b30c8cc83 Mon Sep 17 00:00:00 2001 From: Florin Cozloschi <115977960+florincoz@users.noreply.github.com> Date: Fri, 13 Jan 2023 13:07:05 +0200 Subject: [PATCH 1/3] move metrics closer to redis get and disable autopipelining --- src/services/caching/cache.service.ts | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/src/services/caching/cache.service.ts b/src/services/caching/cache.service.ts index 07e08c511..e8cd4cc16 100644 --- a/src/services/caching/cache.service.ts +++ b/src/services/caching/cache.service.ts @@ -32,7 +32,7 @@ export class CachingService { const delay = Math.min(times * 50, 5000); return delay; }, - enableAutoPipelining: true, + enableAutoPipelining: false, }; constructor( @@ -45,7 +45,13 @@ export class CachingService { this.client = setClient(this.options); this.remoteGetExecutor = new PendingExecutor( - async (key: string) => await this.client.get(key), + async (key: string) => { + const profiler = new PerformanceProfiler(); + const redisResponse = await this.client.get(key); + profiler.stop(); + MetricsCollector.setRedisDuration('GET', profiler.duration); + return redisResponse; + } ); this.remoteDelExecutor = new PendingExecutor( @@ -80,13 +86,8 @@ export class CachingService { } private async getCacheRemote(key: string): Promise { - const profiler = new PerformanceProfiler(); - const response = await this.remoteGetExecutor.execute(key); - profiler.stop(); - MetricsCollector.setRedisDuration('GET', profiler.duration); - if (response === undefined || response === this.UNDEFINED_CACHE_VALUE) { return undefined; } @@ -116,13 +117,13 @@ export class CachingService { const writeValue = typeof value === 'object' ? { - serialized: true, - value: JSON.stringify(value), - } + serialized: true, + value: JSON.stringify(value), + } : { - serialized: false, - value, - }; + serialized: false, + value, + }; localCache.set(key, writeValue, { ttl: ttl * 1000 }); return value; } From ce13b1efc782da5324b8d77ab570ea6a2ce2e545 Mon Sep 17 00:00:00 2001 From: Florin Cozloschi <115977960+florincoz@users.noreply.github.com> Date: Fri, 13 Jan 2023 13:15:26 +0200 Subject: [PATCH 2/3] update package-lock.json --- package-lock.json | 483 ++++++++++++++++++++++++++-------------------- 1 file changed, 278 insertions(+), 205 deletions(-) diff --git a/package-lock.json b/package-lock.json index def824f80..558d4f8a3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -246,12 +246,12 @@ "dev": true }, "node_modules/@apollo/composition": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@apollo/composition/-/composition-2.2.2.tgz", - "integrity": "sha512-5wj9FqDu4E4xfOOLz4SKib8eJQgamHCgOdxwmrGj9N3B8o6P2A+zMfKEVHvEnSpRMKRm9HVcdSGdYV6QcjDIdQ==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@apollo/composition/-/composition-2.2.3.tgz", + "integrity": "sha512-wgBZHbt1F8KS8JVzsEHVVQXSzu+ZT8K9Aa9AYFP6axT4wDZTmpQDS7C34E9TyjIDBmUydmrDm5CiZ0KeFReA8Q==", "dependencies": { - "@apollo/federation-internals": "^2.2.2", - "@apollo/query-graphs": "^2.2.2" + "@apollo/federation-internals": "^2.2.3", + "@apollo/query-graphs": "^2.2.3" }, "engines": { "node": ">=14.15.0" @@ -261,9 +261,9 @@ } }, "node_modules/@apollo/federation-internals": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@apollo/federation-internals/-/federation-internals-2.2.2.tgz", - "integrity": "sha512-Q16I75qZ6jA8lCoZedM5938oZONrJyL7Pk6TOqw44fndea0As0pb2Ug8dV3pAWq4HhJ+/vBu2WoP14CFcxA9Yw==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@apollo/federation-internals/-/federation-internals-2.2.3.tgz", + "integrity": "sha512-6XN1p5AJAlACYBo+EbwPSYnmfRXPPNxlZRLSplB/PWBy9DnF+z+uq3L85Nqmom1JYepFf7JaUuWPBzCvjxAbmg==", "dependencies": { "chalk": "^4.1.0", "js-levenshtein": "^1.1.6" @@ -276,13 +276,13 @@ } }, "node_modules/@apollo/gateway": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@apollo/gateway/-/gateway-2.2.2.tgz", - "integrity": "sha512-oSsrbf7svgbmhAe8tSpPh3hDblWcRM/Elx8hCfGEmnDR+nZy2/kfsknk0SFKWdPSq/agtdAXFwdKfWN2DF2rYg==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@apollo/gateway/-/gateway-2.2.3.tgz", + "integrity": "sha512-kTdSZq7qoGQ/Dlbz4CYTqdsXNfiy9cj+vjTRzf8JSS1Zf3QdllSrSCbWDPjBZOkTBhVoHETkgZ5xAwR4Sgb/3g==", "dependencies": { - "@apollo/composition": "^2.2.2", - "@apollo/federation-internals": "^2.2.2", - "@apollo/query-planner": "^2.2.2", + "@apollo/composition": "^2.2.3", + "@apollo/federation-internals": "^2.2.3", + "@apollo/query-planner": "^2.2.3", "@apollo/server-gateway-interface": "^1.0.2", "@apollo/usage-reporting-protobuf": "^4.0.0", "@apollo/utils.createhash": "^1.1.0", @@ -331,11 +331,11 @@ } }, "node_modules/@apollo/query-graphs": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@apollo/query-graphs/-/query-graphs-2.2.2.tgz", - "integrity": "sha512-NHxqfDEsMNFqwxSQ8lqj9APP0jGQAvxt0LOEb4WZgVdw303g1qxu2BapUS4YjxKVRqHDap/EAzBHgwg4J2zfjA==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@apollo/query-graphs/-/query-graphs-2.2.3.tgz", + "integrity": "sha512-ykH5P72zPtnV8J415o8HX6IkJH8qBd3a+5qZCA1Fx5vLb1Y2RdKDDn2I6VH9dBFuVMQ8ggXvz1/F9XRMudO7ZQ==", "dependencies": { - "@apollo/federation-internals": "^2.2.2", + "@apollo/federation-internals": "^2.2.3", "@types/uuid": "^8.3.4", "deep-equal": "^2.0.5", "ts-graphviz": "^0.16.0", @@ -349,12 +349,12 @@ } }, "node_modules/@apollo/query-planner": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@apollo/query-planner/-/query-planner-2.2.2.tgz", - "integrity": "sha512-jKEZU2DzEmL0X0gewlknVVdah8jXpoKhtqOmg8RSAD2fFQtk3gpiceprBDEdmigQwLl97SDXGNjiWlkIRdz9Sg==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@apollo/query-planner/-/query-planner-2.2.3.tgz", + "integrity": "sha512-3uvbRqLC6honXj5seSjAvzSuOIfNIAHxdPdpBFCcsxjhC/ZS4qeqYKj+vn1SjA+GSXJ9nQ4GqQNcHX5OGZddTg==", "dependencies": { - "@apollo/federation-internals": "^2.2.2", - "@apollo/query-graphs": "^2.2.2", + "@apollo/federation-internals": "^2.2.3", + "@apollo/query-graphs": "^2.2.3", "chalk": "^4.1.0", "deep-equal": "^2.0.5", "pretty-format": "^29.0.0" @@ -2577,12 +2577,12 @@ } }, "node_modules/@graphql-tools/mock": { - "version": "8.7.14", - "resolved": "https://registry.npmjs.org/@graphql-tools/mock/-/mock-8.7.14.tgz", - "integrity": "sha512-kIYirhGqhhSI6p/5qj95U8Lngm4mml5B3Z/r7ShI4+/EACyOOV+wUlql45+Y21b9NRUxJbsNHpztGxzgCSyviQ==", + "version": "8.7.15", + "resolved": "https://registry.npmjs.org/@graphql-tools/mock/-/mock-8.7.15.tgz", + "integrity": "sha512-0zImG5tuObhowqtijlB6TMAIVtCIBsnGGwNW8gnCOa+xZAqfGdUMsSma17tHC2XuI7xhv7A0O8pika9e3APLUg==", "dependencies": { - "@graphql-tools/schema": "9.0.12", - "@graphql-tools/utils": "9.1.3", + "@graphql-tools/schema": "9.0.13", + "@graphql-tools/utils": "9.1.4", "fast-json-stable-stringify": "^2.1.0", "tslib": "^2.4.0" }, @@ -2591,11 +2591,11 @@ } }, "node_modules/@graphql-tools/mock/node_modules/@graphql-tools/merge": { - "version": "8.3.14", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.14.tgz", - "integrity": "sha512-zV0MU1DnxJLIB0wpL4N3u21agEiYFsjm6DI130jqHpwF0pR9HkF+Ni65BNfts4zQelP0GjkHltG+opaozAJ1NA==", + "version": "8.3.15", + "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.15.tgz", + "integrity": "sha512-hYYOlsqkUlL6oOo7zzuk6hIv7xQzy+x21sgK84d5FWaiWYkLYh9As8myuDd9SD5xovWWQ9m/iRhIOVDEMSyEKA==", "dependencies": { - "@graphql-tools/utils": "9.1.3", + "@graphql-tools/utils": "9.1.4", "tslib": "^2.4.0" }, "peerDependencies": { @@ -2603,23 +2603,23 @@ } }, "node_modules/@graphql-tools/mock/node_modules/@graphql-tools/schema": { - "version": "9.0.12", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.12.tgz", - "integrity": "sha512-DmezcEltQai0V1y96nwm0Kg11FDS/INEFekD4nnVgzBqawvznWqK6D6bujn+cw6kivoIr3Uq//QmU/hBlBzUlQ==", + "version": "9.0.13", + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.13.tgz", + "integrity": "sha512-guRA3fwAtv+M1Kh930P4ydH9aKJTWscIkhVFcWpj/cnjYYxj88jkEJ15ZNiJX/2breNY+sbVgmlgLKb6aXi/Jg==", "dependencies": { - "@graphql-tools/merge": "8.3.14", - "@graphql-tools/utils": "9.1.3", + "@graphql-tools/merge": "8.3.15", + "@graphql-tools/utils": "9.1.4", "tslib": "^2.4.0", - "value-or-promise": "1.0.11" + "value-or-promise": "1.0.12" }, "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, "node_modules/@graphql-tools/mock/node_modules/@graphql-tools/utils": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.3.tgz", - "integrity": "sha512-bbJyKhs6awp1/OmP+WKA1GOyu9UbgZGkhIj5srmiMGLHohEOKMjW784Sk0BZil1w2x95UPu0WHw6/d/HVCACCg==", + "version": "9.1.4", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.4.tgz", + "integrity": "sha512-hgIeLt95h9nQgQuzbbdhuZmh+8WV7RZ/6GbTj6t3IU4Zd2zs9yYJ2jgW/krO587GMOY8zCwrjNOMzD40u3l7Vg==", "dependencies": { "tslib": "^2.4.0" }, @@ -2627,6 +2627,14 @@ "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, + "node_modules/@graphql-tools/mock/node_modules/value-or-promise": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.12.tgz", + "integrity": "sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q==", + "engines": { + "node": ">=12" + } + }, "node_modules/@graphql-tools/schema": { "version": "8.3.13", "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-8.3.13.tgz", @@ -4298,9 +4306,9 @@ } }, "node_modules/@opentelemetry/api": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.3.0.tgz", - "integrity": "sha512-YveTnGNsFFixTKJz09Oi4zYkiLT5af3WpZDu4aIUM7xX+2bHAkOJayFTVQd6zB8kkWPpbua4Ha6Ql00grdLlJQ==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.4.0.tgz", + "integrity": "sha512-IgMK9i3sFGNUqPMbjABm0G26g0QCKCUBfglhQ7rQq6WcxbKfEHRcmwsoER4hZcuYqJgkYn2OeuoJIv7Jsftp7g==", "engines": { "node": ">=8.0.0" } @@ -5832,6 +5840,24 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", + "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/asn1": { "version": "0.2.6", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", @@ -5909,9 +5935,9 @@ } }, "node_modules/aws-sdk": { - "version": "2.1291.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1291.0.tgz", - "integrity": "sha512-iM82Md2Wb29MZ72BpNF4YeIHtkJTyw+JMGXJG48Dwois2Rq7rLcriX6NN/4Fx4b5EEtUkwAO/wJc+NTHI7QeJw==", + "version": "2.1294.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1294.0.tgz", + "integrity": "sha512-/n/xbae0efRA/wpaMyF/0Jip8V0MMPEFicreDHRmiy/4iUrsqMvHdeaO8OW0kUYKHyUClKsc36Fu4GyhONKISw==", "dependencies": { "buffer": "4.9.2", "events": "1.1.1", @@ -6491,9 +6517,9 @@ } }, "node_modules/bson": { - "version": "4.7.1", - "resolved": "https://registry.npmjs.org/bson/-/bson-4.7.1.tgz", - "integrity": "sha512-XkuFtlCzi0WSy8D6PMhvrQ/q8VlZHN/2bJ/shJglwuA6TPD2ZP/hHLB7iDxOEWVINHN/UVTxP4pqZqOKMXPIXg==", + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/bson/-/bson-4.7.2.tgz", + "integrity": "sha512-Ry9wCtIZ5kGqkJoi6aD8KjxFZEx78guTQDnpXWiNthsxzrxAK/i8E6pCHAIZTbaEFWcOCvbecMukfK7XUvyLpQ==", "dependencies": { "buffer": "^5.6.0" }, @@ -6721,9 +6747,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001442", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001442.tgz", - "integrity": "sha512-239m03Pqy0hwxYPYR5JwOIxRJfLTWtle9FV8zosfV5pHg+/51uD4nxcUlM8+mWWGfwKtt8lJNHnD3cWw9VZ6ow==", + "version": "1.0.30001444", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001444.tgz", + "integrity": "sha512-ecER9xgJQVMqcrxThKptsW0pPxSae8R2RB87LNa+ivW9ppNWRHEplXcDzkCOP4LYWGj8hunXLqaiC41iBATNyg==", "dev": true, "funding": [ { @@ -7268,9 +7294,9 @@ "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" }, "node_modules/cookiejar": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.3.tgz", - "integrity": "sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.4.tgz", + "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==", "dev": true }, "node_modules/copy-descriptor": { @@ -7888,13 +7914,14 @@ } }, "node_modules/es-abstract": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.0.tgz", - "integrity": "sha512-GUGtW7eXQay0c+PRq0sGIKSdaBorfVqsCMhGHo4elP7YVqZu9nCZS4UkK4gv71gOWNMra/PaSKD3ao1oWExO0g==", + "version": "1.21.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.1.tgz", + "integrity": "sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==", "dev": true, "dependencies": { + "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", - "es-set-tostringtag": "^2.0.0", + "es-set-tostringtag": "^2.0.1", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", "function.prototype.name": "^1.1.5", @@ -7907,7 +7934,7 @@ "has-proto": "^1.0.1", "has-symbols": "^1.0.3", "internal-slot": "^1.0.4", - "is-array-buffer": "^3.0.0", + "is-array-buffer": "^3.0.1", "is-callable": "^1.2.7", "is-negative-zero": "^2.0.2", "is-regex": "^1.1.4", @@ -7934,18 +7961,19 @@ } }, "node_modules/es-get-iterator": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.2.tgz", - "integrity": "sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", + "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", "dependencies": { "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.0", - "has-symbols": "^1.0.1", - "is-arguments": "^1.1.0", + "get-intrinsic": "^1.1.3", + "has-symbols": "^1.0.3", + "is-arguments": "^1.1.1", "is-map": "^2.0.2", "is-set": "^2.0.2", - "is-string": "^1.0.5", - "isarray": "^2.0.5" + "is-string": "^1.0.7", + "isarray": "^2.0.5", + "stop-iteration-iterator": "^1.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -8175,13 +8203,14 @@ } }, "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==", + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz", + "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==", "dev": true, "dependencies": { "debug": "^3.2.7", - "resolve": "^1.20.0" + "is-core-module": "^2.11.0", + "resolve": "^1.22.1" } }, "node_modules/eslint-import-resolver-node/node_modules/debug": { @@ -8220,23 +8249,25 @@ } }, "node_modules/eslint-plugin-import": { - "version": "2.26.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", - "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", + "version": "2.27.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.4.tgz", + "integrity": "sha512-Z1jVt1EGKia1X9CnBCkpAOhWy8FgQ7OmJ/IblEkT82yrFU/xJaxwujaTzLWqigewwynRQ9mmHfX9MtAfhxm0sA==", "dev": true, "dependencies": { - "array-includes": "^3.1.4", - "array.prototype.flat": "^1.2.5", - "debug": "^2.6.9", + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "array.prototype.flatmap": "^1.3.0", + "debug": "^3.2.7", "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.3", + "eslint-import-resolver-node": "^0.3.7", + "eslint-module-utils": "^2.7.4", "has": "^1.0.3", - "is-core-module": "^2.8.1", + "is-core-module": "^2.11.0", "is-glob": "^4.0.3", "minimatch": "^3.1.2", - "object.values": "^1.1.5", - "resolve": "^1.22.0", + "object.values": "^1.1.6", + "resolve": "^1.22.1", + "semver": "^6.3.0", "tsconfig-paths": "^3.14.1" }, "engines": { @@ -8247,12 +8278,12 @@ } }, "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==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "dependencies": { - "ms": "2.0.0" + "ms": "^2.1.1" } }, "node_modules/eslint-plugin-import/node_modules/doctrine": { @@ -8267,11 +8298,14 @@ "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": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } }, "node_modules/eslint-scope": { "version": "5.1.1", @@ -10010,7 +10044,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz", "integrity": "sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==", - "dev": true, "dependencies": { "get-intrinsic": "^1.1.3", "has": "^1.0.3", @@ -12653,9 +12686,9 @@ } }, "node_modules/libphonenumber-js": { - "version": "1.10.17", - "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.10.17.tgz", - "integrity": "sha512-UQrNzsusSn5qaojdpWqporWRdpx6AGeb+egj64NrpYuyKHvnSH9jMp/1Dy3b/WnMyJA5zgV1yw//jC6J0dCXkw==" + "version": "1.10.18", + "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.10.18.tgz", + "integrity": "sha512-NS4ZEgNhwbcPz1gfSXCGFnQm0xEiyTSPRthIuWytDzOiEG9xnZ2FbLyfJC4tI2BMAAXpoWbNxHYH75pa3Dq9og==" }, "node_modules/limiter": { "version": "1.1.5", @@ -13612,9 +13645,9 @@ } }, "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "version": "2.6.8", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.8.tgz", + "integrity": "sha512-RZ6dBYuj8dRSfxpUSu+NsdF1dpPpluJxwOp+6IoDp/sH2QNDSvurYsAa+F1WxY2RjA1iP93xhcsUoYbF2XBqVg==", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -14029,9 +14062,9 @@ } }, "node_modules/object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -16718,6 +16751,17 @@ "node": ">=0.10.0" } }, + "node_modules/stop-iteration-iterator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", + "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", + "dependencies": { + "internal-slot": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/streamsearch": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", @@ -18871,31 +18915,31 @@ } }, "@apollo/composition": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@apollo/composition/-/composition-2.2.2.tgz", - "integrity": "sha512-5wj9FqDu4E4xfOOLz4SKib8eJQgamHCgOdxwmrGj9N3B8o6P2A+zMfKEVHvEnSpRMKRm9HVcdSGdYV6QcjDIdQ==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@apollo/composition/-/composition-2.2.3.tgz", + "integrity": "sha512-wgBZHbt1F8KS8JVzsEHVVQXSzu+ZT8K9Aa9AYFP6axT4wDZTmpQDS7C34E9TyjIDBmUydmrDm5CiZ0KeFReA8Q==", "requires": { - "@apollo/federation-internals": "^2.2.2", - "@apollo/query-graphs": "^2.2.2" + "@apollo/federation-internals": "^2.2.3", + "@apollo/query-graphs": "^2.2.3" } }, "@apollo/federation-internals": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@apollo/federation-internals/-/federation-internals-2.2.2.tgz", - "integrity": "sha512-Q16I75qZ6jA8lCoZedM5938oZONrJyL7Pk6TOqw44fndea0As0pb2Ug8dV3pAWq4HhJ+/vBu2WoP14CFcxA9Yw==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@apollo/federation-internals/-/federation-internals-2.2.3.tgz", + "integrity": "sha512-6XN1p5AJAlACYBo+EbwPSYnmfRXPPNxlZRLSplB/PWBy9DnF+z+uq3L85Nqmom1JYepFf7JaUuWPBzCvjxAbmg==", "requires": { "chalk": "^4.1.0", "js-levenshtein": "^1.1.6" } }, "@apollo/gateway": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@apollo/gateway/-/gateway-2.2.2.tgz", - "integrity": "sha512-oSsrbf7svgbmhAe8tSpPh3hDblWcRM/Elx8hCfGEmnDR+nZy2/kfsknk0SFKWdPSq/agtdAXFwdKfWN2DF2rYg==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@apollo/gateway/-/gateway-2.2.3.tgz", + "integrity": "sha512-kTdSZq7qoGQ/Dlbz4CYTqdsXNfiy9cj+vjTRzf8JSS1Zf3QdllSrSCbWDPjBZOkTBhVoHETkgZ5xAwR4Sgb/3g==", "requires": { - "@apollo/composition": "^2.2.2", - "@apollo/federation-internals": "^2.2.2", - "@apollo/query-planner": "^2.2.2", + "@apollo/composition": "^2.2.3", + "@apollo/federation-internals": "^2.2.3", + "@apollo/query-planner": "^2.2.3", "@apollo/server-gateway-interface": "^1.0.2", "@apollo/usage-reporting-protobuf": "^4.0.0", "@apollo/utils.createhash": "^1.1.0", @@ -18933,11 +18977,11 @@ } }, "@apollo/query-graphs": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@apollo/query-graphs/-/query-graphs-2.2.2.tgz", - "integrity": "sha512-NHxqfDEsMNFqwxSQ8lqj9APP0jGQAvxt0LOEb4WZgVdw303g1qxu2BapUS4YjxKVRqHDap/EAzBHgwg4J2zfjA==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@apollo/query-graphs/-/query-graphs-2.2.3.tgz", + "integrity": "sha512-ykH5P72zPtnV8J415o8HX6IkJH8qBd3a+5qZCA1Fx5vLb1Y2RdKDDn2I6VH9dBFuVMQ8ggXvz1/F9XRMudO7ZQ==", "requires": { - "@apollo/federation-internals": "^2.2.2", + "@apollo/federation-internals": "^2.2.3", "@types/uuid": "^8.3.4", "deep-equal": "^2.0.5", "ts-graphviz": "^0.16.0", @@ -18945,12 +18989,12 @@ } }, "@apollo/query-planner": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@apollo/query-planner/-/query-planner-2.2.2.tgz", - "integrity": "sha512-jKEZU2DzEmL0X0gewlknVVdah8jXpoKhtqOmg8RSAD2fFQtk3gpiceprBDEdmigQwLl97SDXGNjiWlkIRdz9Sg==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@apollo/query-planner/-/query-planner-2.2.3.tgz", + "integrity": "sha512-3uvbRqLC6honXj5seSjAvzSuOIfNIAHxdPdpBFCcsxjhC/ZS4qeqYKj+vn1SjA+GSXJ9nQ4GqQNcHX5OGZddTg==", "requires": { - "@apollo/federation-internals": "^2.2.2", - "@apollo/query-graphs": "^2.2.2", + "@apollo/federation-internals": "^2.2.3", + "@apollo/query-graphs": "^2.2.3", "chalk": "^4.1.0", "deep-equal": "^2.0.5", "pretty-format": "^29.0.0" @@ -20744,43 +20788,48 @@ } }, "@graphql-tools/mock": { - "version": "8.7.14", - "resolved": "https://registry.npmjs.org/@graphql-tools/mock/-/mock-8.7.14.tgz", - "integrity": "sha512-kIYirhGqhhSI6p/5qj95U8Lngm4mml5B3Z/r7ShI4+/EACyOOV+wUlql45+Y21b9NRUxJbsNHpztGxzgCSyviQ==", + "version": "8.7.15", + "resolved": "https://registry.npmjs.org/@graphql-tools/mock/-/mock-8.7.15.tgz", + "integrity": "sha512-0zImG5tuObhowqtijlB6TMAIVtCIBsnGGwNW8gnCOa+xZAqfGdUMsSma17tHC2XuI7xhv7A0O8pika9e3APLUg==", "requires": { - "@graphql-tools/schema": "9.0.12", - "@graphql-tools/utils": "9.1.3", + "@graphql-tools/schema": "9.0.13", + "@graphql-tools/utils": "9.1.4", "fast-json-stable-stringify": "^2.1.0", "tslib": "^2.4.0" }, "dependencies": { "@graphql-tools/merge": { - "version": "8.3.14", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.14.tgz", - "integrity": "sha512-zV0MU1DnxJLIB0wpL4N3u21agEiYFsjm6DI130jqHpwF0pR9HkF+Ni65BNfts4zQelP0GjkHltG+opaozAJ1NA==", + "version": "8.3.15", + "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.15.tgz", + "integrity": "sha512-hYYOlsqkUlL6oOo7zzuk6hIv7xQzy+x21sgK84d5FWaiWYkLYh9As8myuDd9SD5xovWWQ9m/iRhIOVDEMSyEKA==", "requires": { - "@graphql-tools/utils": "9.1.3", + "@graphql-tools/utils": "9.1.4", "tslib": "^2.4.0" } }, "@graphql-tools/schema": { - "version": "9.0.12", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.12.tgz", - "integrity": "sha512-DmezcEltQai0V1y96nwm0Kg11FDS/INEFekD4nnVgzBqawvznWqK6D6bujn+cw6kivoIr3Uq//QmU/hBlBzUlQ==", + "version": "9.0.13", + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.13.tgz", + "integrity": "sha512-guRA3fwAtv+M1Kh930P4ydH9aKJTWscIkhVFcWpj/cnjYYxj88jkEJ15ZNiJX/2breNY+sbVgmlgLKb6aXi/Jg==", "requires": { - "@graphql-tools/merge": "8.3.14", - "@graphql-tools/utils": "9.1.3", + "@graphql-tools/merge": "8.3.15", + "@graphql-tools/utils": "9.1.4", "tslib": "^2.4.0", - "value-or-promise": "1.0.11" + "value-or-promise": "1.0.12" } }, "@graphql-tools/utils": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.3.tgz", - "integrity": "sha512-bbJyKhs6awp1/OmP+WKA1GOyu9UbgZGkhIj5srmiMGLHohEOKMjW784Sk0BZil1w2x95UPu0WHw6/d/HVCACCg==", + "version": "9.1.4", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.4.tgz", + "integrity": "sha512-hgIeLt95h9nQgQuzbbdhuZmh+8WV7RZ/6GbTj6t3IU4Zd2zs9yYJ2jgW/krO587GMOY8zCwrjNOMzD40u3l7Vg==", "requires": { "tslib": "^2.4.0" } + }, + "value-or-promise": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.12.tgz", + "integrity": "sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q==" } } }, @@ -22002,9 +22051,9 @@ } }, "@opentelemetry/api": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.3.0.tgz", - "integrity": "sha512-YveTnGNsFFixTKJz09Oi4zYkiLT5af3WpZDu4aIUM7xX+2bHAkOJayFTVQd6zB8kkWPpbua4Ha6Ql00grdLlJQ==" + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.4.0.tgz", + "integrity": "sha512-IgMK9i3sFGNUqPMbjABm0G26g0QCKCUBfglhQ7rQq6WcxbKfEHRcmwsoER4hZcuYqJgkYn2OeuoJIv7Jsftp7g==" }, "@protobufjs/aspromise": { "version": "1.1.2", @@ -23272,6 +23321,18 @@ "es-shim-unscopables": "^1.0.0" } }, + "array.prototype.flatmap": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", + "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + } + }, "asn1": { "version": "0.2.6", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", @@ -23328,9 +23389,9 @@ "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==" }, "aws-sdk": { - "version": "2.1291.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1291.0.tgz", - "integrity": "sha512-iM82Md2Wb29MZ72BpNF4YeIHtkJTyw+JMGXJG48Dwois2Rq7rLcriX6NN/4Fx4b5EEtUkwAO/wJc+NTHI7QeJw==", + "version": "2.1294.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1294.0.tgz", + "integrity": "sha512-/n/xbae0efRA/wpaMyF/0Jip8V0MMPEFicreDHRmiy/4iUrsqMvHdeaO8OW0kUYKHyUClKsc36Fu4GyhONKISw==", "requires": { "buffer": "4.9.2", "events": "1.1.1", @@ -23794,9 +23855,9 @@ } }, "bson": { - "version": "4.7.1", - "resolved": "https://registry.npmjs.org/bson/-/bson-4.7.1.tgz", - "integrity": "sha512-XkuFtlCzi0WSy8D6PMhvrQ/q8VlZHN/2bJ/shJglwuA6TPD2ZP/hHLB7iDxOEWVINHN/UVTxP4pqZqOKMXPIXg==", + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/bson/-/bson-4.7.2.tgz", + "integrity": "sha512-Ry9wCtIZ5kGqkJoi6aD8KjxFZEx78guTQDnpXWiNthsxzrxAK/i8E6pCHAIZTbaEFWcOCvbecMukfK7XUvyLpQ==", "requires": { "buffer": "^5.6.0" }, @@ -23955,9 +24016,9 @@ "dev": true }, "caniuse-lite": { - "version": "1.0.30001442", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001442.tgz", - "integrity": "sha512-239m03Pqy0hwxYPYR5JwOIxRJfLTWtle9FV8zosfV5pHg+/51uD4nxcUlM8+mWWGfwKtt8lJNHnD3cWw9VZ6ow==", + "version": "1.0.30001444", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001444.tgz", + "integrity": "sha512-ecER9xgJQVMqcrxThKptsW0pPxSae8R2RB87LNa+ivW9ppNWRHEplXcDzkCOP4LYWGj8hunXLqaiC41iBATNyg==", "dev": true }, "capture-exit": { @@ -24380,9 +24441,9 @@ "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" }, "cookiejar": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.3.tgz", - "integrity": "sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.4.tgz", + "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==", "dev": true }, "copy-descriptor": { @@ -24883,13 +24944,14 @@ } }, "es-abstract": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.0.tgz", - "integrity": "sha512-GUGtW7eXQay0c+PRq0sGIKSdaBorfVqsCMhGHo4elP7YVqZu9nCZS4UkK4gv71gOWNMra/PaSKD3ao1oWExO0g==", + "version": "1.21.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.1.tgz", + "integrity": "sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==", "dev": true, "requires": { + "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", - "es-set-tostringtag": "^2.0.0", + "es-set-tostringtag": "^2.0.1", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", "function.prototype.name": "^1.1.5", @@ -24902,7 +24964,7 @@ "has-proto": "^1.0.1", "has-symbols": "^1.0.3", "internal-slot": "^1.0.4", - "is-array-buffer": "^3.0.0", + "is-array-buffer": "^3.0.1", "is-callable": "^1.2.7", "is-negative-zero": "^2.0.2", "is-regex": "^1.1.4", @@ -24923,18 +24985,19 @@ } }, "es-get-iterator": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.2.tgz", - "integrity": "sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", + "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", "requires": { "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.0", - "has-symbols": "^1.0.1", - "is-arguments": "^1.1.0", + "get-intrinsic": "^1.1.3", + "has-symbols": "^1.0.3", + "is-arguments": "^1.1.1", "is-map": "^2.0.2", "is-set": "^2.0.2", - "is-string": "^1.0.5", - "isarray": "^2.0.5" + "is-string": "^1.0.7", + "isarray": "^2.0.5", + "stop-iteration-iterator": "^1.0.0" } }, "es-module-lexer": { @@ -25152,13 +25215,14 @@ "requires": {} }, "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==", + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz", + "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==", "dev": true, "requires": { "debug": "^3.2.7", - "resolve": "^1.20.0" + "is-core-module": "^2.11.0", + "resolve": "^1.22.1" }, "dependencies": { "debug": { @@ -25193,33 +25257,35 @@ } }, "eslint-plugin-import": { - "version": "2.26.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", - "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", + "version": "2.27.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.4.tgz", + "integrity": "sha512-Z1jVt1EGKia1X9CnBCkpAOhWy8FgQ7OmJ/IblEkT82yrFU/xJaxwujaTzLWqigewwynRQ9mmHfX9MtAfhxm0sA==", "dev": true, "requires": { - "array-includes": "^3.1.4", - "array.prototype.flat": "^1.2.5", - "debug": "^2.6.9", + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "array.prototype.flatmap": "^1.3.0", + "debug": "^3.2.7", "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.3", + "eslint-import-resolver-node": "^0.3.7", + "eslint-module-utils": "^2.7.4", "has": "^1.0.3", - "is-core-module": "^2.8.1", + "is-core-module": "^2.11.0", "is-glob": "^4.0.3", "minimatch": "^3.1.2", - "object.values": "^1.1.5", - "resolve": "^1.22.0", + "object.values": "^1.1.6", + "resolve": "^1.22.1", + "semver": "^6.3.0", "tsconfig-paths": "^3.14.1" }, "dependencies": { "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } }, "doctrine": { @@ -25231,10 +25297,10 @@ "esutils": "^2.0.2" } }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true } } @@ -26505,7 +26571,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz", "integrity": "sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==", - "dev": true, "requires": { "get-intrinsic": "^1.1.3", "has": "^1.0.3", @@ -28547,9 +28612,9 @@ } }, "libphonenumber-js": { - "version": "1.10.17", - "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.10.17.tgz", - "integrity": "sha512-UQrNzsusSn5qaojdpWqporWRdpx6AGeb+egj64NrpYuyKHvnSH9jMp/1Dy3b/WnMyJA5zgV1yw//jC6J0dCXkw==" + "version": "1.10.18", + "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.10.18.tgz", + "integrity": "sha512-NS4ZEgNhwbcPz1gfSXCGFnQm0xEiyTSPRthIuWytDzOiEG9xnZ2FbLyfJC4tI2BMAAXpoWbNxHYH75pa3Dq9og==" }, "limiter": { "version": "1.1.5", @@ -29324,9 +29389,9 @@ } }, "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "version": "2.6.8", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.8.tgz", + "integrity": "sha512-RZ6dBYuj8dRSfxpUSu+NsdF1dpPpluJxwOp+6IoDp/sH2QNDSvurYsAa+F1WxY2RjA1iP93xhcsUoYbF2XBqVg==", "requires": { "whatwg-url": "^5.0.0" }, @@ -29651,9 +29716,9 @@ "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==" }, "object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==" + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==" }, "object-is": { "version": "1.1.5", @@ -31704,6 +31769,14 @@ "integrity": "sha512-ZnWpYnYugiOVEY5GkcuJK1io5V8QmNYChG62gSit9pQVGErXtrKuPC55ITaVSukmMta5qpMU7vqLt2Lnni4f/g==", "dev": true }, + "stop-iteration-iterator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", + "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", + "requires": { + "internal-slot": "^1.0.4" + } + }, "streamsearch": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", From c8a6d63351fef03fe0f2b407aa64ba73a8111835 Mon Sep 17 00:00:00 2001 From: Florin Cozloschi <115977960+florincoz@users.noreply.github.com> Date: Mon, 16 Jan 2023 09:51:17 +0200 Subject: [PATCH 3/3] add logs for redis response --- src/services/caching/cache.service.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/services/caching/cache.service.ts b/src/services/caching/cache.service.ts index e8cd4cc16..8c3c66f0a 100644 --- a/src/services/caching/cache.service.ts +++ b/src/services/caching/cache.service.ts @@ -32,7 +32,7 @@ export class CachingService { const delay = Math.min(times * 50, 5000); return delay; }, - enableAutoPipelining: false, + enableAutoPipelining: true, }; constructor( @@ -49,6 +49,7 @@ export class CachingService { const profiler = new PerformanceProfiler(); const redisResponse = await this.client.get(key); profiler.stop(); + console.log(key, profiler.duration, redisResponse); MetricsCollector.setRedisDuration('GET', profiler.duration); return redisResponse; } @@ -124,13 +125,13 @@ export class CachingService { serialized: false, value, }; + localCache.set(key, writeValue, { ttl: ttl * 1000 }); return value; } getCacheLocal(key: string): T | undefined { const cachedValue: any = localCache.get(key) as T; - if (!cachedValue) { return undefined; } @@ -176,6 +177,7 @@ export class CachingService { const profiler = new PerformanceProfiler(`vmQuery:${key}`); let cachedValue = this.getCacheLocal(key); + if (cachedValue !== undefined) { profiler.stop(`Local Cache hit for key ${key}`); return cachedValue === this.UNDEFINED_CACHE_VALUE @@ -196,7 +198,6 @@ export class CachingService { const value = await promise(); profiler.stop(`Cache miss for key ${key}`); - if (localTtl > 0) { await this.setCacheLocal(key, value, localTtl); }