From a74c1de0a2685e4748078b2490194061cc06b4ce Mon Sep 17 00:00:00 2001 From: Yassine Date: Wed, 11 Aug 2021 13:22:33 -0400 Subject: [PATCH] feat(snapshot): add a `--wait` flag on all `org:config:*` commands (#397) * remove exponential-backoff https://coveord.atlassian.net/browse/CDX-506 * add a wait flag https://coveord.atlassian.net/browse/CDX-506 * refactor snapshot https://coveord.atlassian.net/browse/CDX-506 * update test https://coveord.atlassian.net/browse/CDX-506 * lock https://coveord.atlassian.net/browse/CDX-506 * polishing https://coveord.atlassian.net/browse/CDX-506 * fix no timeout https://coveord.atlassian.net/browse/CDX-506 * lock https://coveord.atlassian.net/browse/CDX-506 * fix: use async-retry to not handle/redo the poll-timing logic (#398) * lock https://coveord.atlassian.net/browse/CDX-506 * fix merge conflict https://coveord.atlassian.net/browse/CDX-506 * fix: `org:config:monitor` doesn't show any feedback (#404) https://coveord.atlassian.net/browse/CDX-526 * refactor waitUntilDone https://coveord.atlassian.net/browse/CDX-506 * lock https://coveord.atlassian.net/browse/CDX-506 * apply corrections https://coveord.atlassian.net/browse/CDX-506 * apply corrections https://coveord.atlassian.net/browse/CDX-506 Co-authored-by: Louis Bompart --- packages/angular/package-lock.json | 170 ++++---- packages/cli/package-lock.json | 391 ++++++++++++------ packages/cli/package.json | 4 +- .../cli/src/commands/org/config/monitor.ts | 33 +- .../src/commands/org/config/preview.spec.ts | 30 +- .../cli/src/commands/org/config/preview.ts | 20 +- .../cli/src/commands/org/config/pull.spec.ts | 26 +- packages/cli/src/commands/org/config/pull.ts | 15 +- .../cli/src/commands/org/config/push.spec.ts | 32 +- packages/cli/src/commands/org/config/push.ts | 22 +- packages/cli/src/lib/snapshot/snapshot.ts | 105 +++-- .../cli/src/lib/snapshot/snapshotCommon.ts | 43 +- .../cli/src/lib/snapshot/snapshotFactory.ts | 15 +- packages/cra-template/package-lock.json | 125 ++---- .../search-token-server/package-lock.json | 6 +- packages/search-token-server/package.json | 2 +- 16 files changed, 631 insertions(+), 408 deletions(-) diff --git a/packages/angular/package-lock.json b/packages/angular/package-lock.json index b3a0eefcd5..9fdc34162c 100644 --- a/packages/angular/package-lock.json +++ b/packages/angular/package-lock.json @@ -5,18 +5,18 @@ "requires": true, "dependencies": { "@angular-devkit/architect": { - "version": "0.1201.1", - "resolved": "http://localhost:4873/@angular-devkit%2farchitect/-/architect-0.1201.1.tgz", - "integrity": "sha512-n7ycxrIPbtnV7q8PH5Uvs8Jd++u6hWUiB+8EUxznSfdHGA+fE7TTnJTkc27LoMlYZAImc/Axp/uyYZ6Awt72ZQ==", + "version": "0.1201.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1201.4.tgz", + "integrity": "sha512-hGO5NrZxV8Z7sILwokt7H+1sMf+5tJS9PJszvYlIBSzG0LBkOwwLQDb4MD42ATXFru57SXNqMZDVKoi1kTgxAw==", "requires": { - "@angular-devkit/core": "12.1.1", + "@angular-devkit/core": "12.1.4", "rxjs": "6.6.7" } }, "@angular-devkit/core": { - "version": "12.1.1", - "resolved": "http://localhost:4873/@angular-devkit%2fcore/-/core-12.1.1.tgz", - "integrity": "sha512-z5+O3ugXbo8djKPjUtf/UfnYCmco2K1LVhQ6cWLhKi3NKRBiHeNmZh5nAycqFD8/Q+oI/+Ao40MkmkK1Tq0jsw==", + "version": "12.1.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-12.1.4.tgz", + "integrity": "sha512-KOzGD8JbP/7EeUwPiU5x+fo3ZEQ5R4IVW5WoH92PaO3mdpqXC7UL2MWLct8PUe9il9nqJMvrBMldSSvP9PCT2w==", "requires": { "ajv": "8.6.0", "ajv-formats": "2.1.0", @@ -27,19 +27,19 @@ } }, "@angular-devkit/schematics": { - "version": "12.1.1", - "resolved": "http://localhost:4873/@angular-devkit%2fschematics/-/schematics-12.1.1.tgz", - "integrity": "sha512-oRsvlhJQLXkGWdJvArOby+G4j8UX2uCHwrN4EC1hXUKs84UsD+UATYOAh4h2auy+I+sdrmELUaHwdI4wdKpqnw==", + "version": "12.1.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-12.1.4.tgz", + "integrity": "sha512-yD3y3pK/K5piOgvALFoCCiPp4H8emNa3yZL+vlpEpewVLpF1MM55LeTxc0PI5s0uqtOGVnvcbA5wYgMm3YsUEA==", "requires": { - "@angular-devkit/core": "12.1.1", + "@angular-devkit/core": "12.1.4", "ora": "5.4.1", "rxjs": "6.6.7" } }, "@angular/cdk": { - "version": "12.1.1", - "resolved": "http://localhost:4873/@angular%2fcdk/-/cdk-12.1.1.tgz", - "integrity": "sha512-MJENa8qmfLAr6t59u1+mEC2YPbCn4n3vsY6k8fKyf+ILXwwGHWNZlYblaRMBjrF/crSx1Kd5vb30RCqIcNTGsA==", + "version": "12.1.4", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-12.1.4.tgz", + "integrity": "sha512-so8HP7jRNkGfdTkPmFVqyW4pj1vU0ASG1NaZMDXnin44PVjbJpaKhQsArhQ/yOmRP9XzP6TR3zHzmxszfGiaKg==", "requires": { "parse5": "^5.0.0", "tslib": "^2.2.0" @@ -47,20 +47,20 @@ "dependencies": { "tslib": { "version": "2.3.0", - "resolved": "http://localhost:4873/tslib/-/tslib-2.3.0.tgz", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" } } }, "@angular/cli": { - "version": "12.1.1", - "resolved": "http://localhost:4873/@angular%2fcli/-/cli-12.1.1.tgz", - "integrity": "sha512-rQZItn3kpYEX6tH7wquAEhJuxVpW6sYKO2tSi8Suxrm+iz1RPRnfhSwS1WIEumnwpFRtH/8P+lOrScax1ldYkg==", - "requires": { - "@angular-devkit/architect": "0.1201.1", - "@angular-devkit/core": "12.1.1", - "@angular-devkit/schematics": "12.1.1", - "@schematics/angular": "12.1.1", + "version": "12.1.4", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-12.1.4.tgz", + "integrity": "sha512-LpyhyqWe3bFcuH3MrXeYoIPI1htjwG1b5ehETfq4qsMvNmuFON6QI+F7EWEpX7lItVQc2bES+ogasTZsZue/uw==", + "requires": { + "@angular-devkit/architect": "0.1201.4", + "@angular-devkit/core": "12.1.4", + "@angular-devkit/schematics": "12.1.4", + "@schematics/angular": "12.1.4", "@yarnpkg/lockfile": "1.1.0", "ansi-colors": "4.1.1", "debug": "4.3.1", @@ -238,7 +238,7 @@ }, "@npmcli/git": { "version": "2.1.0", - "resolved": "http://localhost:4873/@npmcli%2fgit/-/git-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-2.1.0.tgz", "integrity": "sha512-/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw==", "requires": { "@npmcli/promise-spawn": "^1.3.2", @@ -316,12 +316,12 @@ } }, "@schematics/angular": { - "version": "12.1.1", - "resolved": "http://localhost:4873/@schematics%2fangular/-/angular-12.1.1.tgz", - "integrity": "sha512-ukSKoAWfXt28TiHlRrEzKFW63V3jroRF3xnBKtsaL3AZ4MVJiHzOWXkzDAZBaEOLUH/l6Xhm64NMgOqMEAg1rQ==", + "version": "12.1.4", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-12.1.4.tgz", + "integrity": "sha512-xGqgGI6GWk4EFdKis8FmSESxoLgjnLQbaRE1t1KZCkSKJzqkOj0R9wiDrtZfcrbPxIkLL+3fAk2ThwwPznT6yw==", "requires": { - "@angular-devkit/core": "12.1.1", - "@angular-devkit/schematics": "12.1.1", + "@angular-devkit/core": "12.1.4", + "@angular-devkit/schematics": "12.1.4", "jsonc-parser": "3.0.0" } }, @@ -558,7 +558,7 @@ }, "ajv-formats": { "version": "2.1.0", - "resolved": "http://localhost:4873/ajv-formats/-/ajv-formats-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.0.tgz", "integrity": "sha512-USH2jBb+C/hIpwD2iRjp0pe0k+MvzG0mlSn/FIdCgQhUb9ALPRjt2KIQdfZDS9r0ZIeUAg7gOu9KL0PFqGqr5Q==", "requires": { "ajv": "^8.0.0" @@ -778,7 +778,7 @@ }, "cacache": { "version": "15.2.0", - "resolved": "http://localhost:4873/cacache/-/cacache-15.2.0.tgz", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.2.0.tgz", "integrity": "sha512-uKoJSHmnrqXgthDFx/IU6ED/5xd+NNGe+Bb+kLZy7Ku4P+BaiWEUflAKPZ7eAzsYGcsAGASJZsybXp+quEcHTw==", "requires": { "@npmcli/move-file": "^1.0.1", @@ -816,9 +816,9 @@ "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" }, "chalk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -1012,7 +1012,7 @@ }, "define-lazy-prop": { "version": "2.0.0", - "resolved": "http://localhost:4873/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==" }, "define-properties": { @@ -1089,7 +1089,7 @@ "dependencies": { "iconv-lite": { "version": "0.6.3", - "resolved": "http://localhost:4873/iconv-lite/-/iconv-lite-0.6.3.tgz", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "optional": true, "requires": { @@ -1404,7 +1404,7 @@ }, "is-fullwidth-code-point": { "version": "1.0.0", - "resolved": "http://localhost:4873/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "requires": { "number-is-nan": "^1.0.0" @@ -1412,7 +1412,7 @@ }, "string-width": { "version": "1.0.2", - "resolved": "http://localhost:4873/string-width/-/string-width-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { "code-point-at": "^1.0.0", @@ -1483,7 +1483,7 @@ "dependencies": { "ajv": { "version": "6.12.6", - "resolved": "http://localhost:4873/ajv/-/ajv-6.12.6.tgz", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "requires": { "fast-deep-equal": "^3.1.1", @@ -1494,7 +1494,7 @@ }, "json-schema-traverse": { "version": "0.4.1", - "resolved": "http://localhost:4873/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" } } @@ -1540,7 +1540,7 @@ }, "hosted-git-info": { "version": "4.0.2", - "resolved": "http://localhost:4873/hosted-git-info/-/hosted-git-info-4.0.2.tgz", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", "requires": { "lru-cache": "^6.0.0" @@ -1609,7 +1609,7 @@ }, "iconv-lite": { "version": "0.4.24", - "resolved": "http://localhost:4873/iconv-lite/-/iconv-lite-0.4.24.tgz", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "requires": { "safer-buffer": ">= 2.1.2 < 3" @@ -1670,7 +1670,7 @@ }, "inquirer": { "version": "8.1.1", - "resolved": "http://localhost:4873/inquirer/-/inquirer-8.1.1.tgz", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.1.1.tgz", "integrity": "sha512-hUDjc3vBkh/uk1gPfMAD/7Z188Q8cvTGl0nxwaCdwSbzFh6ZKkZh+s2ozVxbE5G9ZNRyeY0+lgbAIOUFsFf98w==", "requires": { "ansi-escapes": "^4.2.1", @@ -1743,9 +1743,9 @@ "dev": true }, "is-core-module": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.4.0.tgz", - "integrity": "sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.5.0.tgz", + "integrity": "sha512-TXCMSDsEHMEEZ6eCA8rwRDbLu55MRGmrctljsBX/2v1d9/GzqHOxW5c5oPSgrUt2vBFXebu9rGqckXGPWOlYpg==", "requires": { "has": "^1.0.3" } @@ -1766,7 +1766,7 @@ }, "is-fullwidth-code-point": { "version": "3.0.0", - "resolved": "http://localhost:4873/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" }, "is-generator-function": { @@ -1925,7 +1925,7 @@ }, "json-schema-traverse": { "version": "1.0.0", - "resolved": "http://localhost:4873/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" }, "json-stringify-safe": { @@ -2006,9 +2006,9 @@ "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" }, "make-fetch-happen": { - "version": "9.0.3", - "resolved": "http://localhost:4873/make-fetch-happen/-/make-fetch-happen-9.0.3.tgz", - "integrity": "sha512-uZ/9Cf2vKqsSWZyXhZ9wHHyckBrkntgbnqV68Bfe8zZenlf7D6yuGMXvHZQ+jSnzPkjosuNP1HGasj1J4h8OlQ==", + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.0.4.tgz", + "integrity": "sha512-sQWNKMYqSmbAGXqJg2jZ+PmHh5JAybvwu0xM8mZR/bsTjGiTASj3ldXJV7KFHy1k/IJIBkjxQFoWIVsv9+PQMg==", "requires": { "agentkeepalive": "^4.1.3", "cacache": "^15.2.0", @@ -2048,17 +2048,19 @@ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" }, - "mime-db": { - "version": "1.48.0", - "resolved": "http://localhost:4873/mime-db/-/mime-db-1.48.0.tgz", - "integrity": "sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==" - }, "mime-types": { - "version": "2.1.31", - "resolved": "http://localhost:4873/mime-types/-/mime-types-2.1.31.tgz", - "integrity": "sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==", + "version": "2.1.32", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz", + "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", "requires": { - "mime-db": "1.48.0" + "mime-db": "1.49.0" + }, + "dependencies": { + "mime-db": { + "version": "1.49.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz", + "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==" + } } }, "mimic-fn": { @@ -2091,9 +2093,9 @@ } }, "minipass-fetch": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.3.3.tgz", - "integrity": "sha512-akCrLDWfbdAWkMLBxJEeWTdNsjML+dt5YgOI4gJ53vuO0vrmYQkUPxa6j6V65s9CcePIr2SSWqjT2EcrNseryQ==", + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.3.4.tgz", + "integrity": "sha512-TielGogIzbUEtd1LsjZFs47RWuHHfhl6TiCx1InVxApBAmQ8bL0dL5ilkLGcRvuyW/A9nE+Lvn855Ewz8S0PnQ==", "requires": { "encoding": "^0.1.12", "minipass": "^3.1.0", @@ -2222,7 +2224,7 @@ }, "npm-package-arg": { "version": "8.1.5", - "resolved": "http://localhost:4873/npm-package-arg/-/npm-package-arg-8.1.5.tgz", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.5.tgz", "integrity": "sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==", "requires": { "hosted-git-info": "^4.0.1", @@ -2243,7 +2245,7 @@ }, "npm-pick-manifest": { "version": "6.1.1", - "resolved": "http://localhost:4873/npm-pick-manifest/-/npm-pick-manifest-6.1.1.tgz", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.1.1.tgz", "integrity": "sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA==", "requires": { "npm-install-checks": "^4.0.0", @@ -2254,7 +2256,7 @@ }, "npm-registry-fetch": { "version": "11.0.0", - "resolved": "http://localhost:4873/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz", "integrity": "sha512-jmlgSxoDNuhAtxUIG6pVwwtz840i994dL14FoNVZisrmZW5kWd63IUTNv1m/hyRSGSqWjCUp/YZlS1BJyNp9XA==", "requires": { "make-fetch-happen": "^9.0.1", @@ -2351,7 +2353,7 @@ }, "ora": { "version": "5.4.1", - "resolved": "http://localhost:4873/ora/-/ora-5.4.1.tgz", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", "requires": { "bl": "^4.1.0", @@ -2380,7 +2382,7 @@ }, "pacote": { "version": "11.3.4", - "resolved": "http://localhost:4873/pacote/-/pacote-11.3.4.tgz", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-11.3.4.tgz", "integrity": "sha512-RfahPCunM9GI7ryJV/zY0bWQiokZyLqaSNHXtbNSoLb7bwTvBbJBEyCJ01KWs4j1Gj7GmX8crYXQ1sNX6P2VKA==", "requires": { "@npmcli/git": "^2.0.1", @@ -2422,7 +2424,7 @@ }, "path-parse": { "version": "1.0.7", - "resolved": "http://localhost:4873/path-parse/-/path-parse-1.0.7.tgz", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "path-to-regexp": { @@ -2485,7 +2487,7 @@ }, "promise-retry": { "version": "2.0.1", - "resolved": "http://localhost:4873/promise-retry/-/promise-retry-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", "requires": { "err-code": "^2.0.2", @@ -2550,9 +2552,9 @@ } }, "read-package-json-fast": { - "version": "2.0.2", - "resolved": "http://localhost:4873/read-package-json-fast/-/read-package-json-fast-2.0.2.tgz", - "integrity": "sha512-5fyFUyO9B799foVk4n6ylcoAktG/FbE3jwRKxvwaeSrIunaoMc0u81dzXxjeAFKOce7O5KncdfwpGvvs6r5PsQ==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz", + "integrity": "sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==", "requires": { "json-parse-even-better-errors": "^2.3.0", "npm-normalize-package-bin": "^1.0.1" @@ -2645,7 +2647,7 @@ }, "resolve": { "version": "1.20.0", - "resolved": "http://localhost:4873/resolve/-/resolve-1.20.0.tgz", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", "requires": { "is-core-module": "^2.2.0", @@ -2681,7 +2683,7 @@ }, "rxjs": { "version": "6.6.7", - "resolved": "http://localhost:4873/rxjs/-/rxjs-6.6.7.tgz", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", "requires": { "tslib": "^1.9.0" @@ -2699,7 +2701,7 @@ }, "semver": { "version": "7.3.5", - "resolved": "http://localhost:4873/semver/-/semver-7.3.5.tgz", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "requires": { "lru-cache": "^6.0.0" @@ -2800,7 +2802,7 @@ }, "socks-proxy-agent": { "version": "5.0.1", - "resolved": "http://localhost:4873/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz", "integrity": "sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ==", "requires": { "agent-base": "^6.0.2", @@ -2868,7 +2870,7 @@ }, "string-width": { "version": "4.2.2", - "resolved": "http://localhost:4873/string-width/-/string-width-4.2.2.tgz", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", "requires": { "emoji-regex": "^8.0.0", @@ -2922,7 +2924,7 @@ }, "symbol-observable": { "version": "4.0.0", - "resolved": "http://localhost:4873/symbol-observable/-/symbol-observable-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==" }, "tar": { @@ -3024,7 +3026,7 @@ }, "typescript": { "version": "4.3.5", - "resolved": "http://localhost:4873/typescript/-/typescript-4.3.5.tgz", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.5.tgz", "integrity": "sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA==" }, "unbox-primitive": { @@ -3194,17 +3196,17 @@ "dependencies": { "ansi-regex": { "version": "3.0.0", - "resolved": "http://localhost:4873/ansi-regex/-/ansi-regex-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" }, "is-fullwidth-code-point": { "version": "2.0.0", - "resolved": "http://localhost:4873/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" }, "string-width": { "version": "2.1.1", - "resolved": "http://localhost:4873/string-width/-/string-width-2.1.1.tgz", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "requires": { "is-fullwidth-code-point": "^2.0.0", @@ -3213,7 +3215,7 @@ }, "strip-ansi": { "version": "4.0.0", - "resolved": "http://localhost:4873/strip-ansi/-/strip-ansi-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { "ansi-regex": "^3.0.0" diff --git a/packages/cli/package-lock.json b/packages/cli/package-lock.json index 248d88f688..f81e38bea7 100644 --- a/packages/cli/package-lock.json +++ b/packages/cli/package-lock.json @@ -14,7 +14,7 @@ }, "@angular-devkit/architect": { "version": "0.1201.1", - "resolved": "http://localhost:4873/@angular-devkit%2farchitect/-/architect-0.1201.1.tgz", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1201.1.tgz", "integrity": "sha512-n7ycxrIPbtnV7q8PH5Uvs8Jd++u6hWUiB+8EUxznSfdHGA+fE7TTnJTkc27LoMlYZAImc/Axp/uyYZ6Awt72ZQ==", "requires": { "@angular-devkit/core": "12.1.1", @@ -23,7 +23,7 @@ "dependencies": { "rxjs": { "version": "6.6.7", - "resolved": "http://localhost:4873/rxjs/-/rxjs-6.6.7.tgz", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", "requires": { "tslib": "^1.9.0" @@ -31,14 +31,14 @@ }, "tslib": { "version": "1.14.1", - "resolved": "http://localhost:4873/tslib/-/tslib-1.14.1.tgz", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" } } }, "@angular-devkit/core": { "version": "12.1.1", - "resolved": "http://localhost:4873/@angular-devkit%2fcore/-/core-12.1.1.tgz", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-12.1.1.tgz", "integrity": "sha512-z5+O3ugXbo8djKPjUtf/UfnYCmco2K1LVhQ6cWLhKi3NKRBiHeNmZh5nAycqFD8/Q+oI/+Ao40MkmkK1Tq0jsw==", "requires": { "ajv": "8.6.0", @@ -51,7 +51,7 @@ "dependencies": { "ajv": { "version": "8.6.0", - "resolved": "http://localhost:4873/ajv/-/ajv-8.6.0.tgz", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.0.tgz", "integrity": "sha512-cnUG4NSBiM4YFBxgZIj/In3/6KX+rQ2l2YPRVcvAMQGWEPKuXoPIhxzwqh31jA3IPbI4qEOp/5ILI4ynioXsGQ==", "requires": { "fast-deep-equal": "^3.1.1", @@ -62,12 +62,12 @@ }, "json-schema-traverse": { "version": "1.0.0", - "resolved": "http://localhost:4873/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" }, "rxjs": { "version": "6.6.7", - "resolved": "http://localhost:4873/rxjs/-/rxjs-6.6.7.tgz", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", "requires": { "tslib": "^1.9.0" @@ -75,7 +75,7 @@ }, "tslib": { "version": "1.14.1", - "resolved": "http://localhost:4873/tslib/-/tslib-1.14.1.tgz", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" } } @@ -92,7 +92,7 @@ "dependencies": { "rxjs": { "version": "6.6.7", - "resolved": "http://localhost:4873/rxjs/-/rxjs-6.6.7.tgz", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", "requires": { "tslib": "^1.9.0" @@ -100,11 +100,30 @@ }, "tslib": { "version": "1.14.1", - "resolved": "http://localhost:4873/tslib/-/tslib-1.14.1.tgz", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" } } }, + "@angular/cdk": { + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-12.2.0.tgz", + "integrity": "sha512-Dts+KIMz6EdzQxaWBFcNwgWAHVPkI5pnOGMidKKVOmjezSUN6mhfBKq8emgsddJMRAqz/1VHMAEaRkp0VoBKiA==", + "dev": true, + "requires": { + "parse5": "^5.0.0", + "tslib": "^2.2.0" + }, + "dependencies": { + "parse5": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", + "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", + "dev": true, + "optional": true + } + } + }, "@angular/cli": { "version": "12.1.1", "resolved": "http://localhost:4873/@angular%2fcli/-/cli-12.1.1.tgz", @@ -3593,11 +3612,32 @@ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true }, + "@coveo/angular": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@coveo/angular/-/angular-1.12.0.tgz", + "integrity": "sha512-q/ao605bWRHF7ImdAZP4F3yjZt7Lrj/EC7b905lQPqKYv2FRr3OQLYVYgSG4ZzJiMfjLmhHJoJYlcP70/cDsmQ==", + "dev": true, + "requires": { + "@angular-devkit/core": "^12.1.1", + "@angular-devkit/schematics": "^12.1.1", + "@angular/cdk": "^12.1.1", + "@angular/cli": "^12.1.1", + "@coveo/search-token-server": "^1.12.0", + "@schematics/angular": "^12.1.1", + "typescript": "^4.3.5" + } + }, "@coveo/bueno": { "version": "0.32.3", "resolved": "https://registry.npmjs.org/@coveo/bueno/-/bueno-0.32.3.tgz", "integrity": "sha512-MMHuH2zFU5OTIos7f1zNg2cPkTOVtM/Mzy1OmrgGuqT7eVnxyijdv5BtbPB573b4Xn4c588hvuXPKneNPaQAjg==" }, + "@coveo/cra-template": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@coveo/cra-template/-/cra-template-1.12.0.tgz", + "integrity": "sha512-ss77K4YIAyx0ZT2fjyaCXXHJ2pdRZpryJmJfD3CGWYUjKjOaBjXL0BpNzKCgLrWahKoXZJ/2Mc3dYPpsDeZ1cw==", + "dev": true + }, "@coveo/push-api-client": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@coveo/push-api-client/-/push-api-client-1.1.2.tgz", @@ -3632,10 +3672,33 @@ } } }, + "@coveo/search-token-server": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@coveo/search-token-server/-/search-token-server-1.12.0.tgz", + "integrity": "sha512-mysGEDieNz7reHMGiSLVe7Awp0mp0JZu2EMeD567vkoRe0dHaI4uty40NPDm39jsnhUiP+JueFapvGuPyTCw6Q==", + "dev": true, + "requires": { + "@coveord/platform-client": "^24.0.0", + "@types/express": "^4.17.11", + "abortcontroller-polyfill": "^1.7.1", + "cors": "^2.8.5", + "dotenv": "^10.0.0", + "express": "^4.17.1", + "isomorphic-fetch": "^3.0.0", + "ts-node": "^10.0.0", + "typescript": "^4.1.5" + } + }, + "@coveo/vue-cli-plugin-typescript": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@coveo/vue-cli-plugin-typescript/-/vue-cli-plugin-typescript-1.12.0.tgz", + "integrity": "sha512-bByOaY5ckUKC8/Tq/qNpMdFpIESLzxFOK0XraQ3Rd+DHgeIM48UBGDDqntIy7qKhqR/91eXOaxTK8Ntt4MYzgQ==", + "dev": true + }, "@coveord/platform-client": { - "version": "24.0.0", - "resolved": "https://registry.npmjs.org/@coveord/platform-client/-/platform-client-24.0.0.tgz", - "integrity": "sha512-AGlMs3rWYQa4n0y5kTjH/W/YCenlEobRjp9H7P1ZmmCp57wuUw8apWqdDIfvR70C517iqmtG6sK5xb2EnwYcJQ==", + "version": "24.1.0", + "resolved": "https://registry.npmjs.org/@coveord/platform-client/-/platform-client-24.1.0.tgz", + "integrity": "sha512-OJ29+jE0M6qL0ite916DLQAaA8zyTlj27auQzw9zqNNI/RgUhVQuRj9Y5yIWn5fD2qAK+bF8xd8LEbsqFNDfNg==", "requires": { "exponential-backoff": "^3.1.0", "form-data": "^3.0.0", @@ -3917,15 +3980,6 @@ "requires": { "@types/yargs-parser": "*" } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } } } }, @@ -5080,6 +5134,13 @@ "integrity": "sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==", "requires": { "@types/node": "*" + }, + "dependencies": { + "@types/node": { + "version": "16.4.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.4.10.tgz", + "integrity": "sha512-TmVHsm43br64js9BqHWqiDZA+xMtbUpI1MBIA0EyiBmoV9pcEYFOSdj5fr6enZNfh4fChh+AGOLIzGwJnkshyQ==" + } } }, "@types/archiver": { @@ -5091,6 +5152,15 @@ "@types/glob": "*" } }, + "@types/async-retry": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@types/async-retry/-/async-retry-1.4.3.tgz", + "integrity": "sha512-B3C9QmmNULVPL2uSJQ088eGWTNPIeUk35hca6CV8rRDJ8GXuQJP5CCVWA1ZUCrb9xYP7Js/RkLqnNNwKhe+Zsw==", + "dev": true, + "requires": { + "@types/retry": "*" + } + }, "@types/babel__core": { "version": "7.1.15", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.15.tgz", @@ -5144,12 +5214,19 @@ "requires": { "@types/connect": "*", "@types/node": "*" + }, + "dependencies": { + "@types/node": { + "version": "16.4.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.4.10.tgz", + "integrity": "sha512-TmVHsm43br64js9BqHWqiDZA+xMtbUpI1MBIA0EyiBmoV9pcEYFOSdj5fr6enZNfh4fChh+AGOLIzGwJnkshyQ==" + } } }, "@types/chai": { - "version": "4.2.17", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.2.17.tgz", - "integrity": "sha512-LaiwWNnYuL8xJlQcE91QB2JoswWZckq9A4b+nMPq8dt8AP96727Nb3X4e74u+E3tm4NLTILNI9MYFsyVc30wSA==", + "version": "4.2.21", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.2.21.tgz", + "integrity": "sha512-yd+9qKmJxm496BOV9CMNaey8TWsikaZOwMRwPHQIjcOJM9oV+fi9ZMNw3JsVnbEEbo2gRTDnGEBv8pjyn67hNg==", "dev": true }, "@types/cli-progress": { @@ -5162,27 +5239,41 @@ } }, "@types/connect": { - "version": "3.4.34", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.34.tgz", - "integrity": "sha512-ePPA/JuI+X0vb+gSWlPKOY0NdNAie/rPUqX2GUPpbZwiKTkSPhjXWuee47E4MtE54QVzGCQMQkAL6JhV2E1+cQ==", + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", "requires": { "@types/node": "*" + }, + "dependencies": { + "@types/node": { + "version": "16.4.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.4.10.tgz", + "integrity": "sha512-TmVHsm43br64js9BqHWqiDZA+xMtbUpI1MBIA0EyiBmoV9pcEYFOSdj5fr6enZNfh4fChh+AGOLIzGwJnkshyQ==" + } } }, "@types/content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/@types/content-disposition/-/content-disposition-0.5.3.tgz", - "integrity": "sha512-P1bffQfhD3O4LW0ioENXUhZ9OIa0Zn+P7M+pWgkCKaT53wVLSq0mrKksCID/FGHpFhRSxRGhgrQmfhRuzwtKdg==" + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/@types/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-0mPF08jn9zYI0n0Q/Pnz7C4kThdSt+6LD4amsrYDDpgBfrVWa3TcCOxKX1zkGgYniGagRv8heN2cbh+CAn+uuQ==" }, "@types/cookies": { - "version": "0.7.6", - "resolved": "https://registry.npmjs.org/@types/cookies/-/cookies-0.7.6.tgz", - "integrity": "sha512-FK4U5Qyn7/Sc5ih233OuHO0qAkOpEcD/eG6584yEiLKizTFRny86qHLe/rej3HFQrkBuUjF4whFliAdODbVN/w==", + "version": "0.7.7", + "resolved": "https://registry.npmjs.org/@types/cookies/-/cookies-0.7.7.tgz", + "integrity": "sha512-h7BcvPUogWbKCzBR2lY4oqaZbO3jXZksexYJVFvkrFeLgbZjQkU4x8pRq6eg2MHXQhY0McQdqmmsxRWlVAHooA==", "requires": { "@types/connect": "*", "@types/express": "*", "@types/keygrip": "*", "@types/node": "*" + }, + "dependencies": { + "@types/node": { + "version": "16.4.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.4.10.tgz", + "integrity": "sha512-TmVHsm43br64js9BqHWqiDZA+xMtbUpI1MBIA0EyiBmoV9pcEYFOSdj5fr6enZNfh4fChh+AGOLIzGwJnkshyQ==" + } } }, "@types/cors": { @@ -5204,9 +5295,9 @@ "integrity": "sha512-kM2g9Fdk/du24fKuuQhA/LBleFR4Z4JP2MVKpLxQQSzofF1uJ06D+c05zfLDAkkDO55aEeNwJih0gHrE/Ci20A==" }, "@types/express": { - "version": "4.17.12", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.12.tgz", - "integrity": "sha512-pTYas6FrP15B1Oa0bkN5tQMNqOcVXa9j4FTFtO8DWI9kppKib+6NJtfTOOLcwxuuYvcX2+dVG6et1SxW/Kc17Q==", + "version": "4.17.13", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", + "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", "requires": { "@types/body-parser": "*", "@types/express-serve-static-core": "^4.17.18", @@ -5215,13 +5306,20 @@ } }, "@types/express-serve-static-core": { - "version": "4.17.22", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.22.tgz", - "integrity": "sha512-WdqmrUsRS4ootGha6tVwk/IVHM1iorU8tGehftQD2NWiPniw/sm7xdJOIlXLwqdInL9wBw/p7oO8vaYEF3NDmA==", + "version": "4.17.24", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.24.tgz", + "integrity": "sha512-3UJuW+Qxhzwjq3xhwXm2onQcFHn76frIYVbTu+kn24LFxI+dEhdfISDFovPB8VpEgW8oQCTpRuCe+0zJxB7NEA==", "requires": { "@types/node": "*", "@types/qs": "*", "@types/range-parser": "*" + }, + "dependencies": { + "@types/node": { + "version": "16.4.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.4.10.tgz", + "integrity": "sha512-TmVHsm43br64js9BqHWqiDZA+xMtbUpI1MBIA0EyiBmoV9pcEYFOSdj5fr6enZNfh4fChh+AGOLIzGwJnkshyQ==" + } } }, "@types/fs-capacitor": { @@ -5230,6 +5328,13 @@ "integrity": "sha512-FKVPOCFbhCvZxpVAMhdBdTfVfXUpsh15wFHgqOKxh9N9vzWZVuWCSijZ5T4U34XYNnuj2oduh6xcs1i+LPI+BQ==", "requires": { "@types/node": "*" + }, + "dependencies": { + "@types/node": { + "version": "16.4.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.4.10.tgz", + "integrity": "sha512-TmVHsm43br64js9BqHWqiDZA+xMtbUpI1MBIA0EyiBmoV9pcEYFOSdj5fr6enZNfh4fChh+AGOLIzGwJnkshyQ==" + } } }, "@types/fs-extra": { @@ -5242,12 +5347,19 @@ } }, "@types/glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-w+LsMxKyYQm347Otw+IfBXOv9UWVjpHpCDdbBMt8Kz/xbvCYNjP+0qPh91Km3iKfSRLBB0P7fAMf0KHrPu+MyA==", "requires": { "@types/minimatch": "*", "@types/node": "*" + }, + "dependencies": { + "@types/node": { + "version": "16.4.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.4.10.tgz", + "integrity": "sha512-TmVHsm43br64js9BqHWqiDZA+xMtbUpI1MBIA0EyiBmoV9pcEYFOSdj5fr6enZNfh4fChh+AGOLIzGwJnkshyQ==" + } } }, "@types/graceful-fs": { @@ -5265,9 +5377,9 @@ "integrity": "sha512-PGAK759pxyfXE78NbKxyfRcWYA/KwW17X290cNev/qAsn9eQIxkH4shoNBafH37wewhDG/0p1cHPbK6+SzZjWQ==" }, "@types/http-errors": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-1.8.0.tgz", - "integrity": "sha512-2aoSC4UUbHDj2uCsCxcG/vRMXey/m17bC7UwitVm5hn22nI8O8Y9iDpA76Orc+DWkQ4zZrOKEshCqR/jSuXAHA==" + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-e+2rjEwK6KDaNOm5Aa9wNGgyS9oSZU/4pfSMMPYNOfjvFI0WVXm29+ITRFr6aKDvvKo7uU1jV68MW4ScsfDi7Q==" }, "@types/inquirer": { "version": "6.5.0", @@ -5294,9 +5406,9 @@ } }, "@types/istanbul-reports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", - "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", "dev": true, "requires": { "@types/istanbul-lib-report": "*" @@ -5313,9 +5425,9 @@ } }, "@types/jquery": { - "version": "3.5.5", - "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.5.tgz", - "integrity": "sha512-6RXU9Xzpc6vxNrS6FPPapN1SxSHgQ336WC6Jj/N8q30OiaBZ00l1GBgeP7usjVZPivSkGUfL1z/WW6TX989M+w==", + "version": "3.5.6", + "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.6.tgz", + "integrity": "sha512-SmgCQRzGPId4MZQKDj9Hqc6kSXFNWZFHpELkyK8AQhf8Zr6HKfCzFv9ZC1Fv3FyQttJZOlap3qYb12h61iZAIg==", "requires": { "@types/sizzle": "*" } @@ -5367,9 +5479,9 @@ "integrity": "sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw==" }, "@types/koa": { - "version": "2.13.3", - "resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.13.3.tgz", - "integrity": "sha512-TaujBV+Dhe/FvmSMZJtCFBms+bqQacgUebk/M2C2tq8iGmHE/DDf4DcW2Hc7NqusVZmy5xzrWOjtdPKNP+fTfw==", + "version": "2.13.4", + "resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.13.4.tgz", + "integrity": "sha512-dfHYMfU+z/vKtQB7NUrthdAEiSvnLebvBjwHtfFmpZmB7em2N3WVQdHgnFq+xvyVgxW5jKDmjWfLD3lw4g4uTw==", "requires": { "@types/accepts": "*", "@types/content-disposition": "*", @@ -5379,6 +5491,13 @@ "@types/keygrip": "*", "@types/koa-compose": "*", "@types/node": "*" + }, + "dependencies": { + "@types/node": { + "version": "16.4.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.4.10.tgz", + "integrity": "sha512-TmVHsm43br64js9BqHWqiDZA+xMtbUpI1MBIA0EyiBmoV9pcEYFOSdj5fr6enZNfh4fChh+AGOLIzGwJnkshyQ==" + } } }, "@types/koa-compose": { @@ -5390,9 +5509,9 @@ } }, "@types/lodash": { - "version": "4.14.168", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.168.tgz", - "integrity": "sha512-oVfRvqHV/V6D1yifJbVRU3TMp8OT6o6BG+U9MkwuJ3U8/CsDHvalRpsxBqivn71ztOFZBTfJMvETbqHiaNSj7Q==", + "version": "4.14.171", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.171.tgz", + "integrity": "sha512-7eQ2xYLLI/LsicL2nejW9Wyko3lcpN6O/z0ZLHrEQsg280zIdCv1t/0m6UtBjUHokCGBQ3gYTbHzDkZ1xOBwwg==", "dev": true }, "@types/long": { @@ -5406,19 +5525,20 @@ "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" }, "@types/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA==" + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==" }, "@types/node": { "version": "14.17.9", "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.9.tgz", - "integrity": "sha512-CMjgRNsks27IDwI785YMY0KLt3co/c0cQ5foxHYv/shC2w8oOnVwz5Ubq1QG5KzrcW+AXk6gzdnxIkDnTvzu3g==" + "integrity": "sha512-CMjgRNsks27IDwI785YMY0KLt3co/c0cQ5foxHYv/shC2w8oOnVwz5Ubq1QG5KzrcW+AXk6gzdnxIkDnTvzu3g==", + "dev": true }, "@types/normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==" + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", + "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==" }, "@types/prettier": { "version": "2.3.2", @@ -5427,14 +5547,20 @@ "dev": true }, "@types/qs": { - "version": "6.9.6", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.6.tgz", - "integrity": "sha512-0/HnwIfW4ki2D8L8c9GVcG5I72s9jP5GSLVF0VIXDW00kmIpA6O33G7a8n59Tmh7Nz0WUC3rSb7PTY/sdW2JzA==" + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" }, "@types/range-parser": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz", - "integrity": "sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==" + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" + }, + "@types/retry": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz", + "integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==", + "dev": true }, "@types/semver": { "version": "5.5.0", @@ -5442,21 +5568,39 @@ "integrity": "sha512-41qEJgBH/TWgo5NFSvBCJ1qkoi3Q6ONSF2avrHq1LVEZfYpdHmj0y9SuTK+u9ZhG1sYQKBL1AWXKyLWP4RaUoQ==" }, "@types/serve-static": { - "version": "1.13.9", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.9.tgz", - "integrity": "sha512-ZFqF6qa48XsPdjXV5Gsz0Zqmux2PerNd3a/ktL45mHpa19cuMi/cL8tcxdAx497yRh+QtYPuofjT9oWw9P7nkA==", + "version": "1.13.10", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", + "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", "requires": { "@types/mime": "^1", "@types/node": "*" + }, + "dependencies": { + "@types/node": { + "version": "16.4.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.4.10.tgz", + "integrity": "sha512-TmVHsm43br64js9BqHWqiDZA+xMtbUpI1MBIA0EyiBmoV9pcEYFOSdj5fr6enZNfh4fChh+AGOLIzGwJnkshyQ==" + } } }, "@types/sinon": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-10.0.0.tgz", - "integrity": "sha512-jDZ55oCKxqlDmoTBBbBBEx+N8ZraUVhggMZ9T5t+6/Dh8/4NiOjSUfpLrPiEwxQDlAe3wpAkoXhWvE6LibtsMQ==", + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-10.0.2.tgz", + "integrity": "sha512-BHn8Bpkapj8Wdfxvh2jWIUoaYB/9/XhsL0oOvBfRagJtKlSl9NWPcFOz2lRukI9szwGxFtYZCTejJSqsGDbdmw==", "dev": true, "requires": { - "@sinonjs/fake-timers": "^7.0.4" + "@sinonjs/fake-timers": "^7.1.0" + }, + "dependencies": { + "@sinonjs/fake-timers": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", + "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==", + "dev": true, + "requires": { + "@sinonjs/commons": "^1.7.0" + } + } } }, "@types/sizzle": { @@ -5476,29 +5620,43 @@ "integrity": "sha512-FvnCJljyxhPM3gkRgWmxmDZyAQSiBQQWLI0A0VFL0K7W1oRUrPJSqNO0NvTnLkBcotdlp3lKvaT0JrnyRDkzOg==", "requires": { "@types/node": "*" + }, + "dependencies": { + "@types/node": { + "version": "16.4.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.4.10.tgz", + "integrity": "sha512-TmVHsm43br64js9BqHWqiDZA+xMtbUpI1MBIA0EyiBmoV9pcEYFOSdj5fr6enZNfh4fChh+AGOLIzGwJnkshyQ==" + } } }, "@types/ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-ijZ1vzRawI7QoWnTNL8KpHixd2b2XVb9I9HAqI3triPsh1EC0xH0Eg6w2O3TKbDCgiNNlJqfrof6j4T2I+l9vw==", + "version": "7.4.7", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz", + "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==", "requires": { "@types/node": "*" + }, + "dependencies": { + "@types/node": { + "version": "16.4.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.4.10.tgz", + "integrity": "sha512-TmVHsm43br64js9BqHWqiDZA+xMtbUpI1MBIA0EyiBmoV9pcEYFOSdj5fr6enZNfh4fChh+AGOLIzGwJnkshyQ==" + } } }, "@types/yargs": { - "version": "15.0.13", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.13.tgz", - "integrity": "sha512-kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ==", + "version": "15.0.14", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.14.tgz", + "integrity": "sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==", "dev": true, "requires": { "@types/yargs-parser": "*" } }, "@types/yargs-parser": { - "version": "20.2.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.0.tgz", - "integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==", + "version": "20.2.1", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz", + "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==", "dev": true }, "@types/yauzl": { @@ -5508,6 +5666,14 @@ "optional": true, "requires": { "@types/node": "*" + }, + "dependencies": { + "@types/node": { + "version": "16.4.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.4.10.tgz", + "integrity": "sha512-TmVHsm43br64js9BqHWqiDZA+xMtbUpI1MBIA0EyiBmoV9pcEYFOSdj5fr6enZNfh4fChh+AGOLIzGwJnkshyQ==", + "optional": true + } } }, "@vue/cli": { @@ -7637,33 +7803,6 @@ "requires": { "colors": "^1.1.2", "string-width": "^4.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==" - }, - "string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } - } - } - } } }, "cli-spinners": { @@ -8013,9 +8152,9 @@ "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" }, "core-js-compat": { - "version": "3.15.2", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.15.2.tgz", - "integrity": "sha512-Wp+BJVvwopjI+A1EFqm2dwUmWYXrvucmtIB2LgXn/Rb+gWPKYxtmb4GKHGKG/KGF1eK9jfjzT38DITbTOCX/SQ==", + "version": "3.16.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.16.0.tgz", + "integrity": "sha512-5D9sPHCdewoUK7pSUPfTF7ZhLh8k9/CoJXWUEo+F1dZT5Z1DVgcuRqUKhjeKW+YLb8f21rTFgWwQJiNw1hoZ5Q==", "requires": { "browserslist": "^4.16.6", "semver": "7.0.0" @@ -8616,6 +8755,12 @@ } } }, + "dotenv": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", + "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", + "dev": true + }, "download": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/download/-/download-7.1.0.tgz", @@ -10416,7 +10561,7 @@ }, "hosted-git-info": { "version": "4.0.2", - "resolved": "http://localhost:4873/hosted-git-info/-/hosted-git-info-4.0.2.tgz", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", "requires": { "lru-cache": "^6.0.0" @@ -13612,9 +13757,9 @@ } }, "node-releases": { - "version": "1.1.71", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.71.tgz", - "integrity": "sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg==" + "version": "1.1.73", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.73.tgz", + "integrity": "sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==" }, "nopt": { "version": "5.0.0", @@ -13751,7 +13896,7 @@ }, "npm-registry-fetch": { "version": "11.0.0", - "resolved": "http://localhost:4873/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz", "integrity": "sha512-jmlgSxoDNuhAtxUIG6pVwwtz840i994dL14FoNVZisrmZW5kWd63IUTNv1m/hyRSGSqWjCUp/YZlS1BJyNp9XA==", "requires": { "make-fetch-happen": "^9.0.1", @@ -16000,7 +16145,7 @@ }, "symbol-observable": { "version": "4.0.0", - "resolved": "http://localhost:4873/symbol-observable/-/symbol-observable-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==" }, "symbol-tree": { diff --git a/packages/cli/package.json b/packages/cli/package.json index 96f5b91abf..9c2ff94cfa 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -10,7 +10,7 @@ "@angular/cli": "^12.1.1", "@coveo/bueno": "^0.32.0", "@coveo/push-api-client": "^1.1.2", - "@coveord/platform-client": "^24.0.0", + "@coveord/platform-client": "^24.1.0", "@oclif/command": "^1", "@oclif/config": "^1", "@oclif/plugin-help": "^3", @@ -26,7 +26,6 @@ "coveo.analytics": "^2.18.4", "create-react-app": "^4.0.3", "decompress": "^4.2.1", - "exponential-backoff": "^3.1.0", "extract-zip": "^2.0.1", "fs-extra": "^10.0.0", "isomorphic-fetch": "^3.0.0", @@ -45,6 +44,7 @@ "@oclif/errors": "1.3.5", "@oclif/test": "1.2.8", "@types/archiver": "5.1.1", + "@types/async-retry": "^1.4.3", "@types/cli-progress": "3.9.2", "@types/fs-extra": "9.0.12", "@types/jest": "26.0.24", diff --git a/packages/cli/src/commands/org/config/monitor.ts b/packages/cli/src/commands/org/config/monitor.ts index 28af6a1d23..a133cc63c8 100644 --- a/packages/cli/src/commands/org/config/monitor.ts +++ b/packages/cli/src/commands/org/config/monitor.ts @@ -11,8 +11,9 @@ import { Preconditions, } from '../../../lib/decorators/preconditions'; import {ReportViewerStyles} from '../../../lib/snapshot/reportPreviewer/reportPreviewerStyles'; -import {Snapshot, waitUntilDoneOptions} from '../../../lib/snapshot/snapshot'; +import {Snapshot, WaitUntilDoneOptions} from '../../../lib/snapshot/snapshot'; import { + waitFlag, getTargetOrg, handleSnapshotError, } from '../../../lib/snapshot/snapshotCommon'; @@ -22,6 +23,7 @@ export default class Monitor extends Command { public static description = 'Monitor a Snapshot operation'; public static flags = { + ...waitFlag, target: flags.string({ char: 't', description: @@ -43,9 +45,9 @@ export default class Monitor extends Command { @Preconditions(IsAuthenticated()) public async run() { - const snapshot = await this.getSnapshot(); + this.printHeader(); - this.printHeader(snapshot.id); + const snapshot = await this.getSnapshot(); await this.monitorSnapshot(snapshot); this.config.runHook('analytics', buildAnalyticsSuccessHook(this, flags)); @@ -66,19 +68,19 @@ export default class Monitor extends Command { this.getReportStatus(snapshot.latestReport) ); - // TODO: revisit with a progress bar once the response contains the remaining resources to process - const iteratee = (report: ResourceSnapshotsReportModel) => - this.refresh(report); - await snapshot.waitUntilDone(this.waitOptions, iteratee); + await snapshot.waitUntilDone(this.waitOption); cli.action.stop(this.getReportStatus(snapshot.latestReport)); } - private printHeader(snapshotId: string) { + private printHeader() { + const {args} = this.parse(Monitor); + const snapshotId = args.snapshotId; const header = ReportViewerStyles.header( - `\nMonitoring snapshot ${snapshotId}:` + `Monitoring snapshot ${snapshotId}` ); - cli.log(header); + cli.log(''); + cli.action.start(header); } private prettyPrint(str: string): string { @@ -109,13 +111,12 @@ export default class Monitor extends Command { return SnapshotFactory.createFromExistingSnapshot(snapshotId, target); } - private get waitOptions(): waitUntilDoneOptions { + private get waitOption(): WaitUntilDoneOptions { + const {flags} = this.parse(Monitor); return { - waitOptions: { - numOfAttempts: Infinity, - delayFirstAttempt: false, - maxDelay: 10e3, - }, + wait: flags.wait, + // TODO: revisit with a progress bar once the response contains the remaining resources to process + onRetryCb: (report: ResourceSnapshotsReportModel) => this.refresh(report), }; } diff --git a/packages/cli/src/commands/org/config/preview.spec.ts b/packages/cli/src/commands/org/config/preview.spec.ts index be03b34b73..ee63fe7cb4 100644 --- a/packages/cli/src/commands/org/config/preview.spec.ts +++ b/packages/cli/src/commands/org/config/preview.spec.ts @@ -125,7 +125,8 @@ describe('org:config:preview', () => { .it('should work with default connected org', () => { expect(mockedSnapshotFactory.createFromZip).toHaveBeenCalledWith( normalize(join('path', 'to', 'resources.zip')), - 'foo' + 'foo', + expect.objectContaining({}) ); }); @@ -134,20 +135,41 @@ describe('org:config:preview', () => { .it('should work with specified target org', () => { expect(mockedSnapshotFactory.createFromZip).toHaveBeenCalledWith( normalize(join('path', 'to', 'resources.zip')), - 'myorg' + 'myorg', + expect.objectContaining({}) + ); + }); + + test + .command(['org:config:preview']) + .it('should set a 60 seconds wait', () => { + expect(mockedSnapshotFactory.createFromZip).toHaveBeenCalledWith( + normalize(join('path', 'to', 'resources.zip')), + 'foo', + {wait: 60} + ); + }); + + test + .command(['org:config:preview', '-m', '312']) + .it('should set a 312 seconds wait', () => { + expect(mockedSnapshotFactory.createFromZip).toHaveBeenCalledWith( + normalize(join('path', 'to', 'resources.zip')), + 'foo', + {wait: 312} ); }); test .command(['org:config:preview']) .it('#validate should not take into account missing resources', () => { - expect(mockedValidateSnapshot).toHaveBeenCalledWith(false); + expect(mockedValidateSnapshot).toHaveBeenCalledWith(false, {wait: 60}); }); test .command(['org:config:preview', '-d']) .it('#validate should take into account missing resoucres', () => { - expect(mockedValidateSnapshot).toHaveBeenCalledWith(true); + expect(mockedValidateSnapshot).toHaveBeenCalledWith(true, {wait: 60}); }); test diff --git a/packages/cli/src/commands/org/config/preview.ts b/packages/cli/src/commands/org/config/preview.ts index 649c8e77e6..7bea1ebcff 100644 --- a/packages/cli/src/commands/org/config/preview.ts +++ b/packages/cli/src/commands/org/config/preview.ts @@ -19,15 +19,17 @@ import { displayInvalidSnapshotError, displaySnapshotSynchronizationWarning, dryRun, - DryRunOptions, getTargetOrg, handleSnapshotError, + waitFlag, + DryRunOptions, } from '../../../lib/snapshot/snapshotCommon'; export default class Preview extends Command { public static description = 'Preview resource updates'; public static flags = { + ...waitFlag, target: flags.string({ char: 't', description: @@ -55,17 +57,13 @@ export default class Preview extends Command { public async run() { const {flags} = this.parse(Preview); const target = await getTargetOrg(this.configuration, flags.target); - const options: DryRunOptions = { - deleteMissingResources: flags.showMissingResources, - snapshotId: flags.snapshotId, - }; const {reporter, snapshot, project} = await dryRun( target, this.projectPath, - options + this.options ); - await snapshot.preview(project, options.deleteMissingResources); + await snapshot.preview(project, this.options.deleteMissingResources); if (reporter.isSuccessReport()) { await snapshot.delete(); @@ -116,6 +114,14 @@ export default class Preview extends Command { displayInvalidSnapshotError(snapshot, cfg, this.projectPath); } + private get options(): DryRunOptions { + const {flags} = this.parse(Preview); + return { + deleteMissingResources: flags.showMissingResources, + waitUntilDone: {wait: flags.wait}, + }; + } + private get configuration() { return new Config(this.config.configDir, this.error); } diff --git a/packages/cli/src/commands/org/config/pull.spec.ts b/packages/cli/src/commands/org/config/pull.spec.ts index 64e3228c80..b6ebcef5ab 100644 --- a/packages/cli/src/commands/org/config/pull.spec.ts +++ b/packages/cli/src/commands/org/config/pull.spec.ts @@ -81,7 +81,8 @@ describe('org:config:pull', () => { 'SEARCH_PAGE', 'EXTENSION', ]), - 'default-org' + 'default-org', + expect.objectContaining({}) ); }); @@ -90,7 +91,28 @@ describe('org:config:pull', () => { .it('should select specified resource types', () => { expect(mockedSnapshotFactory.createFromOrg).toHaveBeenCalledWith( ['FIELD', 'FEATURED_RESULT', 'SOURCE'], - 'default-org' + 'default-org', + expect.objectContaining({}) + ); + }); + + test + .command(['org:config:pull']) + .it('should set a 60 seconds timeout', () => { + expect(mockedSnapshotFactory.createFromOrg).toHaveBeenCalledWith( + expect.arrayContaining([]), + 'default-org', + {wait: 60} + ); + }); + + test + .command(['org:config:pull', '-m', '78']) + .it('should set a 78 seconds timeout', () => { + expect(mockedSnapshotFactory.createFromOrg).toHaveBeenCalledWith( + expect.arrayContaining([]), + 'default-org', + {wait: 78} ); }); diff --git a/packages/cli/src/commands/org/config/pull.ts b/packages/cli/src/commands/org/config/pull.ts index 06b937d9e0..0b3f81af7c 100644 --- a/packages/cli/src/commands/org/config/pull.ts +++ b/packages/cli/src/commands/org/config/pull.ts @@ -14,8 +14,9 @@ import { import {IsGitInstalled} from '../../../lib/decorators/preconditions/git'; import {SnapshotOperationTimeoutError} from '../../../lib/errors'; import {Project} from '../../../lib/project/project'; -import {Snapshot} from '../../../lib/snapshot/snapshot'; +import {Snapshot, WaitUntilDoneOptions} from '../../../lib/snapshot/snapshot'; import { + waitFlag, getTargetOrg, handleSnapshotError, } from '../../../lib/snapshot/snapshotCommon'; @@ -26,6 +27,7 @@ export default class Pull extends Command { public static description = 'Pull resources from an organization'; public static flags = { + ...waitFlag, target: flags.string({ char: 't', helpValue: 'destinationorganizationg7dg3gd', @@ -115,16 +117,23 @@ export default class Pull extends Command { cli.action.start('Retrieving Snapshot'); return SnapshotFactory.createFromExistingSnapshot( flags.snapshotId, - target + target, + this.waitOption ); } cli.action.start('Creating Snapshot'); return SnapshotFactory.createFromOrg( this.resourceSnapshotTypesToExport, - target + target, + this.waitOption ); } + private get waitOption(): WaitUntilDoneOptions { + const {flags} = this.parse(Pull); + return {wait: flags.wait}; + } + private get configuration() { return new Config(this.config.configDir, this.error); } diff --git a/packages/cli/src/commands/org/config/push.spec.ts b/packages/cli/src/commands/org/config/push.spec.ts index 2fcb93c733..9891f1353f 100644 --- a/packages/cli/src/commands/org/config/push.spec.ts +++ b/packages/cli/src/commands/org/config/push.spec.ts @@ -158,7 +158,8 @@ describe('org:config:push', () => { .it('should work with default connected org', () => { expect(mockedSnapshotFactory.createFromZip).toHaveBeenCalledWith( normalize(join('path', 'to', 'resources.zip')), - 'foo' + 'foo', + expect.objectContaining({}) ); }); @@ -168,7 +169,30 @@ describe('org:config:push', () => { .it('should work with specified target org', () => { expect(mockedSnapshotFactory.createFromZip).toHaveBeenCalledWith( normalize(join('path', 'to', 'resources.zip')), - 'myorg' + 'myorg', + expect.objectContaining({}) + ); + }); + + test + .stub(cli, 'confirm', () => async () => true) + .command(['org:config:push']) + .it('should set a 60 seconds wait', () => { + expect(mockedSnapshotFactory.createFromZip).toHaveBeenCalledWith( + normalize(join('path', 'to', 'resources.zip')), + 'foo', + {wait: 60} + ); + }); + + test + .stub(cli, 'confirm', () => async () => true) + .command(['org:config:push', '-m', '99']) + .it('should set a 99 seconds wait', () => { + expect(mockedSnapshotFactory.createFromZip).toHaveBeenCalledWith( + normalize(join('path', 'to', 'resources.zip')), + 'foo', + {wait: 99} ); }); @@ -176,14 +200,14 @@ describe('org:config:push', () => { .stub(cli, 'confirm', () => async () => true) .command(['org:config:push']) .it('#should not apply missing resources', () => { - expect(mockedApplySnapshot).toHaveBeenCalledWith(false); + expect(mockedApplySnapshot).toHaveBeenCalledWith(false, {wait: 60}); }); test .stub(cli, 'confirm', () => async () => true) .command(['org:config:push', '-d']) .it('should apply missing resoucres', () => { - expect(mockedApplySnapshot).toHaveBeenCalledWith(true); + expect(mockedApplySnapshot).toHaveBeenCalledWith(true, {wait: 60}); }); test diff --git a/packages/cli/src/commands/org/config/push.ts b/packages/cli/src/commands/org/config/push.ts index 51812c9345..345bcba269 100644 --- a/packages/cli/src/commands/org/config/push.ts +++ b/packages/cli/src/commands/org/config/push.ts @@ -8,6 +8,7 @@ import {Snapshot} from '../../../lib/snapshot/snapshot'; import {red, green, bold} from 'chalk'; import {SnapshotReporter} from '../../../lib/snapshot/snapshotReporter'; import { + waitFlag, displayInvalidSnapshotError, displaySnapshotSynchronizationWarning, dryRun, @@ -27,6 +28,7 @@ export default class Push extends Command { 'Preview, validate and deploy your changes to the destination org'; public static flags = { + ...waitFlag, target: flags.string({ char: 't', description: @@ -55,17 +57,14 @@ export default class Push extends Command { public async run() { const {flags} = this.parse(Push); const target = await getTargetOrg(this.configuration, flags.target); - const options: DryRunOptions = { - deleteMissingResources: flags.deleteMissingResources, - }; const {reporter, snapshot, project} = await dryRun( target, this.projectPath, - options + this.options ); if (!flags.skipPreview) { - await snapshot.preview(project, options.deleteMissingResources); + await snapshot.preview(project, this.options.deleteMissingResources); } if (reporter.isSuccessReport()) { @@ -119,7 +118,10 @@ export default class Push extends Command { private async applySnapshot(snapshot: Snapshot) { cli.action.start('Applying snapshot'); const {flags} = this.parse(Push); - const reporter = await snapshot.apply(flags.deleteMissingResources); + const reporter = await snapshot.apply( + flags.deleteMissingResources, + this.options.waitUntilDone + ); const success = reporter.isSuccessReport(); if (!success) { @@ -140,6 +142,14 @@ export default class Push extends Command { displayInvalidSnapshotError(snapshot, cfg, this.projectPath); } + private get options(): DryRunOptions { + const {flags} = this.parse(Push); + return { + deleteMissingResources: flags.deleteMissingResources, + waitUntilDone: {wait: flags.wait}, + }; + } + private get configuration() { return new Config(this.config.configDir, this.error); } diff --git a/packages/cli/src/lib/snapshot/snapshot.ts b/packages/cli/src/lib/snapshot/snapshot.ts index 729ce478fc..280f174be4 100644 --- a/packages/cli/src/lib/snapshot/snapshot.ts +++ b/packages/cli/src/lib/snapshot/snapshot.ts @@ -7,24 +7,44 @@ import { ResourceSnapshotsReportType, SnapshotExportContentFormat, } from '@coveord/platform-client'; -import {backOff, IBackOffOptions} from 'exponential-backoff'; +import retry from 'async-retry'; import {ReportViewer} from './reportPreviewer/reportPreviewer'; import {ensureFileSync, writeJsonSync} from 'fs-extra'; import {join} from 'path'; -import dedent from 'ts-dedent'; import {SnapshotReporter} from './snapshotReporter'; import {SnapshotOperationTimeoutError} from '../errors'; import {ExpandedPreviewer} from './expandedPreviewer/expandedPreviewer'; import {Project} from '../project/project'; -export interface waitUntilDoneOptions { + +export interface WaitUntilDoneOptions { + /** + * The maximum number of seconds to wait before the commands exits with a timeout error. + * A value of zero will prevent the command from timing out. + */ + wait?: number; // in seconds + /** + * The interval between 2 consecutive polls. + */ + waitInterval?: number; // in seconds /** * The operation to wait for. If not specified, the method will wait for any operation to complete. */ operationToWaitFor?: ResourceSnapshotsReportType; - waitOptions?: Partial; + /** + * Callback to execute every time a request is being made to retrieve the snapshot data + */ + onRetryCb?: (report: ResourceSnapshotsReportModel) => void; } export class Snapshot { + public static defaultWaitOptions: Required< + Omit + > = { + waitInterval: 1, + wait: 60, + onRetryCb: (_report: ResourceSnapshotsReportModel) => {}, + }; + private static ongoingReportStatuses = [ ResourceSnapshotsReportStatus.Pending, ResourceSnapshotsReportStatus.InProgress, @@ -36,7 +56,8 @@ export class Snapshot { ) {} public async validate( - deleteMissingResources = false + deleteMissingResources = false, + options: WaitUntilDoneOptions = {} ): Promise { await this.snapshotClient.dryRun(this.id, { deleteMissingResources, @@ -44,6 +65,7 @@ export class Snapshot { await this.waitUntilDone({ operationToWaitFor: ResourceSnapshotsReportType.DryRun, + ...options, }); return new SnapshotReporter(this.latestReport); @@ -57,11 +79,15 @@ export class Snapshot { await this.displayExpandedPreview(projectToPreview, deleteMissingResources); } - public async apply(deleteMissingResources = false) { + public async apply( + deleteMissingResources = false, + options: WaitUntilDoneOptions = {} + ) { await this.snapshotClient.apply(this.id, {deleteMissingResources}); await this.waitUntilDone({ operationToWaitFor: ResourceSnapshotsReportType.Apply, + ...options, }); return new SnapshotReporter(this.latestReport); @@ -144,38 +170,41 @@ export class Snapshot { }); } - public async waitUntilDone( - options: waitUntilDoneOptions = {}, - iteratee = (_report: ResourceSnapshotsReportModel) => {} - ) { - const defaultOptions: Partial = { - delayFirstAttempt: true, - startingDelay: 1e3 / 2, - maxDelay: 2e3, - }; - return backOff( - async () => { - await this.refreshSnapshotData(); - - const type = options.operationToWaitFor; - if (type && this.latestReport.type !== type) { - throw new Error(dedent` - Not processing expected operation - Expected ${type} - Received ${this.latestReport.type}`); - } - - const isNotDone = Snapshot.ongoingReportStatuses.includes( - this.latestReport.status - ); - - if (isNotDone) { - throw new SnapshotOperationTimeoutError(this); - } - - iteratee(this.latestReport); - }, - {...defaultOptions, ...options.waitOptions} + public waitUntilDone(options: WaitUntilDoneOptions = {}) { + const opts = {...Snapshot.defaultWaitOptions, ...options}; + const toMilliseconds = (seconds: number) => seconds * 1e3; + + return retry( + this.waitUntilDoneRetryFunction(opts.onRetryCb, opts.operationToWaitFor), + // Setting the retry mechanism to follow a time-based logic instead of specifying the number of attempts. + { + retries: Math.ceil(opts.wait / opts.waitInterval), + minTimeout: toMilliseconds(opts.waitInterval), + maxTimeout: toMilliseconds(opts.waitInterval), + maxRetryTime: toMilliseconds(opts.wait), + } ); } + + private waitUntilDoneRetryFunction( + onRetryCb: (report: ResourceSnapshotsReportModel) => void, + operationToWaitFor?: ResourceSnapshotsReportType + ): () => Promise { + return (async () => { + await this.refreshSnapshotData(); + + const isExpectedOperation = + !operationToWaitFor || this.latestReport.type === operationToWaitFor; + + const isOngoing = Snapshot.ongoingReportStatuses.includes( + this.latestReport.status + ); + + onRetryCb(this.latestReport); + + if (isOngoing || !isExpectedOperation) { + throw new SnapshotOperationTimeoutError(this); + } + }).bind(this); + } } diff --git a/packages/cli/src/lib/snapshot/snapshotCommon.ts b/packages/cli/src/lib/snapshot/snapshotCommon.ts index 7e3c626f66..e382deb2a2 100644 --- a/packages/cli/src/lib/snapshot/snapshotCommon.ts +++ b/packages/cli/src/lib/snapshot/snapshotCommon.ts @@ -1,19 +1,32 @@ import {cli} from 'cli-ux'; import {Project} from '../project/project'; import {SnapshotFactory} from './snapshotFactory'; -import {Snapshot} from './snapshot'; +import {Snapshot, WaitUntilDoneOptions} from './snapshot'; import {red, green, blueBright} from 'chalk'; import {normalize} from 'path'; import {SnapshotUrlBuilder} from './snapshotUrlBuilder'; import dedent from 'ts-dedent'; import {Config, Configuration} from '../config/config'; import {SnapshotOperationTimeoutError} from '../errors'; +import {flags} from '@oclif/command'; export interface DryRunOptions { deleteMissingResources?: boolean; snapshotId?: string; + waitUntilDone?: WaitUntilDoneOptions; } +export const waitFlag = { + wait: flags.integer({ + char: 'm', + default: Snapshot.defaultWaitOptions.wait, + helpValue: 'seconds', + required: false, + description: + 'The maximum number of seconds to wait before the commands exits with a timeout error. A value of zero means that the command will wait indefinitely.', + }), +}; + export async function dryRun( targetOrg: string, projectPath: string, @@ -26,14 +39,13 @@ export async function dryRun( const opt = {...defaultOptions, ...options}; const project = new Project(normalize(projectPath)); - const snapshot = await getSnapshotForDryRun( - project, - targetOrg, - opt.snapshotId - ); + const snapshot = await getSnapshotForDryRun(project, targetOrg, opt); cli.action.start('Validating snapshot'); - const reporter = await snapshot.validate(opt.deleteMissingResources); + const reporter = await snapshot.validate( + opt.deleteMissingResources, + opt.waitUntilDone + ); cli.action.stop(reporter.isSuccessReport() ? green('✔') : red.bold('!')); return {reporter, snapshot, project}; @@ -101,21 +113,26 @@ function operationGettingTooMuchTimeMessage(snapshot: Snapshot): string { async function createSnapshotFromProject( project: Project, - targetOrg: string + targetOrg: string, + options?: WaitUntilDoneOptions ): Promise { const pathToZip = await project.compressResources(); - return SnapshotFactory.createFromZip(pathToZip, targetOrg); + return SnapshotFactory.createFromZip(pathToZip, targetOrg, options); } async function getSnapshotForDryRun( project: Project, targetOrg: string, - snapshotId?: string + options: DryRunOptions = {} ) { - if (snapshotId) { + if (options.snapshotId) { cli.action.start('Retrieving Snapshot'); - return SnapshotFactory.createFromExistingSnapshot(snapshotId, targetOrg); + return SnapshotFactory.createFromExistingSnapshot( + options.snapshotId, + targetOrg, + options.waitUntilDone + ); } cli.action.start('Creating Snapshot'); - return createSnapshotFromProject(project, targetOrg); + return createSnapshotFromProject(project, targetOrg, options.waitUntilDone); } diff --git a/packages/cli/src/lib/snapshot/snapshotFactory.ts b/packages/cli/src/lib/snapshot/snapshotFactory.ts index 4d5df9c2fa..f2398f4e54 100644 --- a/packages/cli/src/lib/snapshot/snapshotFactory.ts +++ b/packages/cli/src/lib/snapshot/snapshotFactory.ts @@ -6,12 +6,13 @@ import { } from '@coveord/platform-client'; import {readFileSync} from 'fs'; import {AuthenticatedClient} from '../platform/authenticatedClient'; -import {Snapshot} from './snapshot'; +import {Snapshot, WaitUntilDoneOptions} from './snapshot'; export class SnapshotFactory { public static async createFromZip( pathToZip: string, - targetOrg: string + targetOrg: string, + options?: WaitUntilDoneOptions ): Promise { const client = await this.getClient(targetOrg); const file = readFileSync(pathToZip); @@ -29,6 +30,7 @@ export class SnapshotFactory { await snapshot.waitUntilDone({ operationToWaitFor: ResourceSnapshotsReportType.CreateSnapshot, + ...options, }); return snapshot; @@ -36,7 +38,8 @@ export class SnapshotFactory { public static async createFromExistingSnapshot( snapshotId: string, - targetOrg: string + targetOrg: string, + options?: WaitUntilDoneOptions ) { const client = await this.getClient(targetOrg); const model = await client.resourceSnapshot.get(snapshotId, { @@ -44,14 +47,15 @@ export class SnapshotFactory { }); const snapshot = new Snapshot(model, client); - await snapshot.waitUntilDone(); + await snapshot.waitUntilDone(options); return snapshot; } public static async createFromOrg( resourceTypesToExport: ResourceSnapshotType[], - targetOrg: string + targetOrg: string, + options?: WaitUntilDoneOptions ) { const client = await this.getClient(targetOrg); const resourcesToExport: Partial> = @@ -69,6 +73,7 @@ export class SnapshotFactory { await snapshot.waitUntilDone({ operationToWaitFor: ResourceSnapshotsReportType.CreateSnapshot, + ...options, }); return snapshot; diff --git a/packages/cra-template/package-lock.json b/packages/cra-template/package-lock.json index ddc902fe59..e769f78843 100644 --- a/packages/cra-template/package-lock.json +++ b/packages/cra-template/package-lock.json @@ -11,75 +11,6 @@ "dev": true, "requires": { "@babel/highlight": "^7.14.5" - }, - "dependencies": { - "@babel/helper-validator-identifier": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz", - "integrity": "sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==", - "dev": true - }, - "@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==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.5", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } } }, "@babel/helper-validator-identifier": { @@ -152,21 +83,21 @@ } }, "@babel/runtime": { - "version": "7.13.10", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz", - "integrity": "sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==", + "version": "7.14.8", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.8.tgz", + "integrity": "sha512-twj3L8Og5SaCRCErB4x4ajbvBIVV77CGeFglHpeg5WC5FF8TZzBWXtTJ4MqaD9QszLYTtr+IsaAL2rEUevb+eg==", "dev": true, "requires": { "regenerator-runtime": "^0.13.4" } }, "@babel/runtime-corejs3": { - "version": "7.14.7", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.14.7.tgz", - "integrity": "sha512-Wvzcw4mBYbTagyBVZpAJWI06auSIj033T/yNE0Zn1xcup83MieCddZA7ls3kme17L4NOGBrQ09Q+nKB41RLWBA==", + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.14.9.tgz", + "integrity": "sha512-64RiH2ON4/y8qYtoa8rUiyam/tUVyGqRyNYhe+vCRGmjnV4bUlZvY+mwd0RrmLoCpJpdq3RsrNqKb7SJdw/4kw==", "dev": true, "requires": { - "core-js-pure": "^3.15.0", + "core-js-pure": "^3.16.0", "regenerator-runtime": "^0.13.4" } }, @@ -254,9 +185,9 @@ }, "dependencies": { "chalk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -411,9 +342,9 @@ } }, "chalk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -516,9 +447,9 @@ } }, "@types/node": { - "version": "16.3.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.3.2.tgz", - "integrity": "sha512-jJs9ErFLP403I+hMLGnqDRWT0RYKSvArxuBVh2veudHV7ifEC1WAmjJADacZ7mRbA2nWgHtn8xyECMAot0SkAw==", + "version": "16.4.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.4.10.tgz", + "integrity": "sha512-TmVHsm43br64js9BqHWqiDZA+xMtbUpI1MBIA0EyiBmoV9pcEYFOSdj5fr6enZNfh4fChh+AGOLIzGwJnkshyQ==", "dev": true }, "@types/pino": { @@ -631,9 +562,9 @@ "dev": true }, "@types/testing-library__jest-dom": { - "version": "5.14.0", - "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.0.tgz", - "integrity": "sha512-l2P2GO+hFF4Liye+fAajT1qBqvZOiL79YMpEvgGs1xTK7hECxBI8Wz4J7ntACJNiJ9r0vXQqYovroXRLPDja6A==", + "version": "5.14.1", + "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.1.tgz", + "integrity": "sha512-Gk9vaXfbzc5zCXI9eYE9BI5BNHEp4D3FWjgqBE/ePGYElLAP+KvxBcsdkwfIVvezs605oiyd/VrpiHe3Oeg+Aw==", "dev": true, "requires": { "@types/jest": "*" @@ -819,9 +750,9 @@ "dev": true }, "core-js-pure": { - "version": "3.15.2", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.15.2.tgz", - "integrity": "sha512-D42L7RYh1J2grW8ttxoY1+17Y4wXZeKe7uyplAI3FkNQyI5OgBIAjUfFiTPfL1rs0qLpxaabITNbjKl1Sp82tA==", + "version": "3.16.0", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.16.0.tgz", + "integrity": "sha512-wzlhZNepF/QA9yvx3ePDgNGudU5KDB8lu/TRPKelYA/QtSnkS/cLl2W+TIdEX1FAFcBr0YpY7tPDlcmXJ7AyiQ==", "dev": true }, "coveo.analytics": { @@ -1645,9 +1576,9 @@ }, "dependencies": { "chalk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -2184,9 +2115,9 @@ "dev": true }, "regenerator-runtime": { - "version": "0.13.7", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", - "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", "dev": true }, "regexpp": { diff --git a/packages/search-token-server/package-lock.json b/packages/search-token-server/package-lock.json index 68c2c266b5..e59622d708 100644 --- a/packages/search-token-server/package-lock.json +++ b/packages/search-token-server/package-lock.json @@ -741,9 +741,9 @@ "dev": true }, "@coveord/platform-client": { - "version": "24.0.0", - "resolved": "https://registry.npmjs.org/@coveord/platform-client/-/platform-client-24.0.0.tgz", - "integrity": "sha512-AGlMs3rWYQa4n0y5kTjH/W/YCenlEobRjp9H7P1ZmmCp57wuUw8apWqdDIfvR70C517iqmtG6sK5xb2EnwYcJQ==", + "version": "24.2.0", + "resolved": "https://registry.npmjs.org/@coveord/platform-client/-/platform-client-24.2.0.tgz", + "integrity": "sha512-Gg3v8ZGw7qIMjJs7XjMZMp5vzWdX8WKSocm2TVnnUa4VrEJSOBaqHMu6/j97VYhfM+RrYTmkD6WsvLPZLXg5Mw==", "requires": { "exponential-backoff": "^3.1.0", "form-data": "^3.0.0", diff --git a/packages/search-token-server/package.json b/packages/search-token-server/package.json index f8c8cb5c66..00e771ec0b 100644 --- a/packages/search-token-server/package.json +++ b/packages/search-token-server/package.json @@ -4,7 +4,7 @@ "main": "server.ts", "license": "Apache-2.0", "dependencies": { - "@coveord/platform-client": "^24.0.0", + "@coveord/platform-client": "^24.1.0", "@types/express": "^4.17.11", "abortcontroller-polyfill": "^1.7.1", "cors": "^2.8.5",