From 7de59855a6025e70eb274981e76e0315aed9eaee Mon Sep 17 00:00:00 2001 From: Andreas Weber Date: Thu, 21 Apr 2022 22:13:16 +0200 Subject: [PATCH] fix: every loop iteration triggers also interceptors #245 --- package-lock.json | 416 +++++++++--------- package.json | 8 +- src/cli/send/send.ts | 1 + .../core/execute/logResponseInterceptor.ts | 12 +- .../core/metaData/loopMetaDataHandler.ts | 229 ++++------ 5 files changed, 314 insertions(+), 352 deletions(-) diff --git a/package-lock.json b/package-lock.json index 11a066f6..d9892efa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "license": "MIT", "dependencies": { "@cloudamqp/amqp-client": "^2.0.3", - "@grpc/grpc-js": "^1.6.6", + "@grpc/grpc-js": "^1.6.7", "@grpc/proto-loader": "^0.6.9", "aws4": "^1.11.0", "chalk": "^4.1.2", @@ -24,7 +24,7 @@ "filesize": "^8.0.7", "globby": "^13.1.1", "got": "^11.8.3", - "hookpoint": "^1.2.0", + "hookpoint": "^1.3.0", "http-proxy-agent": "^5.0.0", "https-proxy-agent": "^5.0.1", "inquirer": "^8.2.2", @@ -55,14 +55,14 @@ "@typescript-eslint/eslint-plugin": "^5.20.0", "@typescript-eslint/parser": "^5.20.0", "concurrently": "^7.1.0", - "esbuild": "^0.14.36", + "esbuild": "^0.14.37", "esbuild-jest": "^0.5.0", "eslint": "^8.13.0", "eslint-config-prettier": "^8.5.0", "eslint-plugin-node": "^11.1.0", "husky": "^7.0.4", "jest": "^27.5.1", - "lint-staged": "^12.3.8", + "lint-staged": "^12.4.0", "lockfile-lint": "^4.7.4", "mockttp": "^2.7.0", "prettier": "^2.6.2", @@ -970,9 +970,9 @@ } }, "node_modules/@grpc/grpc-js": { - "version": "1.6.6", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.6.6.tgz", - "integrity": "sha512-gEMn1+d01yO/QNHsDOPHxJYtA6QItbdQT4mGFS8Gt5IQCq+83OEsD0sbvPf3RLCtHy1HI412JgQPr5HM9QK0mw==", + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.6.7.tgz", + "integrity": "sha512-eBM03pu9hd3VqDQG+kHahiG1x80RGkkqqRb1Pchcwqej/KkAH95gAvKs6laqaHCycYaPK+TKuNQnOz9UXYA8qw==", "dependencies": { "@grpc/proto-loader": "^0.6.4", "@types/node": ">=12.12.47" @@ -4434,9 +4434,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.113", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.113.tgz", - "integrity": "sha512-s30WKxp27F3bBH6fA07FYL2Xm/FYnYrKpMjHr3XVCTUb9anAyZn/BeZfPWgTZGAbJeT4NxNwISSbLcYZvggPMA==", + "version": "1.4.117", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.117.tgz", + "integrity": "sha512-ypZHxY+Sf/PXu7LVN+xoeanyisnJeSOy8Ki439L/oLueZb4c72FI45zXcK3gPpmTwyufh9m6NnbMLXnJh/0Fxg==", "dev": true }, "node_modules/emittery": { @@ -4482,9 +4482,9 @@ } }, "node_modules/esbuild": { - "version": "0.14.36", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.36.tgz", - "integrity": "sha512-HhFHPiRXGYOCRlrhpiVDYKcFJRdO0sBElZ668M4lh2ER0YgnkLxECuFe7uWCf23FrcLc59Pqr7dHkTqmRPDHmw==", + "version": "0.14.37", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.37.tgz", + "integrity": "sha512-sPlTpEkjzgFjWjYdve5xM1A3fpKXWNc+0yh0u9tqdER992OEpvde1c/+5rbRFsaSEEjQM9qXRcYn3EvNwgLF9w==", "dev": true, "hasInstallScript": true, "bin": { @@ -4494,32 +4494,32 @@ "node": ">=12" }, "optionalDependencies": { - "esbuild-android-64": "0.14.36", - "esbuild-android-arm64": "0.14.36", - "esbuild-darwin-64": "0.14.36", - "esbuild-darwin-arm64": "0.14.36", - "esbuild-freebsd-64": "0.14.36", - "esbuild-freebsd-arm64": "0.14.36", - "esbuild-linux-32": "0.14.36", - "esbuild-linux-64": "0.14.36", - "esbuild-linux-arm": "0.14.36", - "esbuild-linux-arm64": "0.14.36", - "esbuild-linux-mips64le": "0.14.36", - "esbuild-linux-ppc64le": "0.14.36", - "esbuild-linux-riscv64": "0.14.36", - "esbuild-linux-s390x": "0.14.36", - "esbuild-netbsd-64": "0.14.36", - "esbuild-openbsd-64": "0.14.36", - "esbuild-sunos-64": "0.14.36", - "esbuild-windows-32": "0.14.36", - "esbuild-windows-64": "0.14.36", - "esbuild-windows-arm64": "0.14.36" + "esbuild-android-64": "0.14.37", + "esbuild-android-arm64": "0.14.37", + "esbuild-darwin-64": "0.14.37", + "esbuild-darwin-arm64": "0.14.37", + "esbuild-freebsd-64": "0.14.37", + "esbuild-freebsd-arm64": "0.14.37", + "esbuild-linux-32": "0.14.37", + "esbuild-linux-64": "0.14.37", + "esbuild-linux-arm": "0.14.37", + "esbuild-linux-arm64": "0.14.37", + "esbuild-linux-mips64le": "0.14.37", + "esbuild-linux-ppc64le": "0.14.37", + "esbuild-linux-riscv64": "0.14.37", + "esbuild-linux-s390x": "0.14.37", + "esbuild-netbsd-64": "0.14.37", + "esbuild-openbsd-64": "0.14.37", + "esbuild-sunos-64": "0.14.37", + "esbuild-windows-32": "0.14.37", + "esbuild-windows-64": "0.14.37", + "esbuild-windows-arm64": "0.14.37" } }, "node_modules/esbuild-android-64": { - "version": "0.14.36", - "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.36.tgz", - "integrity": "sha512-jwpBhF1jmo0tVCYC/ORzVN+hyVcNZUWuozGcLHfod0RJCedTDTvR4nwlTXdx1gtncDqjk33itjO+27OZHbiavw==", + "version": "0.14.37", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.37.tgz", + "integrity": "sha512-Jb61ihbS3iSj3+PhURe7sEuBg4h16CeT4CiT3W4Aop6rr5p/N6IvNXNWFX0gzUaRWtGoAFfCXFBEIn6zWUU3hQ==", "cpu": [ "x64" ], @@ -4533,9 +4533,9 @@ } }, "node_modules/esbuild-android-arm64": { - "version": "0.14.36", - "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.36.tgz", - "integrity": "sha512-/hYkyFe7x7Yapmfv4X/tBmyKnggUmdQmlvZ8ZlBnV4+PjisrEhAvC3yWpURuD9XoB8Wa1d5dGkTsF53pIvpjsg==", + "version": "0.14.37", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.37.tgz", + "integrity": "sha512-wwcI+EUHWe1LlxBE7vjdqZ53DEiCllD6XsYOIiGxzL8KaG7eOLXNS7tNhdK0QIR4wwMNTPLDB40ZKuAXZ8zv6Q==", "cpu": [ "arm64" ], @@ -4549,9 +4549,9 @@ } }, "node_modules/esbuild-darwin-64": { - "version": "0.14.36", - "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.36.tgz", - "integrity": "sha512-kkl6qmV0dTpyIMKagluzYqlc1vO0ecgpviK/7jwPbRDEv5fejRTaBBEE2KxEQbTHcLhiiDbhG7d5UybZWo/1zQ==", + "version": "0.14.37", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.37.tgz", + "integrity": "sha512-gg/UZ/FZrRzPq+tAOiMwyBoa6eNxX6bcjuivZ8v2Tny83RhIyeDhvC84dgVcPinqK39u8pOYw6a7nffotUrjKQ==", "cpu": [ "x64" ], @@ -4565,9 +4565,9 @@ } }, "node_modules/esbuild-darwin-arm64": { - "version": "0.14.36", - "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.36.tgz", - "integrity": "sha512-q8fY4r2Sx6P0Pr3VUm//eFYKVk07C5MHcEinU1BjyFnuYz4IxR/03uBbDwluR6ILIHnZTE7AkTUWIdidRi1Jjw==", + "version": "0.14.37", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.37.tgz", + "integrity": "sha512-eFwy5il5yvIHAVau97kWoNYfxuCd1X7hfgKc4Ns5ymlYXhyRzRywwJfknHax5rDyZxfDXtnFaT/nftUiYwsHIQ==", "cpu": [ "arm64" ], @@ -4581,9 +4581,9 @@ } }, "node_modules/esbuild-freebsd-64": { - "version": "0.14.36", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.36.tgz", - "integrity": "sha512-Hn8AYuxXXRptybPqoMkga4HRFE7/XmhtlQjXFHoAIhKUPPMeJH35GYEUWGbjteai9FLFvBAjEAlwEtSGxnqWww==", + "version": "0.14.37", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.37.tgz", + "integrity": "sha512-4iFbdmohve6wyPwsVPe/1j5rVwg5uPTopmgIUiJBbnPKMmo8NecUSbz3HwddsDHLrvGoIs5aOiETPWo9rg3wyg==", "cpu": [ "x64" ], @@ -4597,9 +4597,9 @@ } }, "node_modules/esbuild-freebsd-arm64": { - "version": "0.14.36", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.36.tgz", - "integrity": "sha512-S3C0attylLLRiCcHiJd036eDEMOY32+h8P+jJ3kTcfhJANNjP0TNBNL30TZmEdOSx/820HJFgRrqpNAvTbjnDA==", + "version": "0.14.37", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.37.tgz", + "integrity": "sha512-MGmZ9akBdqcIH7FcWhUrVTmTW18Xz/EVrvBcV6BHSFDQci0YnOhPAGCrV54t1JNG/5poHNBnaG3R2zNxnmJT5Q==", "cpu": [ "arm64" ], @@ -4627,9 +4627,9 @@ } }, "node_modules/esbuild-linux-32": { - "version": "0.14.36", - "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.36.tgz", - "integrity": "sha512-Eh9OkyTrEZn9WGO4xkI3OPPpUX7p/3QYvdG0lL4rfr73Ap2HAr6D9lP59VMF64Ex01LhHSXwIsFG/8AQjh6eNw==", + "version": "0.14.37", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.37.tgz", + "integrity": "sha512-UCyQrn3n3dHXHDQTPO3gWxfoqtEpGObBdAgevuUtw0//TSyNftnaLcQYyBiGC6J85sM8f/c+Minz5jUFOKrmOA==", "cpu": [ "ia32" ], @@ -4643,9 +4643,9 @@ } }, "node_modules/esbuild-linux-64": { - "version": "0.14.36", - "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.36.tgz", - "integrity": "sha512-vFVFS5ve7PuwlfgoWNyRccGDi2QTNkQo/2k5U5ttVD0jRFaMlc8UQee708fOZA6zTCDy5RWsT5MJw3sl2X6KDg==", + "version": "0.14.37", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.37.tgz", + "integrity": "sha512-UURL6k1Ffr6K4faFgdP6lKVvMKYwq8JmAh+odCukzIWN4EpjIzgmhBUzyFVU+VQLh1+K3tlE1SPJ057PNpayUQ==", "cpu": [ "x64" ], @@ -4659,9 +4659,9 @@ } }, "node_modules/esbuild-linux-arm": { - "version": "0.14.36", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.36.tgz", - "integrity": "sha512-NhgU4n+NCsYgt7Hy61PCquEz5aevI6VjQvxwBxtxrooXsxt5b2xtOUXYZe04JxqQo+XZk3d1gcr7pbV9MAQ/Lg==", + "version": "0.14.37", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.37.tgz", + "integrity": "sha512-SgWcdAivyK2z2kcYAGwLTBSTECXXj/lC0S/BiayyHLYJHA6C3aEGexB6ZDMgffj4Quy/l3Tyr9ktZh8bgcmJrA==", "cpu": [ "arm" ], @@ -4675,9 +4675,9 @@ } }, "node_modules/esbuild-linux-arm64": { - "version": "0.14.36", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.36.tgz", - "integrity": "sha512-24Vq1M7FdpSmaTYuu1w0Hdhiqkbto1I5Pjyi+4Cdw5fJKGlwQuw+hWynTcRI/cOZxBcBpP21gND7W27gHAiftw==", + "version": "0.14.37", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.37.tgz", + "integrity": "sha512-vDHyuFsDpz6nquJO7CAxU2CBj+PB+BJhGawzBrHtcM249fXK4GfVNVArgWFKkSGMZW1ZpKSeef7FeOvM6juhPg==", "cpu": [ "arm64" ], @@ -4691,9 +4691,9 @@ } }, "node_modules/esbuild-linux-mips64le": { - "version": "0.14.36", - "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.36.tgz", - "integrity": "sha512-hZUeTXvppJN+5rEz2EjsOFM9F1bZt7/d2FUM1lmQo//rXh1RTFYzhC0txn7WV0/jCC7SvrGRaRz0NMsRPf8SIA==", + "version": "0.14.37", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.37.tgz", + "integrity": "sha512-azRAGYGKg3dxbYE7C+L35/2Oyg1RCuXvT3Z8M76JZF2N1ZNEA9g01zbuw3GtXWLyI6mhhoHxQL0H1SQUL0At1w==", "cpu": [ "mips64el" ], @@ -4707,9 +4707,9 @@ } }, "node_modules/esbuild-linux-ppc64le": { - "version": "0.14.36", - "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.36.tgz", - "integrity": "sha512-1Bg3QgzZjO+QtPhP9VeIBhAduHEc2kzU43MzBnMwpLSZ890azr4/A9Dganun8nsqD/1TBcqhId0z4mFDO8FAvg==", + "version": "0.14.37", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.37.tgz", + "integrity": "sha512-SyNitGH/h7Hti7A+a5rkRDHhjra1TM1JnJJymRndOzw5Vd+AkWpoSQxxTfvmRw62g42zoeHBgcyrvGfT053l5w==", "cpu": [ "ppc64" ], @@ -4723,9 +4723,9 @@ } }, "node_modules/esbuild-linux-riscv64": { - "version": "0.14.36", - "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.36.tgz", - "integrity": "sha512-dOE5pt3cOdqEhaufDRzNCHf5BSwxgygVak9UR7PH7KPVHwSTDAZHDoEjblxLqjJYpc5XaU9+gKJ9F8mp9r5I4A==", + "version": "0.14.37", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.37.tgz", + "integrity": "sha512-IgEwVXYGC3HpCmZ1nl+vZw1h72i9WEf4mx+JBZ1s+Z0QVGww/8LI6oYZVboPtr7Lok1gKdg5tUZdFukGn5Fr/A==", "cpu": [ "riscv64" ], @@ -4739,9 +4739,9 @@ } }, "node_modules/esbuild-linux-s390x": { - "version": "0.14.36", - "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.36.tgz", - "integrity": "sha512-g4FMdh//BBGTfVHjF6MO7Cz8gqRoDPzXWxRvWkJoGroKA18G9m0wddvPbEqcQf5Tbt2vSc1CIgag7cXwTmoTXg==", + "version": "0.14.37", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.37.tgz", + "integrity": "sha512-X105T1x7PV9pZ/rDpOeNiTWGBd1A0BGUbi6hK9BW7X8IxzQZNwAsaahLOlAFf+OKezoSQrhHfNdBwIu9UZMmtw==", "cpu": [ "s390x" ], @@ -4755,9 +4755,9 @@ } }, "node_modules/esbuild-netbsd-64": { - "version": "0.14.36", - "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.36.tgz", - "integrity": "sha512-UB2bVImxkWk4vjnP62ehFNZ73lQY1xcnL5ZNYF3x0AG+j8HgdkNF05v67YJdCIuUJpBuTyCK8LORCYo9onSW+A==", + "version": "0.14.37", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.37.tgz", + "integrity": "sha512-93mHLGTTFWAemDNGxlx0RJyNQ4E2OnnUGNHpNhKu/zzYw/Imf6dWGB6h7e9axtce8yOg5rOnx8BMhRu0NwQnKA==", "cpu": [ "x64" ], @@ -4771,9 +4771,9 @@ } }, "node_modules/esbuild-openbsd-64": { - "version": "0.14.36", - "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.36.tgz", - "integrity": "sha512-NvGB2Chf8GxuleXRGk8e9zD3aSdRO5kLt9coTQbCg7WMGXeX471sBgh4kSg8pjx0yTXRt0MlrUDnjVYnetyivg==", + "version": "0.14.37", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.37.tgz", + "integrity": "sha512-jdhv2koRbF69artwD4aaSS72b+syfcdVHKs1SqjyfPvi/MsL7OC+jWGOSCZ329RmnECAwCOaL4dO7ZaJiLLj3Q==", "cpu": [ "x64" ], @@ -4787,9 +4787,9 @@ } }, "node_modules/esbuild-sunos-64": { - "version": "0.14.36", - "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.36.tgz", - "integrity": "sha512-VkUZS5ftTSjhRjuRLp+v78auMO3PZBXu6xl4ajomGenEm2/rGuWlhFSjB7YbBNErOchj51Jb2OK8lKAo8qdmsQ==", + "version": "0.14.37", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.37.tgz", + "integrity": "sha512-YvQsr++g0ZBHJUjPeR1Ui81eFcZTH5qJp8s5GP8jur0BwBM+2wCTNutXSh/ZKYp+4ejOo54PFTy3tGo36q7D6g==", "cpu": [ "x64" ], @@ -4803,9 +4803,9 @@ } }, "node_modules/esbuild-windows-32": { - "version": "0.14.36", - "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.36.tgz", - "integrity": "sha512-bIar+A6hdytJjZrDxfMBUSEHHLfx3ynoEZXx/39nxy86pX/w249WZm8Bm0dtOAByAf4Z6qV0LsnTIJHiIqbw0w==", + "version": "0.14.37", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.37.tgz", + "integrity": "sha512-aQlHyME09dWo2FVAniTXLurr/xYZre5bJrnW8yALPUu09ExCC7LzlFQFoJuuSyCdMDHcxYLc6HcrJLwRdR3b/Q==", "cpu": [ "ia32" ], @@ -4819,9 +4819,9 @@ } }, "node_modules/esbuild-windows-64": { - "version": "0.14.36", - "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.36.tgz", - "integrity": "sha512-+p4MuRZekVChAeueT1Y9LGkxrT5x7YYJxYE8ZOTcEfeUUN43vktSn6hUNsvxzzATrSgq5QqRdllkVBxWZg7KqQ==", + "version": "0.14.37", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.37.tgz", + "integrity": "sha512-4mJjpS71AV4rj5PXrOn19uQwiASiyziJwyZT+qQ3M/hc/fIWS2Pgv5gbgytC1O8jptMB6NIpgrauCw56lKgckA==", "cpu": [ "x64" ], @@ -4835,9 +4835,9 @@ } }, "node_modules/esbuild-windows-arm64": { - "version": "0.14.36", - "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.36.tgz", - "integrity": "sha512-fBB4WlDqV1m18EF/aheGYQkQZHfPHiHJSBYzXIo8yKehek+0BtBwo/4PNwKGJ5T0YK0oc8pBKjgwPbzSrPLb+Q==", + "version": "0.14.37", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.37.tgz", + "integrity": "sha512-wQy+sAKD7/d6vDrgH+i+ZdbRLVHGG5BjBpBRStvGgLiuIo46/QEQCaHbBy2LOtXu/o1JYchxilzeQ+ExZdYkeA==", "cpu": [ "arm64" ], @@ -6545,9 +6545,9 @@ } }, "node_modules/hookpoint": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/hookpoint/-/hookpoint-1.2.0.tgz", - "integrity": "sha512-/9tsUyteTLH7HTVsASzc+x5VQCMLQOHpa3lHBUdCquLWqI+ZqAOBgyI84AmiIHyog7goWjS6v9DwYvprKsQK5g==" + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/hookpoint/-/hookpoint-1.3.0.tgz", + "integrity": "sha512-j9ktJ6Kb5TwUGrrguKS8UJ3eHJuy5M3JL77fjruhIWYBAv7p73g4pB3GXaI8ebG+GZEG67oKBiGmQ2NDIstsKQ==" }, "node_modules/html-encoding-sniffer": { "version": "2.0.1", @@ -6862,9 +6862,9 @@ "dev": true }, "node_modules/is-core-module": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", "dev": true, "dependencies": { "has": "^1.0.3" @@ -7086,9 +7086,9 @@ } }, "node_modules/istanbul-lib-instrument": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz", - "integrity": "sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz", + "integrity": "sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==", "dev": true, "dependencies": { "@babel/core": "^7.12.3", @@ -9142,9 +9142,9 @@ "dev": true }, "node_modules/lint-staged": { - "version": "12.3.8", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-12.3.8.tgz", - "integrity": "sha512-0+UpNaqIwKRSGAFOCcpuYNIv/j5QGVC+xUVvmSdxHO+IfIGoHbFLo3XcPmV/LLnsVj5EAncNHVtlITSoY5qWGQ==", + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-12.4.0.tgz", + "integrity": "sha512-3X7MR0h9b7qf4iXf/1n7RlVAx+EzpAZXoCEMhVSpaBlgKDfH2ewf+QUm7BddFyq29v4dgPP+8+uYpWuSWx035A==", "dev": true, "dependencies": { "cli-truncate": "^3.1.0", @@ -13625,9 +13625,9 @@ } }, "@grpc/grpc-js": { - "version": "1.6.6", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.6.6.tgz", - "integrity": "sha512-gEMn1+d01yO/QNHsDOPHxJYtA6QItbdQT4mGFS8Gt5IQCq+83OEsD0sbvPf3RLCtHy1HI412JgQPr5HM9QK0mw==", + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.6.7.tgz", + "integrity": "sha512-eBM03pu9hd3VqDQG+kHahiG1x80RGkkqqRb1Pchcwqej/KkAH95gAvKs6laqaHCycYaPK+TKuNQnOz9UXYA8qw==", "requires": { "@grpc/proto-loader": "^0.6.4", "@types/node": ">=12.12.47" @@ -16333,9 +16333,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.4.113", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.113.tgz", - "integrity": "sha512-s30WKxp27F3bBH6fA07FYL2Xm/FYnYrKpMjHr3XVCTUb9anAyZn/BeZfPWgTZGAbJeT4NxNwISSbLcYZvggPMA==", + "version": "1.4.117", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.117.tgz", + "integrity": "sha512-ypZHxY+Sf/PXu7LVN+xoeanyisnJeSOy8Ki439L/oLueZb4c72FI45zXcK3gPpmTwyufh9m6NnbMLXnJh/0Fxg==", "dev": true }, "emittery": { @@ -16372,72 +16372,72 @@ } }, "esbuild": { - "version": "0.14.36", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.36.tgz", - "integrity": "sha512-HhFHPiRXGYOCRlrhpiVDYKcFJRdO0sBElZ668M4lh2ER0YgnkLxECuFe7uWCf23FrcLc59Pqr7dHkTqmRPDHmw==", - "dev": true, - "requires": { - "esbuild-android-64": "0.14.36", - "esbuild-android-arm64": "0.14.36", - "esbuild-darwin-64": "0.14.36", - "esbuild-darwin-arm64": "0.14.36", - "esbuild-freebsd-64": "0.14.36", - "esbuild-freebsd-arm64": "0.14.36", - "esbuild-linux-32": "0.14.36", - "esbuild-linux-64": "0.14.36", - "esbuild-linux-arm": "0.14.36", - "esbuild-linux-arm64": "0.14.36", - "esbuild-linux-mips64le": "0.14.36", - "esbuild-linux-ppc64le": "0.14.36", - "esbuild-linux-riscv64": "0.14.36", - "esbuild-linux-s390x": "0.14.36", - "esbuild-netbsd-64": "0.14.36", - "esbuild-openbsd-64": "0.14.36", - "esbuild-sunos-64": "0.14.36", - "esbuild-windows-32": "0.14.36", - "esbuild-windows-64": "0.14.36", - "esbuild-windows-arm64": "0.14.36" + "version": "0.14.37", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.37.tgz", + "integrity": "sha512-sPlTpEkjzgFjWjYdve5xM1A3fpKXWNc+0yh0u9tqdER992OEpvde1c/+5rbRFsaSEEjQM9qXRcYn3EvNwgLF9w==", + "dev": true, + "requires": { + "esbuild-android-64": "0.14.37", + "esbuild-android-arm64": "0.14.37", + "esbuild-darwin-64": "0.14.37", + "esbuild-darwin-arm64": "0.14.37", + "esbuild-freebsd-64": "0.14.37", + "esbuild-freebsd-arm64": "0.14.37", + "esbuild-linux-32": "0.14.37", + "esbuild-linux-64": "0.14.37", + "esbuild-linux-arm": "0.14.37", + "esbuild-linux-arm64": "0.14.37", + "esbuild-linux-mips64le": "0.14.37", + "esbuild-linux-ppc64le": "0.14.37", + "esbuild-linux-riscv64": "0.14.37", + "esbuild-linux-s390x": "0.14.37", + "esbuild-netbsd-64": "0.14.37", + "esbuild-openbsd-64": "0.14.37", + "esbuild-sunos-64": "0.14.37", + "esbuild-windows-32": "0.14.37", + "esbuild-windows-64": "0.14.37", + "esbuild-windows-arm64": "0.14.37" } }, "esbuild-android-64": { - "version": "0.14.36", - "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.36.tgz", - "integrity": "sha512-jwpBhF1jmo0tVCYC/ORzVN+hyVcNZUWuozGcLHfod0RJCedTDTvR4nwlTXdx1gtncDqjk33itjO+27OZHbiavw==", + "version": "0.14.37", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.37.tgz", + "integrity": "sha512-Jb61ihbS3iSj3+PhURe7sEuBg4h16CeT4CiT3W4Aop6rr5p/N6IvNXNWFX0gzUaRWtGoAFfCXFBEIn6zWUU3hQ==", "dev": true, "optional": true }, "esbuild-android-arm64": { - "version": "0.14.36", - "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.36.tgz", - "integrity": "sha512-/hYkyFe7x7Yapmfv4X/tBmyKnggUmdQmlvZ8ZlBnV4+PjisrEhAvC3yWpURuD9XoB8Wa1d5dGkTsF53pIvpjsg==", + "version": "0.14.37", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.37.tgz", + "integrity": "sha512-wwcI+EUHWe1LlxBE7vjdqZ53DEiCllD6XsYOIiGxzL8KaG7eOLXNS7tNhdK0QIR4wwMNTPLDB40ZKuAXZ8zv6Q==", "dev": true, "optional": true }, "esbuild-darwin-64": { - "version": "0.14.36", - "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.36.tgz", - "integrity": "sha512-kkl6qmV0dTpyIMKagluzYqlc1vO0ecgpviK/7jwPbRDEv5fejRTaBBEE2KxEQbTHcLhiiDbhG7d5UybZWo/1zQ==", + "version": "0.14.37", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.37.tgz", + "integrity": "sha512-gg/UZ/FZrRzPq+tAOiMwyBoa6eNxX6bcjuivZ8v2Tny83RhIyeDhvC84dgVcPinqK39u8pOYw6a7nffotUrjKQ==", "dev": true, "optional": true }, "esbuild-darwin-arm64": { - "version": "0.14.36", - "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.36.tgz", - "integrity": "sha512-q8fY4r2Sx6P0Pr3VUm//eFYKVk07C5MHcEinU1BjyFnuYz4IxR/03uBbDwluR6ILIHnZTE7AkTUWIdidRi1Jjw==", + "version": "0.14.37", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.37.tgz", + "integrity": "sha512-eFwy5il5yvIHAVau97kWoNYfxuCd1X7hfgKc4Ns5ymlYXhyRzRywwJfknHax5rDyZxfDXtnFaT/nftUiYwsHIQ==", "dev": true, "optional": true }, "esbuild-freebsd-64": { - "version": "0.14.36", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.36.tgz", - "integrity": "sha512-Hn8AYuxXXRptybPqoMkga4HRFE7/XmhtlQjXFHoAIhKUPPMeJH35GYEUWGbjteai9FLFvBAjEAlwEtSGxnqWww==", + "version": "0.14.37", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.37.tgz", + "integrity": "sha512-4iFbdmohve6wyPwsVPe/1j5rVwg5uPTopmgIUiJBbnPKMmo8NecUSbz3HwddsDHLrvGoIs5aOiETPWo9rg3wyg==", "dev": true, "optional": true }, "esbuild-freebsd-arm64": { - "version": "0.14.36", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.36.tgz", - "integrity": "sha512-S3C0attylLLRiCcHiJd036eDEMOY32+h8P+jJ3kTcfhJANNjP0TNBNL30TZmEdOSx/820HJFgRrqpNAvTbjnDA==", + "version": "0.14.37", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.37.tgz", + "integrity": "sha512-MGmZ9akBdqcIH7FcWhUrVTmTW18Xz/EVrvBcV6BHSFDQci0YnOhPAGCrV54t1JNG/5poHNBnaG3R2zNxnmJT5Q==", "dev": true, "optional": true }, @@ -16453,100 +16453,100 @@ } }, "esbuild-linux-32": { - "version": "0.14.36", - "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.36.tgz", - "integrity": "sha512-Eh9OkyTrEZn9WGO4xkI3OPPpUX7p/3QYvdG0lL4rfr73Ap2HAr6D9lP59VMF64Ex01LhHSXwIsFG/8AQjh6eNw==", + "version": "0.14.37", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.37.tgz", + "integrity": "sha512-UCyQrn3n3dHXHDQTPO3gWxfoqtEpGObBdAgevuUtw0//TSyNftnaLcQYyBiGC6J85sM8f/c+Minz5jUFOKrmOA==", "dev": true, "optional": true }, "esbuild-linux-64": { - "version": "0.14.36", - "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.36.tgz", - "integrity": "sha512-vFVFS5ve7PuwlfgoWNyRccGDi2QTNkQo/2k5U5ttVD0jRFaMlc8UQee708fOZA6zTCDy5RWsT5MJw3sl2X6KDg==", + "version": "0.14.37", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.37.tgz", + "integrity": "sha512-UURL6k1Ffr6K4faFgdP6lKVvMKYwq8JmAh+odCukzIWN4EpjIzgmhBUzyFVU+VQLh1+K3tlE1SPJ057PNpayUQ==", "dev": true, "optional": true }, "esbuild-linux-arm": { - "version": "0.14.36", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.36.tgz", - "integrity": "sha512-NhgU4n+NCsYgt7Hy61PCquEz5aevI6VjQvxwBxtxrooXsxt5b2xtOUXYZe04JxqQo+XZk3d1gcr7pbV9MAQ/Lg==", + "version": "0.14.37", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.37.tgz", + "integrity": "sha512-SgWcdAivyK2z2kcYAGwLTBSTECXXj/lC0S/BiayyHLYJHA6C3aEGexB6ZDMgffj4Quy/l3Tyr9ktZh8bgcmJrA==", "dev": true, "optional": true }, "esbuild-linux-arm64": { - "version": "0.14.36", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.36.tgz", - "integrity": "sha512-24Vq1M7FdpSmaTYuu1w0Hdhiqkbto1I5Pjyi+4Cdw5fJKGlwQuw+hWynTcRI/cOZxBcBpP21gND7W27gHAiftw==", + "version": "0.14.37", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.37.tgz", + "integrity": "sha512-vDHyuFsDpz6nquJO7CAxU2CBj+PB+BJhGawzBrHtcM249fXK4GfVNVArgWFKkSGMZW1ZpKSeef7FeOvM6juhPg==", "dev": true, "optional": true }, "esbuild-linux-mips64le": { - "version": "0.14.36", - "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.36.tgz", - "integrity": "sha512-hZUeTXvppJN+5rEz2EjsOFM9F1bZt7/d2FUM1lmQo//rXh1RTFYzhC0txn7WV0/jCC7SvrGRaRz0NMsRPf8SIA==", + "version": "0.14.37", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.37.tgz", + "integrity": "sha512-azRAGYGKg3dxbYE7C+L35/2Oyg1RCuXvT3Z8M76JZF2N1ZNEA9g01zbuw3GtXWLyI6mhhoHxQL0H1SQUL0At1w==", "dev": true, "optional": true }, "esbuild-linux-ppc64le": { - "version": "0.14.36", - "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.36.tgz", - "integrity": "sha512-1Bg3QgzZjO+QtPhP9VeIBhAduHEc2kzU43MzBnMwpLSZ890azr4/A9Dganun8nsqD/1TBcqhId0z4mFDO8FAvg==", + "version": "0.14.37", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.37.tgz", + "integrity": "sha512-SyNitGH/h7Hti7A+a5rkRDHhjra1TM1JnJJymRndOzw5Vd+AkWpoSQxxTfvmRw62g42zoeHBgcyrvGfT053l5w==", "dev": true, "optional": true }, "esbuild-linux-riscv64": { - "version": "0.14.36", - "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.36.tgz", - "integrity": "sha512-dOE5pt3cOdqEhaufDRzNCHf5BSwxgygVak9UR7PH7KPVHwSTDAZHDoEjblxLqjJYpc5XaU9+gKJ9F8mp9r5I4A==", + "version": "0.14.37", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.37.tgz", + "integrity": "sha512-IgEwVXYGC3HpCmZ1nl+vZw1h72i9WEf4mx+JBZ1s+Z0QVGww/8LI6oYZVboPtr7Lok1gKdg5tUZdFukGn5Fr/A==", "dev": true, "optional": true }, "esbuild-linux-s390x": { - "version": "0.14.36", - "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.36.tgz", - "integrity": "sha512-g4FMdh//BBGTfVHjF6MO7Cz8gqRoDPzXWxRvWkJoGroKA18G9m0wddvPbEqcQf5Tbt2vSc1CIgag7cXwTmoTXg==", + "version": "0.14.37", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.37.tgz", + "integrity": "sha512-X105T1x7PV9pZ/rDpOeNiTWGBd1A0BGUbi6hK9BW7X8IxzQZNwAsaahLOlAFf+OKezoSQrhHfNdBwIu9UZMmtw==", "dev": true, "optional": true }, "esbuild-netbsd-64": { - "version": "0.14.36", - "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.36.tgz", - "integrity": "sha512-UB2bVImxkWk4vjnP62ehFNZ73lQY1xcnL5ZNYF3x0AG+j8HgdkNF05v67YJdCIuUJpBuTyCK8LORCYo9onSW+A==", + "version": "0.14.37", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.37.tgz", + "integrity": "sha512-93mHLGTTFWAemDNGxlx0RJyNQ4E2OnnUGNHpNhKu/zzYw/Imf6dWGB6h7e9axtce8yOg5rOnx8BMhRu0NwQnKA==", "dev": true, "optional": true }, "esbuild-openbsd-64": { - "version": "0.14.36", - "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.36.tgz", - "integrity": "sha512-NvGB2Chf8GxuleXRGk8e9zD3aSdRO5kLt9coTQbCg7WMGXeX471sBgh4kSg8pjx0yTXRt0MlrUDnjVYnetyivg==", + "version": "0.14.37", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.37.tgz", + "integrity": "sha512-jdhv2koRbF69artwD4aaSS72b+syfcdVHKs1SqjyfPvi/MsL7OC+jWGOSCZ329RmnECAwCOaL4dO7ZaJiLLj3Q==", "dev": true, "optional": true }, "esbuild-sunos-64": { - "version": "0.14.36", - "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.36.tgz", - "integrity": "sha512-VkUZS5ftTSjhRjuRLp+v78auMO3PZBXu6xl4ajomGenEm2/rGuWlhFSjB7YbBNErOchj51Jb2OK8lKAo8qdmsQ==", + "version": "0.14.37", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.37.tgz", + "integrity": "sha512-YvQsr++g0ZBHJUjPeR1Ui81eFcZTH5qJp8s5GP8jur0BwBM+2wCTNutXSh/ZKYp+4ejOo54PFTy3tGo36q7D6g==", "dev": true, "optional": true }, "esbuild-windows-32": { - "version": "0.14.36", - "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.36.tgz", - "integrity": "sha512-bIar+A6hdytJjZrDxfMBUSEHHLfx3ynoEZXx/39nxy86pX/w249WZm8Bm0dtOAByAf4Z6qV0LsnTIJHiIqbw0w==", + "version": "0.14.37", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.37.tgz", + "integrity": "sha512-aQlHyME09dWo2FVAniTXLurr/xYZre5bJrnW8yALPUu09ExCC7LzlFQFoJuuSyCdMDHcxYLc6HcrJLwRdR3b/Q==", "dev": true, "optional": true }, "esbuild-windows-64": { - "version": "0.14.36", - "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.36.tgz", - "integrity": "sha512-+p4MuRZekVChAeueT1Y9LGkxrT5x7YYJxYE8ZOTcEfeUUN43vktSn6hUNsvxzzATrSgq5QqRdllkVBxWZg7KqQ==", + "version": "0.14.37", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.37.tgz", + "integrity": "sha512-4mJjpS71AV4rj5PXrOn19uQwiASiyziJwyZT+qQ3M/hc/fIWS2Pgv5gbgytC1O8jptMB6NIpgrauCw56lKgckA==", "dev": true, "optional": true }, "esbuild-windows-arm64": { - "version": "0.14.36", - "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.36.tgz", - "integrity": "sha512-fBB4WlDqV1m18EF/aheGYQkQZHfPHiHJSBYzXIo8yKehek+0BtBwo/4PNwKGJ5T0YK0oc8pBKjgwPbzSrPLb+Q==", + "version": "0.14.37", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.37.tgz", + "integrity": "sha512-wQy+sAKD7/d6vDrgH+i+ZdbRLVHGG5BjBpBRStvGgLiuIo46/QEQCaHbBy2LOtXu/o1JYchxilzeQ+ExZdYkeA==", "dev": true, "optional": true }, @@ -17850,9 +17850,9 @@ } }, "hookpoint": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/hookpoint/-/hookpoint-1.2.0.tgz", - "integrity": "sha512-/9tsUyteTLH7HTVsASzc+x5VQCMLQOHpa3lHBUdCquLWqI+ZqAOBgyI84AmiIHyog7goWjS6v9DwYvprKsQK5g==" + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/hookpoint/-/hookpoint-1.3.0.tgz", + "integrity": "sha512-j9ktJ6Kb5TwUGrrguKS8UJ3eHJuy5M3JL77fjruhIWYBAv7p73g4pB3GXaI8ebG+GZEG67oKBiGmQ2NDIstsKQ==" }, "html-encoding-sniffer": { "version": "2.0.1", @@ -18087,9 +18087,9 @@ } }, "is-core-module": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", "dev": true, "requires": { "has": "^1.0.3" @@ -18240,9 +18240,9 @@ "dev": true }, "istanbul-lib-instrument": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz", - "integrity": "sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz", + "integrity": "sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==", "dev": true, "requires": { "@babel/core": "^7.12.3", @@ -19924,9 +19924,9 @@ "dev": true }, "lint-staged": { - "version": "12.3.8", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-12.3.8.tgz", - "integrity": "sha512-0+UpNaqIwKRSGAFOCcpuYNIv/j5QGVC+xUVvmSdxHO+IfIGoHbFLo3XcPmV/LLnsVj5EAncNHVtlITSoY5qWGQ==", + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-12.4.0.tgz", + "integrity": "sha512-3X7MR0h9b7qf4iXf/1n7RlVAx+EzpAZXoCEMhVSpaBlgKDfH2ewf+QUm7BddFyq29v4dgPP+8+uYpWuSWx035A==", "dev": true, "requires": { "cli-truncate": "^3.1.0", diff --git a/package.json b/package.json index 6d9ea9a0..7cac87f6 100644 --- a/package.json +++ b/package.json @@ -78,14 +78,14 @@ "@typescript-eslint/eslint-plugin": "^5.20.0", "@typescript-eslint/parser": "^5.20.0", "concurrently": "^7.1.0", - "esbuild": "^0.14.36", + "esbuild": "^0.14.37", "esbuild-jest": "^0.5.0", "eslint": "^8.13.0", "eslint-config-prettier": "^8.5.0", "eslint-plugin-node": "^11.1.0", "husky": "^7.0.4", "jest": "^27.5.1", - "lint-staged": "^12.3.8", + "lint-staged": "^12.4.0", "lockfile-lint": "^4.7.4", "mockttp": "^2.7.0", "prettier": "^2.6.2", @@ -93,7 +93,7 @@ }, "dependencies": { "@cloudamqp/amqp-client": "^2.0.3", - "@grpc/grpc-js": "^1.6.6", + "@grpc/grpc-js": "^1.6.7", "@grpc/proto-loader": "^0.6.9", "aws4": "^1.11.0", "chalk": "^4.1.2", @@ -107,7 +107,7 @@ "filesize": "^8.0.7", "globby": "^13.1.1", "got": "^11.8.3", - "hookpoint": "^1.2.0", + "hookpoint": "^1.3.0", "http-proxy-agent": "^5.0.0", "https-proxy-agent": "^5.0.1", "inquirer": "^8.2.2", diff --git a/src/cli/send/send.ts b/src/cli/send/send.ts index df876a27..cd70e086 100644 --- a/src/cli/send/send.ts +++ b/src/cli/send/send.ts @@ -84,6 +84,7 @@ async function execute(fileNames: Array, options: SendOptions): Promise< context.scriptConsole.info( chalk`{bold ${cliJsonOutput.summary.totalRequests}} requests processed ({green ${cliJsonOutput.summary.successRequests} succeeded}, {red ${cliJsonOutput.summary.failedRequests} failed})` ); + context.scriptConsole.flush(); } } } diff --git a/src/plugins/core/execute/logResponseInterceptor.ts b/src/plugins/core/execute/logResponseInterceptor.ts index a07a9c12..b87ba7b0 100644 --- a/src/plugins/core/execute/logResponseInterceptor.ts +++ b/src/plugins/core/execute/logResponseInterceptor.ts @@ -7,12 +7,14 @@ export class LogResponseInterceptor implements HookInterceptor<[models.Processor hookContext: HookTriggerContext<[models.ProcessorContext], boolean | undefined> ): Promise { const context = hookContext.args[0]; - const processedHttpRegion = this.toProcessedHttpRegion(context); - processedHttpRegion.response = await utils.logResponse(processedHttpRegion?.response, context); - if (context.processedHttpRegions && !utils.isGlobalHttpRegion(context.httpRegion)) { - context.processedHttpRegions.push(processedHttpRegion); + if (context.httpRegion.response) { + const processedHttpRegion = this.toProcessedHttpRegion(context); + processedHttpRegion.response = await utils.logResponse(processedHttpRegion?.response, context); + if (context.processedHttpRegions && !utils.isGlobalHttpRegion(context.httpRegion)) { + context.processedHttpRegions.push(processedHttpRegion); + } + delete context.httpRegion.response; } - delete context.httpRegion.response; return true; } private toProcessedHttpRegion(context: models.ProcessorContext): models.ProcessedHttpRegion { diff --git a/src/plugins/core/metaData/loopMetaDataHandler.ts b/src/plugins/core/metaData/loopMetaDataHandler.ts index 13fbe130..c6c6d6e6 100644 --- a/src/plugins/core/metaData/loopMetaDataHandler.ts +++ b/src/plugins/core/metaData/loopMetaDataHandler.ts @@ -1,9 +1,7 @@ import * as io from '../../../io'; import * as models from '../../../models'; import * as utils from '../../../utils'; -import { HookInterceptor, HookTriggerContext } from 'hookpoint'; -import cloneDeep from 'lodash/cloneDeep'; -import { v4 as uuid } from 'uuid'; +import { HookCancel, HookInterceptor, HookTriggerContext } from 'hookpoint'; export function loopMetaDataHandler(type: string, value: string | undefined, context: models.ParserContext): boolean { if (type === 'loop' && value) { @@ -37,8 +35,7 @@ export function loopMetaDataHandler(type: string, value: string | undefined, con } function addHook(context: models.ParserContext, data: Omit) { - const loopAction = new LoopMetaAction(data); - context.httpRegion.hooks.execute.addObjHook(obj => obj.process, loopAction); + const loopAction = new LoopMetaInterceptor(data); context.httpRegion.hooks.execute.addInterceptor(loopAction); } @@ -56,168 +53,130 @@ interface LoopMetaData { expression?: string; } -class LoopMetaAction implements HookInterceptor<[models.ProcessorContext], boolean> { +class LoopMetaInterceptor implements HookInterceptor<[models.ProcessorContext], boolean> { id; - private iteration: - | AsyncGenerator<{ - index: number; - variables: models.Variables; - }> - | undefined; - - name: string | undefined; - index = 0; - request: models.Request | undefined; + isInLoop = false; constructor(private readonly data: LoopMetaData) { - this.id = `loop_${uuid()}`; - } - - async beforeTrigger(hookContext: HookTriggerContext<[models.ProcessorContext], boolean>): Promise { - if (hookContext.hookItem?.id === this.id) { - this.index = hookContext.index; - } - return true; + this.id = `loop_${data.type}`; } - async process(context: models.ProcessorContext): Promise { - this.iteration = this.iterate(context); - if (utils.isString(context.httpRegion.metaData.name)) { - this.name = context.httpRegion.metaData.name; - } - utils.report(context, 'start loop'); - const next = await this.iteration.next(); - if (!next.done) { - if (context.request) { - this.request = cloneDeep(context.request); - } - Object.assign(context.variables, next.value.variables); + async beforeLoop(hookContext: HookTriggerContext<[models.ProcessorContext], boolean>): Promise { + if (this.isInLoop) { return true; } - return false; - } - - async afterTrigger(hookContext: HookTriggerContext<[models.ProcessorContext], boolean>): Promise { const context = hookContext.args[0]; - if (this.iteration && hookContext.index + 1 === hookContext.length) { - this.setResponsesList(context); - const next = await this.iteration.next(); - - if (!next.done) { - utils.report(context, `${next.value.index} loop pass`); - Object.assign(context.variables, next.value.variables); - await utils.logResponse(context.httpRegion.response, context); - context.httpRegion = this.createHttpRegionClone(context.httpRegion, next.value.index); - if (this.request) { - context.request = cloneDeep(this.request); + const iteration = this.iterate(context); + const responses = []; + try { + this.isInLoop = true; + let next = await iteration.next(); + while (!next.done) { + utils.report(context, `${next.value.index + 1} loop pass`); + const loopContext = { + ...context, + httpRegion: this.createHttpRegionClone(context.httpRegion, next.value.index), + variables: Object.assign(context.variables, next.value.variables), + }; + const result = await hookContext.hook.trigger(loopContext); + if (result === HookCancel) { + return false; } - hookContext.index = this.index; + responses.push(loopContext.variables.response); + next = await iteration.next(); + } + if (context.httpRegion.metaData.name) { + utils.setVariableInContext( + { + [`${context.httpRegion.metaData.name}List`]: responses, + }, + context + ); } - } else if (this.name && context.variables[this.name]) { - utils.setVariableInContext( - { - [`${this.name}0`]: context.variables[this.name], - [`${this.name}0Response`]: context.variables.response, - }, - context - ); + this.breakHookLoop(hookContext); + } finally { + this.isInLoop = false; } - return true; } - private setResponsesList(context: models.ProcessorContext) { - const listName = `${this.name}List`; - let responses: unknown = context.variables[listName]; - if (!responses) { - responses = []; - utils.setVariableInContext( - { - [listName]: responses, - }, - context - ); - } - if (Array.isArray(responses) && utils.isHttpResponse(context.variables.response)) { - responses.push(utils.shrinkCloneResponse(context.variables.response)); - } + private breakHookLoop(hookContext: HookTriggerContext<[models.ProcessorContext], boolean | undefined>) { + hookContext.index = hookContext.length; } - private async *iterate(context: models.ProcessorContext) { switch (this.data.type) { case LoopMetaType.forOf: - if (this.data.variable && this.data.iterable) { - const array = await io.javascriptProvider.evalExpression(this.data.iterable, context); - let iterable: Array | undefined; - if (Array.isArray(array)) { - iterable = array; - } - if (iterable) { - let index = 0; - for (const variable of iterable) { - const variables: models.Variables = { - $index: index, - }; - variables[this.data.variable] = variable; - yield { - index, - variables, - }; - index++; - } - } - } + await (yield* this.iterateForOfLoop(context)); break; case LoopMetaType.for: - if (this.data.counter) { - for (let index = 0; index < this.data.counter; index++) { - yield { - index, - variables: { - $index: index, - }, - }; - } - } + yield* this.iterateForLoop(); break; case LoopMetaType.while: - if (this.data.expression) { - let index = 0; - while (await io.javascriptProvider.evalExpression(this.data.expression, context)) { - yield { - index, - variables: { - $index: index, - }, - }; - index++; - } - } + await (yield* this.iterateWhileLoop(context)); break; default: break; } } + private async *iterateForOfLoop(context: models.ProcessorContext) { + if (this.data.variable && this.data.iterable) { + const array = await io.javascriptProvider.evalExpression(this.data.iterable, context); + let iterable: Array | undefined; + if (Array.isArray(array)) { + iterable = array; + } + if (iterable) { + let index = 0; + for (const variable of iterable) { + const variables: models.Variables = { + $index: index, + }; + variables[this.data.variable] = variable; + yield { + index, + variables, + }; + index++; + } + } + } + } + + private async *iterateWhileLoop(context: models.ProcessorContext) { + if (this.data.expression) { + let index = 0; + while (await io.javascriptProvider.evalExpression(this.data.expression, context)) { + yield { + index, + variables: { + $index: index, + }, + }; + index++; + } + } + } + + private *iterateForLoop() { + if (this.data.counter) { + for (let index = 0; index < this.data.counter; index++) { + yield { + index, + variables: { + $index: index, + }, + }; + } + } + } + private createHttpRegionClone(httpRegion: models.HttpRegion, index: number): models.HttpRegion { return { + ...httpRegion, metaData: { ...httpRegion.metaData, - name: this.name ? `${this.name}${index}` : undefined, - }, - request: httpRegion.request - ? { - ...httpRegion.request, - } - : undefined, - symbol: httpRegion.symbol, - hooks: { - execute: new models.ExecuteHook(), - onRequest: new models.OnRequestHook(), - onStreaming: new models.OnStreaming(), - onResponse: new models.OnResponseHook(), - responseLogging: new models.ResponseLoggingHook(), + name: httpRegion.metaData.name ? `${httpRegion.metaData.name}${index}` : undefined, }, - variablesPerEnv: httpRegion.variablesPerEnv, }; } }