From 60cfe8db71907a54276fe210d70c4c819ba0c3c0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 3 Feb 2020 11:34:24 -0500 Subject: [PATCH 01/85] chore(deps): update dependency babel-plugin-istanbul to v6 (#113) Co-authored-by: WhiteSource Renovate Co-authored-by: Gleb Bahmutov --- package-lock.json | 218 ++++++++++++++++++++++++++++++++-------------- package.json | 2 +- 2 files changed, 155 insertions(+), 65 deletions(-) diff --git a/package-lock.json b/package-lock.json index d92df4a0c..de8af3c31 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2711,15 +2711,16 @@ } }, "babel-plugin-istanbul": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-5.2.0.tgz", - "integrity": "sha512-5LphC0USA8t4i1zCtjbbNb6jJj/9+X6P37Qfirc/70EQ34xKlMW+a1RHGwxGI+SwWpNwZ27HqvzAobeqaXwiZw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz", + "integrity": "sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", - "find-up": "^3.0.0", - "istanbul-lib-instrument": "^3.3.0", - "test-exclude": "^5.2.3" + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^4.0.0", + "test-exclude": "^6.0.0" } }, "babel-runtime": { @@ -5393,15 +5394,6 @@ "pkg-dir": "^4.1.0" } }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, "find-versions": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-3.2.0.tgz", @@ -7119,24 +7111,136 @@ } }, "istanbul-lib-instrument": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz", - "integrity": "sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.0.tgz", + "integrity": "sha512-Nm4wVHdo7ZXSG30KjZ2Wl5SU/Bw7bDx1PdaiIFzEStdjs0H12mOTncn1GVYuqQSaZxpg87VGBRsVRPGD2cD1AQ==", "dev": true, "requires": { - "@babel/generator": "^7.4.0", - "@babel/parser": "^7.4.3", - "@babel/template": "^7.4.0", - "@babel/traverse": "^7.4.3", - "@babel/types": "^7.4.0", - "istanbul-lib-coverage": "^2.0.5", - "semver": "^6.0.0" + "@babel/core": "^7.7.5", + "@babel/parser": "^7.7.5", + "@babel/template": "^7.7.4", + "@babel/traverse": "^7.7.4", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" }, "dependencies": { + "@babel/code-frame": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.8.3" + } + }, + "@babel/generator": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", + "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", + "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", + "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", + "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/traverse": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", + "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.4", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.4", + "@babel/types": "^7.8.3", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "istanbul-lib-coverage": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", + "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", + "dev": true + }, "semver": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.0.0.tgz", - "integrity": "sha512-0UewU+9rFapKFnlbirLi3byoOuhrSsli/z/ihNnvM24vgF+8sNBiI1LZPBSH9wJKUwaUbw+s3hToDLCXkrghrQ==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true } } @@ -7695,16 +7799,6 @@ } } }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, "lodash": { "version": "4.17.15", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", @@ -12410,15 +12504,6 @@ "p-try": "^2.0.0" } }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, "p-map": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", @@ -13527,16 +13612,6 @@ "path-type": "^3.0.0" } }, - "read-pkg-up": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz", - "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==", - "dev": true, - "requires": { - "find-up": "^3.0.0", - "read-pkg": "^3.0.0" - } - }, "readable-stream": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", @@ -15259,15 +15334,30 @@ } }, "test-exclude": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-5.2.3.tgz", - "integrity": "sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", "dev": true, "requires": { - "glob": "^7.1.3", - "minimatch": "^3.0.4", - "read-pkg-up": "^4.0.0", - "require-main-filename": "^2.0.0" + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "dependencies": { + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } } }, "text-extensions": { diff --git a/package.json b/package.json index 4822561a2..c57500e3d 100644 --- a/package.json +++ b/package.json @@ -51,7 +51,7 @@ }, "devDependencies": { "@babel/core": "7.8.4", - "babel-plugin-istanbul": "5.2.0", + "babel-plugin-istanbul": "6.0.0", "cypress": "3.8.3", "istanbul-lib-coverage": "2.0.5", "lodash": "4.17.15", From edd560224d443893612baa95d72a894f9835a300 Mon Sep 17 00:00:00 2001 From: Gleb Bahmutov Date: Mon, 3 Feb 2020 11:37:44 -0500 Subject: [PATCH 02/85] chore: update istanbul-lib-coverage to v3 --- package-lock.json | 6 +++--- package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index de8af3c31..2d336b377 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7096,9 +7096,9 @@ } }, "istanbul-lib-coverage": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", - "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", + "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", "dev": true }, "istanbul-lib-hook": { diff --git a/package.json b/package.json index c57500e3d..9c3d208fe 100644 --- a/package.json +++ b/package.json @@ -53,7 +53,7 @@ "@babel/core": "7.8.4", "babel-plugin-istanbul": "6.0.0", "cypress": "3.8.3", - "istanbul-lib-coverage": "2.0.5", + "istanbul-lib-coverage": "3.0.0", "lodash": "4.17.15", "nyc": "15.0.0", "parcel-bundler": "1.12.4", From 8dd23482e1d67e4f16f89c7820c03145112dec13 Mon Sep 17 00:00:00 2001 From: Gleb Bahmutov Date: Mon, 3 Feb 2020 15:20:52 -0500 Subject: [PATCH 03/85] chore: explain that this plugin does not instrument code --- README.md | 22 +++++++++++++++++++++- images/instrumented-code.png | Bin 0 -> 525434 bytes images/window-coverage-object.png | Bin 0 -> 387100 bytes 3 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 images/instrumented-code.png create mode 100644 images/window-coverage-object.png diff --git a/README.md b/README.md index fe48c3522..9a636d76e 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,27 @@ module.exports = (on, config) => { } ``` -If your application is loaded Istanbul-instrumented source code, then the coverage information will be automatically saved into `.nyc_output` folder and a report will be generated after the tests finish (even in the interactive mode). Find the LCOV and HTML report in the `coverage/lcov-report` folder. +### Instrument your application + +This plugin **DOES NOT** instrument your code. You have to instrument it yourself using [Istanbul.js](https://istanbul.js.org/) tool. Luckily it is not difficult. For example, if you are already using Babel to transpile you can add [babel-plugin-istanbul](https://github.com/istanbuljs/babel-plugin-istanbul) to your `.babelrc` and instrument on the fly. + +``` +{ + "plugins": ["istanbul"] +} +``` + +Please see the [Examples](#examples) section down below, you can probably find a linked project matching your situation to see how to instrument your application's source code before running end-to-end tests to get the code coverage. + +If your application has been instrumented correctly, then you should see additional counters and instructions in the application's JavaScript resources, like the image down below shows. + +![Instrumented code](images/instrumented-code.png) + +You should see the `window.__coverage__` object in the "Application under test iframe" + +![Window coverage object](images/window-coverage-object.png) + +If you have instrumented your application's code and see the `window.__coverage__` object, then this plugin will save the coverage into `.nyc_output` folder and will generate reports after the tests finish (even in the interactive mode). Find the LCOV and HTML report in the `coverage/lcov-report` folder. ![Coverage report](images/coverage.jpg) diff --git a/images/instrumented-code.png b/images/instrumented-code.png new file mode 100644 index 0000000000000000000000000000000000000000..a1e49d9f8ffb470fc0a0a85188082c08254f130f GIT binary patch literal 525434 zcmZU)2V7H4(+3)gpdz3kqI3bJ2`Gqk0@8c$NRcj0={+C_B2Bu~(0lJi2!c|j_l{CS zC)6Y)=Z5Eb-|zeGy=Q+XXLGh?XLn}jKQoEYP?IOUO>-Lr0+A{z$Y_B;*V!9ZH;HhM zhdy!vAkZBZdueG6MQLd!4ObT%dq-;!NFgFAh1f(}pStsqHkGwplF%x&o$wwZe&0HCB5;QGZG9^Qrm! z-wEP#2im@O5LM)ucxoe2wg7~RAV=Xb2ow>X@kHn5Z6@F*$dvPIe7jw zqp#8H&n5f#sJ85yRel-LRO&6TK6(H6kSIuH?PNn3wB0BvUS{x>0JFUuwD*`wDIc^Q z_n7$BPyfg3?0tE+Zx@z5oX0CFAGun;8nT_PR+j+VeiLXZ{zUgwvk!r+!;ZLKxp4I9 zlMVd=(W*X+RnpkFv+K#?;#>d4{;OYsVao`qH>b|OYL*&2N-D3BAG&dyr~Hxm z>+`#a?%c=e(lK8*dwcB84Cmr+GFUag9!-sBHjVe(V~%4M)7-7olMsLG{JCz!B*xQ` z#jG+*-x{Kon(})L1$+G9IP40>d5^8&bs>I`X5=G#sYZOG6}4i~ ze_H&vDdhJ9MHXoRY)zD-kIctuQ@!km1Jqp9%HB0bl{^$|vi3V6`xHl0$LW&J6pF(A z(t$Ex6kkZU+?2KWleSpn8TZmKo!3)e?|xb~{Q}!y?9BX{m1bbRk_*9{ie^SJePk@x zM-r_y#@INjUu^b&fAYH_*VY7%SAQ`Py_b4uj`zgT&|IYNM*R8mrs<{X1SQ_3B$;c_ z&1QQ6X%?+1aV>9E!Y8Zb3e4FL8K_GSsDj@X1489fCQFiytxX2v%;aJpO+dL)5?7Tv zvGHUh$@mPfqt_YhNX*NT)g>rw$(p2UlwKYkVsM)ec}`vA+a18UjCnB6H3C@U#iZweMEDs7nkl>c+ z;i)sx;!(|e1~P^_w&!6+m9Lz256U44TknaWQzj1b$JyD5_Y&`ZnMh&rc;nt4-d@a! z@(FlZV?(N+B)WLAakV(I^DOjYo0q#rb~bSDr6-+eBz;#J9*O9e26O7_ZcYYMY4Rxt zJG(|g4>6z7*mcH};|8}<&XOa$qwV9%?0o{++|<$wmQ}Tsp?GE2pR&)${7)hc#7a5? z?hj6MPY{5nfX|x(XYnOih~&2|>^KzzL1z^{ryF+s*a=VQ@+PQf7v|o`ySi3G7t~FU zU+~=^uUnTI-=B8-2iw4X1AOCELVg6H1QRGU=>2nspTVqOi3+43l-ua*dO~jLl-wyh`c_(}*Rgq9V`X;KsQdf9pu&(B zFC2c8T3VVsBUA3JeIfjcysWddTBQ7*!zb9ObveoIujM~78Nqe$1)Ib2j;u_AsQ;cE zJ-PJtXIl=1{^VV|IFh)c3|4#2)=Y7AORS6aHJJrbPKJi;teTLd&<$vzbC&~iTpz0l zMZlklZ*sq%3_s<0?96oVgn`AAg7Gd|ku{#9Kk2^07nWm1*?iY=k#Xm7&G9E%f^crb za7Wp5R{5_J{aUUZEnmJz`iJ^QTzwOh94ngDzT)_B|FQK0>qpkK1xc=Pmu*)KD9OvS%v&qs*Obq#lPogY^2_8Gxo}?|yJOGul7~B_FrT|% zKbt;pDZf2`0#0^%*H@(db4Q}7I#>#(3@IBN^_ba!-}czro!)*0HysZslpm{`S=&~f z;ud)A#Y$SK^D(@n1-`E%_DyBgwzqK-%$)B3;PrH zx|^@NB8=@0KfjTwFz`cLqFQ2oqLG22zitlS9Q*u>g+|_l=D5cyU-5H9Uw)TWRljb+Md7oF z_Y-0hRE0x@UccY-Q`be<@c(|5mdUqEZ~v0dJm1{vS6=`NL_mJ%&2P%zw&^YcF!N;> z3;TQakLwIg~a*2h89cZ2I~czg~~>!y8XJk+H`Zl-pU^b`hH);7fc;t)7W|p zEwOyKPPhwQ8hw^fnh=6cnU0puMRY9lW9IG5os3E$%FMZ8pJCbzQ4uCT+4TQz5v?40SE-Zl|6`5mZSJiO4lu(`0!+m|bfHGP3P-BxE< zW_(PAmj3r`(|e{T?MC0TVm;`&XxcvPk-CIk5FWaG zU-%A2U84E|Xaaow_xUq^0EM&S^+AMk; zbNuNTtjeku1vTJ5*6jKgDtxPm@=?SDh1Zh~wcDyj$?jZp9EPcj$+;=$*$RsCUDOYubP_&8>j!rZqYzOJ+H^&~Gh97O=O(X8!i(Ul zYw8P7#Xgmx#Ux}fV{g^kh3#?eyE+u1$q%C++7_SRH&n~tXE);T&7l9*&WBc1GaoL^ zVE9nothC7WM`>C)YfEm!c_1KxI;DxlH7> zFB^ruSG9nO8Fjn~W-nwn`VzGohWR+Ih-^TZe$e=!dc5$6ga3Tw{oUTu2|TX{d{|h%oPO zaq0Cp#_X?-?-lG1`X@V?sG0D*33QS@`jW{-s+U~uU;VDDv~a3?imJ@4BDHbTacZ_y z)uF^8$)T;(vebBbuEMzEpxgHtRVI)l;O8*pKt0nj$F%s~-mm8yBm78y7I(E3&&GU<^HfUUwmgwF4~o@p^*4Jk7V)(>AMX zZYg_GQE;+)8RArdS3w-;3fT8P-jx;zk0$38eJ!r#X?0}RKZdoewQTQoivioEPkZkE z%%{{>QxlsD># zgW6c+O2kOC*Mp(uzCZkOqk0f*_UDZ-MBx10R>Qi3V5P0eVe8}X$LluOp)J@0K;*r{ z52vpEFQO=~(u1^>3iJ@Nsr`+_oAAR=OKtDL$Jh$ukHqSXoD6~6Jbp3|owM1U4;ac3 zws2o&Uy(rQmEVQ-+(hs)0(=Ks9I$!1*9(@$ejgPqsY170Ay*@x@T!^}cnh5C8bkbn zrI{O5#LGJ01p?Ym=+R5?i;_b|^52(|C=JXQ(sH+GTfK>xgoxPMU)Zdjs?%J$t`5(; zh5+PCvncA`Y1w5pB&^Q;dDF4<=@Hbx?SW1tIY{(1NWl~&d1o=tF?5K5k91kr_$>c! zkgpG^UW{!d;Gj~ztt z&wG3jDBK=I_@6pzxaalt6?b2^`S(c>9|j`EeWSqL-r4y7t$iDmP4M6R4J%w3NJ?8; zQ4#mlwsf_&c6PIKajzqbsK>py^2TN zJcE*!5cx4SR2EM*|sqCmhXiV@U7`ym~J7 zPlNwo(ff5tTY-!WhC3;n;w{69tiX)4Bh zJ@@}Zi+>6I&s!X&C2ouH{?DpO+@^de)q-0{I(r#)9o!SQ&8{!}THFWwzfWAAV6t^J z>2?zcBneWKk<#(T+sh<2H~Do8Z0R`l$1ifdat=~G%&|-(nVNm5QuA2y<`cZ}APCdl zFN&{Ki}AE65hO#W_kBsk@l<#Z+6VM%rVgH8Nynl?QMHCTUmU*XnL!3r^dM85F$kzo5K8p0!3BT zXsi4pWg%vYh|n9#?DxmdKJWLs&?Qv%n)}^^bz2yd?+PYsq&ZKW)T{&&Z>`Y?RkgOx zSAJTHdy2h!Rj7_Fhd4qK!HKX*@FeW`oM4aeSv}YeGKS5^3}K1UW_yrYKouas@Q&U% z1&;wXm>VcYIHUkb#d=9VocFz8-G??F5?g)QgF zivJ_2qZQFZ2-AxHMJAnuXGRpgpjsoXK&jqnmhdn>+q-A)$)(ue;`w$Eq$XE()s`CZ z@$v0Ri8Z2$PnyF3dXJvmlL(MhfOl+w!RW0YSR*y#r5MXAPr7id=mZ;Nl6M-s)oFpw zyUMvLz~*2JFu}uVO-<&!7RNAq$gdkCJ4_|j zMuFD=CC23xHU`K6ESRcOSei@l2;}lAas;@%N*IA4uhOww#V~q|^|Mo0oA=jZvxsBH zD9E1^Y6;v&iYEk1LAHjhI#Cb6Oz9)$xvKgid9lWgj18H4KnP=>Y1`q`oFeS`%uPA0 zajky~9oW7${tc_}1%JcO-()o#1Q8&=8n+{rU z!)6WnIEbi4Npqb=_dqV4~xK(7peSu8t*iIM|S z0?{DXaof>%d@>uvYdlF2lvRkmK}g&yL7>*yADoMkLPwq#_1|{l_)7cr8HzFU*8IvI zq#EeO@}dFG+m9*jArn|R@teTyJ`19JG{FudomY+8arkyZ-F&J^xFNDc6*lK4(Zc0A#x zj$=X@`}K%a^;ENq*F^<<1R_uGKBUh9lCqL{9;H5dI#yd-O9=7SJb@S4^q2QCrUYZq zgWm|qzmCdoWzwedyL4oT1f;1*SbWjZ(^0UtPSVlSP0KDX8Ec!)Zd*NgOyekOAd|#B z?eU}IbFu8xZ(qo_;M8|sV&E}e@(=r(rI|PPC20=s`!nAe&9uH3-uh)l2nr7&v704+ zPe_6@1l3?Pu^QMO4(c7o9kY4H;C4y$;4|fi>K~Xto)^`XXewq1E27gek19Sq0=NN=wtS6ND)B)n(uDnDU9oObvDpYfYm4DDzwdqf1XSoFHqLUsHGUH zi#-M|n&hq8;#gQ;{`uU^5*|y>MQwV;&%wo&fI#q-Oy~G@qip}qHt&X;vcIL$lzrK; zCewf&E!~NtZK59%WVII}6?OWcI$ubBUX-VC=6Y_u;!E1zxU%oL(=XMkV%9%fW_BD} zt@e*td7jP=F@LR%)dDntacmIl5y?L91ljp~y*_2@r*pP_7af9ga6Lmc@aviog={KL zuh}K_w}~-~rvTwu5Vq>_!AFmmlqkk+$kEwHEb(iy@V?O(&pOTb{fp5 zuusucp(8mC$ly3teVS|=QkNye^thTVq17HRE{wtd zmXN?QXE^8D>ja5UaTi$~wP#b0zCy$+TmO8;Qjq)o^{eD0t`#Oc9ieCMG9Jg@?Z3>A z%cfSDrEC=UEaqapB9k-xk@Lg(O+-cOQY$6g(B%=&%l3PPRf+f=Ae%BWW@MX44~lw{ z{Na$1>@0Saj~${xZT>7RvEa&M;Atn`O9Ke~B~dDT!k*97)c>A5DqSkYRHT z%3zF{txOHjk1Z;@HO>CprW02<2ZUD3yfFtR8t$UNn$#ba{-hDVBSx>t;i!TF#vbVC zjs82~dEA6^fr#sEg`XFPWwYfdjgSNqcC~-CQWE`gCpsSmRz(cVe_)%+xb`4OW6b*H9kbKFB>u=>{c zKcgF|g-*-IzuDE0KKNX^VA6iOGy(hkNr7nQy~x4sv>SPZyVG;OB7CDd5ch5q_vR|e ztwfD`xD$Sq`KYs>=3DrLX74TPOZO)$Umm@i>s12XJD&rqu`Lg*oZ|M$Ny8BG3pX}+ z&&bbs_sQ#~nC{y{WIYJ>)vpCeHlxiFx4^e*n$w>q)ZM9?jr2rGJdI2HFH=8GT+5Rm zSeO9$IV_{#4pzr_!KPzGQhvN076U32Pt5TU!3k-xAh z_Gd*D5GbTO_Tv6cV)@ZYcYu9N%^o)FL-j442gx1tlLYA=?LqI=d zLMDbZnm>@7RsD&e$id(-)Whr`U4MH%y4arNIgMh^5g#$QdCvk?Ksv_d95x3O0zW)z zw;|8-#w5yJ9=Si?A54v}A^2T;dY-uO`(K*W0z+8A&?gVrUhZpyXMuCn$A6pJ{I?Gq zfVL-Yp6Gev$6u(7bBngitBEKD_1*wt?_AnB;9wDRc&d?RWn-%x7?|}PH84nl`U_)} z4|4%4eTj@LsIBFj?|f~fZ4&SiKc>pCwX)&1iyqTu7iVIX^<{8oqxllI=d((i-j;+t z4M@53YnmLU*}Jwc0uWve5ofXcRWT+n?!87zBb71In6k!@IjZM0JAJoo1BHw~ofGf# zma!Fznds(V;6|UBbN*FawjBsnUwhm_Gip4#UV7c$NyBD#(y< zceQCEo@UU4jj9HQ>$8Q5`77m9vA?il2*HiDe8-@kb>is~2!U9zOhc7qxfUSAJ_(zI zU2Af}q`UZ>nO4~t`}q)@fKeAHw1W^$TVGM{A9i*U-fy~H5^=-W4npi5rEqkwm}-6{ zhWOtjIa4DWNH}krfsPU1Xbm1=%#mLst?Hc4#!x+cSPwH-B^3C1hh!dFkK122e}?ck zEU}>(8whV)b6PbJ=Z}d!J$(ru%PS(iq~_$}ikzIB?3-_Jn4+0h`&j3tvXMT15teN@ z;O+K{-rQ`KctSEnrMzZW{f-400j+V@%1B(=g~Zpik&drv1%onQzEo@HXG@L~lO~>K zdL>3-0-18|u{fT>&ea%a>ilKJU#GR$W$8v#LAf>tmlJk$p~|Xotq7g_#^b+@*pz!-$0_(Qr1=jVI>C-rv9n)K`0VrJ16iDNQAZ#&~=n$=7rg8G^R7uHs zeVt_D{qh)W4o;j5wV z?N*Tl`{eUx^v$r}tE4#nsqqiOgs zsd1jObR_!jQCI`h3qVL^yE97e)~=qHBzt*q;55jwE+BMkD5X@MA!(-xU=eS%QdU#b z@BjTf(OvbSvTCzjX=$mW{?S8RsP`{W{X@2y>X&yKWw6Bdj*?u7xd}d7AvXkqh zb$+%|;0j+DXMq`=6rC{JhOvq-W$I{Cj$O&VgjjGq8&2GlB376gV^j9M`13=S76ufK zhd=(r#RQI1NZX`BjzjHHMOQF0L3xJDODP|xAG=yfW-Ru?Z&(vkc^*eE{-h|mrJP?X z*F`({q)zA!*(1--84U~M*6CR+OMw{2J#4xXxX-9;5LR(9a;n)^dB=DH+Xp>^?ytz? zB$Pch$^3pskL+3J-5|#$-ZOQFeY2haBo>f`BwG5>D7M!3u9yNsjN%Ls=iGr#Bca7O z1-k^IimnEfG0NzWbLxFw7o9Pz)>`K?)&!Dz@Gcl~qWkGwaNk7&;($DXTnq5GKqQ8j zr4ySnXSlr5yEU>yT!<<0$o+F!rRoHcd)ZfR2E$TJ3yIO6f_k09ZXt7MhzB+ zEcPq#07$ti%6FU(IdWdq$gvT7n|8pg{>cubt$`Mx1&BodJ-fZX@~txZOT?=SoE$EJ z*h4zwq;M;XJCEj}6?I_rDLhZf5T2BnD8t7$ZvE>vA?V$w@m*P+X36hAd9f)AWYh%M zNs=A4>cdhP=1uF>N}dSpy%&7GAkx_ZtEFekvpZdpg3vBf>M1Fz=M1pA(Ng<;M@c5L z;ijilmPht$4)o4pe9J1{kXe}f{=Ce(S!Q`k(kB7Pl$OA$O8=vPF9)(p4TrFj)4c92 z=8!&WUsB%)jkGU(^tX<%>I`2+J6eqSeBBdN=!I*ZDC_!s(y8J~g2srb4^NJP;!;}w zSy8gBhT5wIUqHodm*5|OW6%GbgMlg-t8a-4NA&)b4?)Eu%s!Rz@JttXV6UZ8?z$c)FJ&?BG64Q3L3Y4w zWF>$D7?O>VMi=ERfKOpWjSNxko`G1~G;LmGoF#(XA8Vm^|7QU=mKw)?vAfn_ zaz%PpHSl1bF|!N1GXrCMJ<3{d(H(YE4sP7x-@;+^S+|VvlCL6?`@x{g0*2QcxzrlC z6Fdd@Yql@*MYMKmCcmLA)py-kK|(dMeR0|F#8zT)HSHaJxBpI7z z*5?kh63W0?k5dC~v$EuQT$PpyNPh5$Gig9?@O@aYOp?8pIV&gCbntNc*w|H`{q_g< z8=Py}MgyGbY0tu8DMXhGXN#%6-}#T$4xw;SeDmAYJtT~pe^=?yp9tQUb5UcYut5bH zon18+7+drO!mKQ`F(quHYKmU8Ct&vY(j2W#v?_%K0-J|h`q*>ceMp_{9PlAo0tz&DR5v}MqpIVW11tdY z9!fN<(s<*U;yEw}sK;Qz>vcXaLL_2v6Zm5-jE3w1H#|Z{AhUq_G!_Eu2oS)kH0<_7 z)3S_l1X*|+Y)p~!Yo77XhUx7un|I@NNZY$f^<=lsP*4%kyF!nbNxGK03l*2cve`bsz$K>Tx z-#JTP@*;psD;nsXvTt#D8ds|lD}MFa-Re&r$>g@iNOLnFt2~KbDrm~%@3k^BlhgS@ zqqcHbxmqdp8^VfhfJ|?&$77C<^ug zhxOz&EQ%r5$$w-<_)o~IF#}*G(pcYz$vxx~A_WzW5-iw@b*0BUI^`d(CJJmN0x|fk z$8|Ii4^uV*?05fR7g%CEq&j2=1?25#UaRYQnf4V_iNL>!^QOvuN!DW2=WXIfbJ{G3 zoNSo$b1HoLJimSZS)%rd(Gy$oS?)>jhv!rgQbj-t)};~baNCaJUt?flz}VAb$eNCg zxx?jlqfR53=#-J^GrH~`$U?lrprtF6WjeE~UdWceJNLE@w*Ws|;+?{2S$CG?(p@Z* zI2fbjyE6&fueraY)A_0GfHPI!WWM|~Ad%^gBCYOl{`bLKI%aU<8RZLvV1ez(bac7? zMb>SSGV6epkS7?v4;X1?(+=CB^7a-@N!36uP)g(Z3? z>tk2;<24Snq;DhBbz`#U48%1nq%jj$TR4O3Q|}VU9qG}p#Sr|OT(M$E)QvMsl?{2U^mtOgE@r}^>vIISKrzx%)^T|G_!DJLC`kxX`}W?d3(Mwjpx~9c*~SDm^F7^r0*Bk5U4f$u80$S%n?4}P zV-cv_v)aaL4b&N&%LnP>8QUSf_zh#Ir^(}R#=ynJb#`MpD}JTDb18PIV&+$L(Mmi@ zzmng-+^|mW-Mg-|8HsTL!QKrj=+hbhG)?;=(YNp_Gc#5Py{b685F&-jWcxQr{gRD3 z8}3RomJlMc_|rSql>iL_=7Vhprpok`J(}f+$R0AKrly+CPb;k;-XhDF0228wt!C%U z@)?*v_n~Qf{r8FSv-e&m+VHjWbT@#sfLun;>}}H1)*NBnQsK-C>giF9ED5%iB80my zklp87grxf;^9U$Hu+(|yCDRUgXQdFQ%`jdA$x&=JMpr%{%{(6iFOST2OV0*WadM0r z!^kO`1_vHxOYmf(1i#@MWPae%t8|Z-7k{U=xJnrbA<)iSuI}~h%J=YlhdnP|7e^+Z z?oZGXH!ajEW%@s1Q;9#-E_z4yJ9OG%MjecrZlV7q_Qznz?du4_1yFZQmMD)|`|UYM z%TxbOH_4ICz15xGqgLcGJt^=A+95E=#9Qf}`)xmv;qp`pdGb9qeuDP5+RIrLVJCwhgnWr`azn0Ykt5XDWZo-Q(ak!1$T0_Y*?UTna<*>2ImD${#J9 zeG>EC!`gv!hB+CwaxM|G7UsplYrdgrSrWGCHQ<#*;8LRr4bq1KR2gGgH5!# z)!{x>9f;DbCWgCCit6eq?dS8#g=*r8sI%Rw1u^*iIUvs%z#1!o`u5DYadJ4Mc*j(O zDS=HrnSe}8a`@^`YU5HgNGL}SHMOJchbl2djC1iSD}IQe50A~rpc6hFmA2mL*M1^> z65QDkHh$64buT&z5=~Slj^5)(j4Q8Fwv9-%`wbS4vPR1cEF` zSo5-1@o0gPm<}<@v-54SCLclc~xK6L7N3qqzut$cg_Y{cU z9Aj~y{DnjO2uwrDB>H`l>`X!*u!e!=jE`$gV7T<2g*TG(Rjec%E=unIDkHcrKxjGj zBxSI(Ksi5Mq;KAhW2ssynRH&M*7=*}Zmq{e?8aTcuTBD+FApz?E=gSgFg!)rxYa|O z%|w)^pg^Fu_8oP<_>tESUCJUCAAGK%*xho&##6ebJla6SA;|^|QDC*{>D0Rjum4Ru zV5L4M<;)04e`_ZcFc@A_`)>5_f8}@5U1Z*$RuuUIgES6^0YJx7&*I=Pz-x;0ZAdL^ zVFmJWc*MMG+zx;HZJf=R3LYo1VMN?AjH|}aNC*PkQ!Oh%;8W3mtW(zk%y;eM$Zgl*? zrtla((|@xuF1?yQ!D;ZrNT$^tUW%?t%#jWkdC*G5LX+jS?9=+R7QmthMGwDQ?si<= zqw^m9VYz2?6P5nLGEB!|)m9p@m7k!N96=eYO;&U2@Uruirh<4S0G;V9qvjD&2XS?4 z>+e7xIC$K}%eYv9Kq^q-XlRL4a1{(Iq9&s_t-LaT{&?bWT;&H;a09JZlm#veUj^HF zS7Tt15h$GN8{x*G!|l>fX8strjs0hjn|MDU6Ts}X|8Z1Z`yPBNO4II<;_GSSqbJ~& zwj4f7kuE!CE@!_Kge2<0zo*Are`1@a?>T5sw_dx2t$JW*5ERDNQWn-uG0*i_K&xWF+_}? z9)JpCC{EJH?vE(SIFTlTpT_=qm~-W{h%+bzA3R@U%fTsU3(XkW{{r`GJK8ullt+OK zjfNLN<9iwXx*XFg!tTU%lZ%?jC(?39KH!Zf2VW^HLx2DS@!F}?AFkb`f<#X>e#$kZ z3pgZuK7P&TIQv}q^sBVBC_Smm)W8N}Odd!QT=6I9QVYBDh!ZxIU03T)@$L8(A=kT%iHlo`P`U^xvEHppVxc3i_YogUA zEE}co^|3+ynR(kU<5i=}Qxa48ZFeF&zquOhwwRt~`C*^AbQ~8hb@#=wIEKnaDSW<1 zzA|wSPjjSPcDv=9^CcF2P=~(Q0QUGtwu{5q55Mj;PsH$9TnWwj?&j2L45G~dR7&y% zbt@ZduX+|Mo0{;C9o6C(UV2wI}OJ`8K?7QdD>wQ?f|7fl)#mYP_($l20%)x3ntsx%s zEF*)o$fbn@VR_s5B!|8|U&hL{pi5S!*FdExT3ek8g;# z&XhvDmOr$`q+L{QoRpST#%t!`{K79ifl&xoaz%BJcof-egM@rQt1%pCp(f;qzp4vo5QM*mf*^sYx2S0_-6iRV<1(%?-; zk2mPm?u!j|NbAsIbnotI7j7?(4GiLgLhgau+~IG<duf9D-T4FB%?at`L?8ff@#D>F#z$j8sOe|3p= zQAPUs(2g)7yMA#%qAKUOj8tk6G8{WZYxm1RkC06!Se!@K_vd-|Q(5#(6Y+rAHPqIw zn}j`mWDmK-lB-m7?tQ7mIXCW?ifu!t(#$(>!3}x)pRhC8YTrKDqX^HbP%g{MxfoSk z@I>tN8I0&1$lS;%EmTQKY0~ylToRW6=q?!r`#Y+h$4d`hI7~O1J1l;5@~vff^WylY zDh=q{+3&RvaMY9mYB-0|ab{@vn0PDKn9C<{f*6D{!82VtU6SBt-T0IfvGgK_pKvw@ zLffWD05TIld!kzK=QNrTv7gUTJClo3lE6H@r~R-T)CkIUC}ckt(VK|BQPmj!V3u(b zJX-YwU%ZlrZoX#$?0juiQ-6z2KHx?!Z@fZxMUUn#uIKWQoA(#gX0Cd zNY3n8`*s&e!TTkVIa_GJdRHV*)Bs?H*`YAZ&4ZCLzIbh8;^*`ln8}Nk;2aUZ$av$0 zs<-FE_T6fX8QXOJsSw&~ZZzj4=bR^8H=l28f?~uR=9!~R;vCLUECQL++bgl)n5ClQ zIsR1wahsAbD`_|pvI!CF;FuIMXymT@gvF>RB)|PyybQu`cYXqcMe zHXNH@`1DzV`e>&tsi{mWFt$2|)3qjeBE$}w*T|ANOy*_)KGON`lJWvS1)kqH3V4V& zn*2G2N67fmqB*Rx<(y_MA{}vM0fC&FaUU8x*I0JiUiSUDb+|Ij|1c&}9VU#ODLh!& zO2L^lS7fkTGW$5pXzaodg;ZmNZ&^Y;*3I5vdQn9|QE>?;rhq0keL#Ty3tK6q1gH-y zrYnV+8=vekdO82bT4O?@d(OjYWRQ7hOvQKnvHLW*xCR=c>yuz85|WFl+W*DNDfSn` zSP!VCab~X9!HDkA*%jEZfZjHv3Y1d}Ue!=VGfv~xMnfpZr0C8bE|Q%VJSr%BAIg6Q3InXal(e8o;Y{h`lNRnNCn2&{h|>b~;}6^O)D8 z52$zyX!~RQ_zu3O(v&BaXQcDMD6u&c^*2lL-q!?IhTLPM-tzux~v3TB)zcg+4gKtY^0GyLLmuO zKr0mqhr^S(=~f5nk<=A0p<&k{x^>6+9Ir!-H4IGsmjXeJYh_1v1(BotBsdv+2CA2_0Qk+k#k?_febvk zf0StQe`TFi+&FM=_HKF)w&#B5rp0`e^f?yF4wSM41U^sGhfCUSqrV+#v&nvZUEow_y@pSh!+3>92fft_@8Gb+7h}?kWRI&0m zIh^XvTNb>NPTjjVXX;G5OSec`P*vBa@X$v-SE@U*;Bd&mi@M^^KNg~YT>Jk9d27Y7yS(+C;(v81#IwS1ZMv3xC3qT?nuA#_e^%v%2m&e_Dqjy zL)Yz`@Z8svb+GA5!(BPj$#x#l`|oeI3e%mZHUCI7o^ARwJ=_boy}DbsJMi&S;0bGDkV`I&JzOL$Bhdv2?tAl z2F7VH^WZ|S7W#=ra>9q3TU*MS_X^!S@q+qxze&HWYQD**)r&PQ$`c+=J4=iKA;Bbc zj_egUfSbS}(!f8DJevX3I<64Pr1<+RO^c|a)%mjpaN+Yn*+X&`&~Sz@e;QU*a5;Yi zqbRL7wGen|A#ZoI0k2ehJFGsPZz*YKn6bvqI1&8xq%XdBoS?^F^ zZ`fDS7y%8--Re+WxRS*}zbhdq7jYvwOIQ3&(^gokxc9B8b4%I>{-1!u7aZO@kKhYM zO->F~vASh53S;>Z6e1g}wgxvE2@up!iSd)eVIspB&-|&U-VF_Z+j{dC5U|ob-n#Z$ zn;FA~QY9r~m4rQ~qE~4h4fauL#lUlzD1yw{*-wTc14G^7^#c>XB%fKh->g$^%C>b! zTzPoba0TJa8qhmndvgU<^vKZ}$ubyy?6QMRmDu5A;`By8#krfVeH=+7!IdHYb_&<- z4IH?CZIsR6y})S$jA1pN;y5%qtrJ^_QA8)43x?vtb&i!n&$p86z%JAF+Am(4Nl67S zM%??8W)CbEOBqVMKZ+4`4!5VfG<=6PW07uqVCO%WTjodWvlRL3$ z_dz$&BzP7IqTJl9(&1z?V%;=~84`|3OP&j=^7-k-NRs|mk57m`me|?jTj0~s5Hc}? zqQ0eHQ5oqjEy4rDESmx|*mSU0$JORQGpJL##{lKAVP;K*4;mQ{xJOHRkL3mm+be#t z$l}s|maIw=r3tF}{q03}A@D14FlEQiTdhdW>R_=22V`UHt4!PT{iH5@u~n_83u-X% zDTdI1Y1gA(MgRDbg8Nh2xaO{Qn;eJLgZ9KwQ4 z=~wCm1T`vR&bb-yb7}F8)FG$@|I0t&p1-e6i1!m2Lf=l1pwA)bOs_ulVY@yT=q}vy z%RBvLdp`HsQSY&P?U45PN>TLSfZyL^)n&-iX`G(hF68T3DBPHSEOPEF7dc+hn&XV@ zUHR8j=+ujgn_pc3FF=)a1{ep-w)uCUojln%Px?Pm*VLacr@>TTI{+zk`gMfJb@Zc< zFbH`w_4AX;tyzqDJ^nomKWhKgC! z+4ME&e>cyW%mCcxY;N*=PMGfq?Y2NVA8YkDOUqZ$Ha2XO{W$d?7D?{7?3S{wHrd{M zKjuGo*&|!K-{(GLwr~>0Wp}>bCT!9F$gM1&s<^Hx?v!3zoFiGbJ!tb4H?w`*OJv{@ zo$wlx|4D$1R2!l!)tHr>9vu|5C(*U!P5{q4p8b2ll6PeEvgs;)^^kXE6laY8kA9&R zs*MYu{x>34L-;QH4S{<`4mi`g>!ysEO+K>=yeU0b*GRv20@Dq6)-6adMX8YMf3J9 zyEhKy?%eMrmO(ZK3#*6ccB;G==ya>LI&LpS{!nv+f&cpeG>>(V)`wF8tGw>tbJ9~h@Cd3?= zF(LHFc5d++F9Q5_)iI!(XS!Ni6hCf0R(`9IUJ0kzJ%0FHUK{=VbZnQ$uJzEcsPeou%uWw=G?OZx%k^sh7GHSz+wje*E100d z$Uswpt-26=zT^G_J!OmO;Bo6%v$-=|j76=*qj5)$)u7^CjqUTY*(HdO?{b~w=LD-d+_R~Hky}(_(0K1r!Z3XwXz50ax*e$a+^vTfwhqkwXit>HiMF$*U z=#mg5q?Hx~0bxK|6htHhX{4kZ1%?Kt8|g;r?nb1gyQRB(;=JSU+u#1q+5i3DXMO9O z^}cHsi#7Ak6L&rLecjjSdX$GZ)GA*rZsMGbr6YgNd`_xY;%$B#zZFu(EFT(KSc)uG zstiZM;9uC+W;WBFe7vqwQ>g?=zDL0rP%1VPRU@dn_xa6qPb|;aI8iEQLp7vZ&(fPO z-biR{8X?k8DjcpO!pAqS31}Ot=^VQ#H2Zw7Pd}^)F|QXa?TGKl?p(n1+^;{l1J-g6 zX*(Qsa8y$!)fJTII3i2c58yvdMvr5hs#*?25r=-F&-FCxPk)QCa&i`GAW-M)3H==b zAtq;AszP*jK$Y$K;Um36Oi)~YSdZHgbwB6m)PhT+R{fP3bW9aAwe=n5?kgz)*85f4 zdgyG@y@b556qjJ?el<=CQn6zOdF3Jdp!30`1k4U6ifZdy*%2eoh}@~m3slPCX3xab z`)p?+BWBQIVK&3f8UMmjaqWCTYjx8(y?hvbF?;tFv#k}%dl^p7ZGlRIQvdPLDYJRK zFQAP?-qiTODT1Q0AER9^2U`tvH~lp-gGW+!0)~962|zvz;9xL91qhZ4tJ@~9W*L+L zpsO33k5?ulK=k=-I$*&7B!5ba0V*94VX_aKfq38BZok{6t*n%AOA5-IxidFajQy*u zz{A`#jHb%As8jM+g?afne2;9V;d6`A{%Du=$91!BqApY=yzx~!wvoe;?FWxcLxrQg zA~ihX=S4-uNO2RmqAO})tkT#T3R5L+)y3yZ@7`%qa`(rV;4E@vHa)238Gn5<88OT} z@vKZG#pGjq`1LMTPXx*{E%uyP(KNwo&*uD%ddX!S6Vv6(I-NiYg34RlN1mtD+rj=L zC*$J?k@zT~lglZ~E#$YBNo>G^OH1QYE}8DJ&!tZiS~HU*eK}KU8!)jfc4kM3EA^#Q zKhO#B9nl946TszjmVsE6^}|4)8qt6;jBK9^O;40Ock&p*E}n8<jD1>?GGHTG8bxtFA5tBY$BjI_|Q$3{z zU;rFG=AwqBiTgN9n~V~YM9)n`cDAxptTb;g4;l~Rf#OW}@AOY6y$)xp4a7k4|c-Q(L1@rH`_=YeWoPDMdAIX1EIDW~7I)NWU`%=n;4r%ESB zP<#|;K;79SzX8-nzIQ|WLW$e0tf*)}&bn!@qF>P5F?PSRd$!|w{R@$zDbau!M@NVC zw9ijKd2-ilS##U31w^y5qY(k9o*hbex{aD>h;Z7rlrxNci?gx617huv7{ z@qTIj367*{xPdwTzCJrMC`b7gA0qPd=AJ&PJsEC%l77z1mT5I8{J5``avRnMqYx}F zxJw~*oIEdz2Hpax<$+&MX!`W4)w2v@KygNW0~&y6lZ2dj_L(`v5?PZ7;kcG#u$*pax~RIej{sJ(e&VU`d(<^y^h|!+ z{b&~heCTpwiMB3F>*6+atZE zf=qztt(JJg1e9YrU@3~LYeeWZ`8=DBUWRdKiFC|&6mVb%u8>91ed4VJ81gjz1Zb#V z0RQ@1Lcj0jZ`F#ps4$v%aeWq}vNoZqU+sywy-Y~9X;8KPJcY7XtCTRl4J2mZ2?F|A ztZMgbDl8`+U8jf7Ufci(g_Z}>fjx1p^=}%SoTYR!T8z40)bA7&nsf#dMyI9OsP!E* z?Ap*w$8o2_jsu#m{)F%_4wPg_dE{?HyjKN5!#BE#*jM)M7c-kyyuQ7^!Wh`+tSXC( z)YB<_*GvbKKB$dc>`o2IrT0T}#V$kBM&4XscHr~&02xh73!kBtKC>V?xjAuZC?vg(=g$ znoy;=>k-RZ?|W|bJrTmR(tg~jcX8j0g|)!HNdOSu`ir59O@GpPqgW`q?=qY2>7XJ? z-$1IZMC0>-#Va$QwKoG{s9+BJMoO~}q%~yJj^D^kRi9_5$=vGXLVgA_8zF$42NCu@ zZxz|BzH+W;v(jy+y#c&Cue_BH%Py&9<|BqTNuN>z7r%hY<{gdv=$LW7vtdDQWo`(M z{oLF98G4W1pbR)Av%p`!|!Xin7jQeNCH(j zFK{W*yERhW#f)LJ*1F@Id$LMu*1s+GsuoJ27k-Y2m|alLEODw$Bd!{4Vb-5>i< zZLQ8YVq)P70tR79$sXG^YVYv`%F&g@-LR{hR)hBE-vB^DY+*!c=7%Bii?Z#sCog{A zz+|a0_^1buiziX{2lu4!<6{)JmE@9BWmQ5A!%|c11iqZ&6)@ zPMjZ)zdIOl5_B?kshiS;{bTty{rFhezMxy<2Y|Ch_hmzy z$Ad3n1fvOoq$V_@+Zt6v}#5>B%sfKrQI-VMGD)~RS0Me(fVjEZNw7z~-G69;2d+v>~Sa&>a4s{%=X7hB! z#=0l4LLC$9vQQw)t9U*|thhu^>-^~(!4)m7uHff4Z{KnkPOd9#YzeR!_h^ah9aj6G zBdq?Ib#U(vud8pP@!;;MDB1D?!xD4u0w)VIwDujmAVgT9_I$?S-~bxGS|h@S+=(B| zP_X{2wq0BO7pK2eU2g6u{bU4dVsIyQV*iyUswW*ToC_eGkGTo<>s#QLpR)()g0?#@ zZ10}kG2uW7#Ua{nQN$_QhoDyVqYN zmeZdvqnh$79~F=uNA0&KKY^-1UmPdm2fEuIU7#fzBgGn;irVITG=H`|=4{f@Ie7nk zdusgcZjY_Xj)I@VkUgYfb zw!4JauolFIj?y75-Mb;)BSIr^w{f_L+y&GCRyeDNq}UZ4_5!ytq@FU1Y)!tcU#l`?tEEzXY3AJ>C|NPd0ygEtG=UV)< z%PofOZ05aTkq%S^M&=@FR5?)RLof?QgYfxm3~wIQLHS4t(}l$I@go2A=FV`jKHz8; zb8z$ANf)`VibNuJCt<|D`e<<7tv>nk!tx?4pQFtY4UVO64Fqwx9#KtP+kY_?2h620 z^^@fhJo~|Q(8tEN9(V`B*D<^(h|?cRpRobob8jR0l@yyM=ebibC_6tJ2Cx&gF-Kr~$KNukA7~q zP;^h@p`uEv5i5Isp>kugg+i}n3u{esr1Z7mIRBwoQ2n1v9x-6v5zYNEB^4c;tUg`nIr1wZiZA?G`0 zr?(vkok^~!S2+=Vewo?!T3H_sZmv(L=m?LByKEJmrL;yJ8WcDLbf0hYX!B=Ke^K{EUWKiK*qab_8~E1{NW+yh3bbVi;QU$BQL6kG`{{YrmGq0|^*9TSECK>4>G z-{9}QXual7iY_iSB8N1mt!}qwsmd`SKg=5~j`Y*hnv)Juqi3W|buNS2GiBv(@tks` zzzEp{HaJuQvC+4bRHpnb8l@H5;SiM71DpU&tlt(RwMKn~4nRMZUqmTJpNx2M|jPim;b+ zMaY66-g=&#dK*x~eO!)?TkzTeHznNNlFdc-JS%FT!s zO88n>2kC8#2slqiGdd&{qB55(#bM}LiXjSs39l+rpinM%^Cf%xJGaprO2^mbE*DQ<$ZPmWq z8O(UIW8|*c*<+JwlJ>S3u3%EUVY})O)ko&~S|iQh0b4=4l#V5PNsq~0dcoN@b0pal z5F*>(4_EgpHIq>(&W`H~xre=b>XjcXdfz-OaDwAioP2n_$T*XG_`70BcwfSC)% zk*^J(OY}nRh4GBch-{B=*DRv92v4f1b28t(Q<1>LGB^mbZRK z9gV&mH>s={FS!t&V*sx78cu7I8wMp06xz830o@_;+;fu8#xGjSPzeo))=@&%5sMJ{ zP-??5k!;qVbNT@^!>-p933G3IgLch*$MRo=Y?EBTVkzv(P@A{iXRW_P1tL=^KPldh zSy0WU^UvIS2FpZaEB-ULe6BSIG=_3I-|CxEGCk!teXOm|)Pm|dF}waK>^sCTIAy?S zBqWF+K7*RanHQrz^hCCoz`}tnlId}ltPlC!=l8x&mvEDMHfpVc&)acnve<(5pGvou zm+*?teJbnS$6u7d-L6eLAR3NYCM)wRSERb7usTWT()e4=nUyT^{D(>74eGn;TU|xO zE+J00?}dB@`#jJ#IUQ34-QPF+hkhjY1QaNUZpR-(kyK$-;hH`APP~|egWwIvk=Taq z+(+gwAr4$m2B(&^5Da22MSDO7zv6sSIwvdZMGNwVGZp&=_g%eFZr@-ed~XvPqw6vg zhv4PqI7>$A$5EcabZ&9SgUPf0GLbMsB~UA;yb$b*)`8iL)1mM2lDT%x{1?z7cel!~ z|McAN-AAa9djgm**p?E`O(X!NhdK73+Wl~pJ~jM))aZq{QD{)^EH`M!EdC4`l~(_m zg=M(Z;&P*3QqZ99B3X6u=e=vZ*suFCpE5jgrU)%)o=)xiWpp1hzRD|Q!KB1c^!xa< zm!W#__}Dq-d^M zUGkp^3q82eqq=|+1de{unP)TZ1bBWJr2Gs~N^@90u@U-_c_d_gOkd!zB^Xp5dDRVl zp=j}g+!PlcVIlge4;@Sbl^myQ*FNu)AyUWmSk(9Bao7v*n{?n>!j-v6NB4wf1C?T^ z$Uf`_whhn^BqMDPfqsExClm^!qV) zX82If@Uc7&8@SsR@y%4%Yp>0h+e>_waC~sO1XgG2G~(PO@r8FGF7MVZmM(}luapDx zsoN_wlg+TlaOgDh{pZ*BW1;rg_t$yv1|jRao+L;H0uAx0J1dEQ&^^_eS+RdD5Ku!& zw6SaEyJ$5K2G`uV)&ITdf=%%cQG_fiVY@$k5yivvFkYViI@#lTJ>kvH9Sn8ijkOIx z*me5-k5@kc>BvlYHYy4!zXOZAbJjYFDvI;IfwG=K5isqzZB#ZY0tvlAZK2dK&tTe5 z4B%liZh7~&QO*}Uw=g#PH<>5_lb%Vo-RH8hHh9ajA(UFWuKXD!zV^m+=Iud8d@=#q zbAC_ezH_$Qo3l&@GTRlsi#sqAJR+X^Lz%K&tHmOuT9yTV#gVMm@QAK1)(TVWOsBEsRv-n3Jvp$Ul)m2jp+6no3sdT2n1ljXD|bF>208ur z+CmBCv))2?63T-U2FFo3fAfHu$eH^$W?RFVc48seAj)sVpH{MDXK%`O{9A8pjGdnJ zMB_bw`}%USbdGAok%Y@iPZU-F9ki}il0C!tQGd2ajTnyMqf?+JjOU|RwsK50IoIS8w_yxri+Ifvx{YP9tS3J5Az8_*ug4Xn2G|v;73?j$U z2PwQIclPKQhw+Mt@@DBig#g1ADi@GsDqgz(U|88wR3lP${#3nPlk_MTVDh25(f6QL z-Iw~yM*}?MIr%zG;QNdMk(sxdaXjZ+Ff+Uh#O7MSne;!FTZ_1KI?N& zp@AN5dV{AxWxN`UL2)f#NVW_3jr9m}JY^va*#pxhn+_ z3D49K-Ky5OzdR9aobNwpAofi-5Uu=C7H_g&1LB~QnxzahJjLau~E!1l`=p9wBp2Z%iz=E9Xt;G1;xPBDnm^~-RO4) z5sxkJmH~Zl6z)j)b>3O(G5K4Yh46Pp9S!{8Z2s2}4$HlE!dphE5Mn2Wnkkx~;_YfC z7m6=ASW*F>Tu4;Rac9aEw8ji>yp2&|^#94w^adsQplvzlKkBQ0^YPOtJSV2Nn78SZ z?t*t4C_Rt5k+q|cF_a`K6X|}s(LqN8-T(?C$Nk8Zj_x~HTr@v} zT1b?C*;GTaiD{0=gSLEwU)OHwi4Q;edO)aLe#dhim&YV%PT;=y*Xqv?V4(eg@ILkbMKRXd@b z;KNP&9m*2s?L9exjBVKFDUJke`JWenr0mbB@TU5yo}2{iP2-ni;!qSsRPC(wbFaa| zqp67D&9k#s9}s%>Z0RWb@7SQc{9HwIB-}m9?kN**(~)nrUen47Rq2+lJVb~2M(%r( z^z7pPQw}Nkq~jmu%GH61yxXxerkjIi-8l;a@yXwpfgkMn-?!;gDQcudN!SF$D7&D(z5Fd>rS`*H5xQ_9Wyu6#fJY12TQF?LjjT>T9|vQ-?g zKg9PMnV2K^Wt;vAUG=WZTahrHjl0pD3)BeL3PGzU5D~w8{*xuYniP?N7(zxICX65h zkq~WsGzNfC5{1LK#ejhB!9;E!n964O{4B!1fM!6aQG9cczXP;4Whl}Z68>I8XBpss z1}HxS@f6QLtP(?#I%O!r)g*+R!I5m}|GV1}O(c}|!U*#BTSOm`7ecv(k zCTYA8NLJ)9g939uUmiqazfn~+T!J(DT(FcmZNF)p&yez)J*{Y>#Ek^uMoNm2W~A7# zM=HA9i~kr+0jZS6WQjZhbGWLt1iSmONMioGJ5mr_QCX=AGB7kWWDytFJvlw)b|e73 zOnUs{N9d81)(Z-D+d!}aBNpy!<$Qz89q#h?YL)NZHGyaLDtS8yyY~l*Fk_H0{+rw9 zEweXBlIsB-f|qQx9D466!BRHm{beVPVXr#<03mt~h{2!LeueKNdh!`y zj(oLBnzH}S&?DpGSVgbW{Vgpmnd<5RMwPdX@{1~Dq|1I~ERP6G1Hiyo$w)F%ltHXm zLcro=khtRm-%0lsv~Cmhh{rS@{f2*YiwgRjojJ7+vCeX6U*7n>*4Hy|)Vx??jZQJVxx!&d&e$ zV-F1_5XNN81O0+{6M*)H*T0>8+w?2T;bk(71S@33kOK=dh}Y)uYS3X_HwuKy!VB!` z8aM4m=)YSNV7cCef$~5AElvyxCdl3qz}ilHeOiAIMBEWw_$-kYEpOie@oV6T8owHJ zcopWbrVGf2(|yd?M!Ni>M74h_kQiiJTj0k60td^c6;tkM|Fkh^BNF zrZyZy#kbT0c<4{FFiMJ~f?nWR8P(@WJ~*KSW-59YSP~-j_XAx2hsQgaV?sbbjnqIv z&ma6KD%u+s{yD%dj3EJ0Iyf;r_$y+-z;{9YPoDJ0xyk}Ypb0PnF|}5S0{@5QPJ`H8BBx=md#xv8)ev?Re-d=H$-ixpB?NwH*?Cj|F(t+Fu>T{BP-~ zHz|l4DA%Am8NKgg@J+mU+WS{hiX;>1{z{58ASpzVcdvULUPbw?S)(O|8Z9Y#-xF2; z4@x`aIM6lM>)R(FuUr zI*BKAl>4`qMH2Ie93wNc^yuj5dk~|IvOMO?>d$Kk7E<)XvpNhk&<|(C!06iszkXvt z-v0y(FRJ#h96(+lxP1R(WUBaYjiN$^G`S?mfa7j-q%wlG{l$k5AA(vQm`c>+0xroR zf!I+VJ-pblAMbFqN`Aa6Y2pMFca2rDKDp^bX9{3v{!z$({VG{N+A}avrDFs#D2TI) zUL*#D+@hUN2Q9-SXiGj=@ZU06lEtK;&Xuw)h5ug^KU9VZsP)V%s;jI2zg~(ME)jqh z0pJ;R0PICo>&}j4yVAF-)#v|uZ-2-za&x~r3R;dWD&o4`9nB2^IF6pg*~DD_{eVs^ z$ixa@sq`P;zTfWAMnOTLBPjjySv7h~EE9MS!vTB03fTLDs}G4=L|P?ZzT45F_rXdO zP_^W6Yxx!jMa3_%@$r2CyUe|P^cvsCP(1+N z==1vpqnOwn{P%;@8%=r4P{^X_=5x&CuYi%VepJ!KgZ{EAVnF6DRuZi=4eQx-zVJbT zP5q$^#3>U>b=Q|T3`(l1QHUQ)te==t_}!SvLl~}!myY^>@@Br~K(bH$YoTP^#$`FN zy;21ohha&?T($q;vs4Fwy9oDm#nB}W0R{AGD$0QTkWxsX3*e;dp?A!8r#F0@9whO; z0ew1X5AqO@)raaSBguyKa;kQJV+J97!0ZqDiu@q=$<8eUj`$vO{MCdhGj?{&)Fec< z;H#A(u~yHvbkxP>N%FsTmZCHm3=nG6zP|TQVK@uq!Y@6isp;9L&*Gmi?!rf)WU?I; zXzOMk4a(Cp0~y35x=DUU$1N93y}M}DXv=#bDbj3FXR}>c@xImxm(LTu$a3BewUu#h z`?pwEHb+Nf(@JFK0%s_Z!*R9Fg9AhrMNU!frVRqm)?zbeV ztnVZsyIib;w`ia69Wbq8mc38XY~w$!dekMLmti&;uuz}L_n%JbR9nWqx(vDRx<5N{ ze+mMZZqtV|_@a(z!>x;ML6Rxm%h1=$|5DZ?@xUa0zN`{g#Ji9;Qb+m=P%zRE-QScN zWZ`prvHx)w{!c(_o+t^F2=GB~gPg$1rpg%ed|U?>Vt|qRC?>7vgC33$DUS^;aPR_f%+(ow%eo@$objJh}}EC?tYaK%i29X-zx^*h0xl$Q5WO zQnZlyN>x>Lq=?*|1h*;>(1_|lnxVf+Gbr!v@aeRCG384w9i9rg|5{3-pfc|_? zx>6yz8%#}krHM^I%?QC>`)A2tr-Rm5;6p%E>(2>(L`63J7JS8Mr53gBjMlOYPsnTK zTHgKr1C6b6knvAb+h%5)kqfjfI ziJsR5dgY$Mk2*I(1MaK<#rN{Fy%_;4rQ-Eku-REOtJ1)OeLqxN4-V=Y*ve%n_~Lq5 z0;Maw9#}Ia9^U%DF*7r`SKh4+*JpFbVNeFhRz61H5*8XeQ%j8bGbBOBx;pM!e@8Fo z@5eI)$i1O76@od>pZHQhRCrj*en4_Y{mNc-1y8X8Dld-VM8b!d4J4$^fuWGm2??5q zMs5lrwf@+IG%WS?_2(C^7ldg4dFQ|S&&U@J095ZV9)P$pCcNbbOitlm)rdi+iXQAqjBa$< zV*|;;Kn=TZ5A*u^`myOiqBfOIy+bZg-NvaQO!WuS{Jlpjow=@ui`C(~15osV@9f=w zi4D+mD``B420$1Bc(*^vRbqQ%*yUlalX2>W8j65hFflWmI}@-g`H2H!!$aQT#6~zz z(sbVbGsb_+!GFG*2YVA^TPc$;%0Ym@D$>^%b9=7VRytwL1#NJ*oWRT3fhdt2$L~5I zMt|17!vAJlYC6y8=Wa9zS1=ufiE6ptpl#pcEa=`zeF}8&e1iF}Vy=Jj^C9== z{ptiX9P)5SaEXf}3DO}EeC_BbGDA8Bv%VEHX(B9zxepf|% z6N7(pcxy$Z6H(i9U3InqEGkNwnKNzL-=3+URnLd$70Ani>j6cq5SCpQ=qr(D(16Dq z(ycAxj#)fM&kx_6`Um1eUu)~|cAY9_jFGoFeLQTwOk2jV%EH1U!thRX804jXa0GCS z96@(IBWRxVVPfp=Z^_V#Hl`>~WC57~%ifa~p(hyNaOmw`WyLB`o(D>#gP^omgwFy> zmQ>dd0F)0qK+@65rB#;kF4rfcW+Yp_Ut}|d`3^RL`J@OPg7Im3J5Eas;1wI`7~nyq zpnLGC5v9cIe;Id7M}s{`7+Y5J@BDfhF99LB?mU&cG7Kc5d(pZd&&8Mb3OEA^f|t_+ z=Lsy%s$NxukHppiK9p%#6)?API5boH`Y3sN9X_2;rkg!a8pGojJ`q{&esK2^z?FIN zm390T!|&}oeUm&>|E{;|*$0O&?X3!+xdpUx|y0{CW!^YmUrJ!ai9B1j+TB=d;o z)luf*$awyA8UudCB>9GtrU@C(Glebii;gAoCs+dLu&BS@Nbb6f_!Uma2~Z}nr79}E zH|>qB4rg=CtR>mIxmt~wOP=8VFq5l9C9+#oxt8HaWV!u=?!e8KQ?hkcmYe~;DUb5o z_udzpcusr6Ku1I%@UI*h5Ekq!fRF`%AG@;fBw@tHm5Kxq(cb`5sdmKm1s^SOEO#(^ z*qbDYppT7cj%ZtqpRorvJs)6STtsw9ylHOI54!a-Qvb4r6KEJ&Vmawen<5a(BQ?xvUi{ zL$K%qR12?#_-Cc5Z8N1w2^>K?r$2*F@HcvYeMYiOIJU%uTFWc`7NL4^GucVTFi@Nv zAZc%3j)h`Ps-Rc94!o4<`DZDyB)vtsQ&x;1Z4O1UQy-^2ddBUMN#h zQ1qhlk{?1C+pe&F;hmvy*;5#sKVOC~P4MhOPObrW@c^jzTQ~2XZ;#0nJv);8_SD`e z<{aaq59p+3MiVa;=`}YjR@*TEyb6Uczde@41{$iRmURl=?@BFWlWj4Acd${{RsxXW z81p${-=?WjeOs8D64fUvx}`jzdgd-8fjCnWBX~@a{X2}BKkLU>O%F1h#WmB48^FWxMmHyl2+n$xvowL^5Xn%0iIspCKZE`TB-y0HEiWxSTDEO&jqGY1A<`jr0Q#-C zJPqGt!cC9v`5A-%n~GN$p#v+1U`$YX=sf|s-#~+!knq8Uf6vD!>5}rFNG9QpmRCJ8 z?J(q4QI%7@d#UjnPIJ)JEAE??)nwPTa|%ZtCnBO2!-#AX8NHoWET84p=#R+s@qq~A z9A^79|MMU-%LBN$-fEYevnVfWxDR487_+E*=d-;DrwoQVWC#Gg}k zv~hg4sU9YH7ruGg&M2vp^S)Y`ln?ez2ndRHnW z#+W!Pz=d(C44#ivD8#Izqzj`fADae z$-CwffGqblxu0r#7*q3M52fJY&6=^jsB--*qDzMg#t0QkqujJ2Pw@`C3s}3DM1Vx@ zzUSEplD$=o#3%fOu}C~ph!Vb83N6x6ao<}WgAY-9rXT+{KAE_Q;}*riftI1ZR2W|( zxg|=oQ(s^7+H20#`E=`$0bOFmy>f&R3`ldfp z0t79SJbdsLV8K4+1AB2m8T#5*9?y1q-r>{npDu^NCsWgN+Q(X?-ni2Awn~go+j-rV zy%wCOaOE~W_WRyA0g9uY`n8ov^b15%ijV1p68iYWzMIZ0o8%WmgtLIOcfu+1@ zK-9el+)?z6N_Ce=vV-b~mf3`wcQ$oDmZ9mm*chM4UcsbWjn-OhTdwoA{rs3S=7`1i z_(XQTXIs8n@{z2*8qvN7nzqUzq`#_dMZ8J_eu!B6b_Mbb1wS2(3Zw)4d2Q42FWM1f zWzlVxZ-N%l+rm$U=s#^`YTuCI7&*zs8WwQd{b}QA|2}4ymr-)F-1^;7Hnq~)lU8J+ z?$`^Rb^2fLjB4;vC>FkvJP9OlQwUNg4Px{%Ho$%sV{sT&Mbm$%W83_p-6D+6&lB=i z8l*3ce-h#Ih^(1!f5;~tcPJkS0Ct2YZhu*E9-VeU#|l1^cxa8~tEk*CO3vdaW_Zx* z95vbPjQ`lk|F~5LK;Csthtd{?ZRWz;4Tzp*tlR_76^7Cbf?Zv-FsawDk9sBpc(0U!(`%iaRGfXAqajemGAPE6chsUDjDZ0ffgjU+b}`O z%9o*H`h>*?#1aoOUkM6-E_@`z{uGya%mADOcqckv6rbg59V##fBMG0E6lgXxi2epO zBS!3|^!4%nRH_1Xv<&X!3=3ejiT8uNhokzD(5oMIji5s;;j% zAcesh-b{*;ku2COgV9)lhLBEz%U#%#`=^}?r}Q!Q-y)vrm&o7yZ;yZM>=e|deJZS( zo9=R-aEH!Ww44XscTg~JjtBcf@7xm=gZR~zdaQG=_*5PO;C>5^6Lo@aqApRmNp<`Rh*%016yJm%nj$!t9tqTi2Xh6 z#1iV&9MC|w_{pFa2lz)*GG|F0(>wrL_n~N?1H4FGcVyN((xJM5i%}!+CxDG|N-tTv zile}8Lm)a$&k&4!)q%pf!&vGV65#+z)drJCK6#z5}c`8U5SnYT?>oSG`{hA4k4HCiON zb8n4GYN-lnq~zrf>Jo5rfWlXZ1&nFxx`MH9#Lr%7wZxRgU^O&LRfB^w!^Tvg;{C$g zrkZ8ynz~Q8&CZyQQ)@K-M3g0jK;7(TD$xWQAtH~o{Yyvf|8?A(Ioj+ zE$Uh;S3~hZ`|P^%ASF&fo!je(IT$)Ln|IW8AD|w#M?%ZSDf{vDj(l54s{TAp*gz}8 z%cRrhgyH%?l0+)(7wOjnW~05Y#Qjp*grfE#GEFL8Co$hN`=|@wd?3F_v@tb`!;sWd zpanDTaQIHN0ubsvL9QYYJ>aX}@s+v{e#8vH|HO^pn$p|sS|Jw3WR6&(%!3~@8?ODh z)&AYnalS}KY2#!*RD^-1y8f{~q(O%Lje0%&!!t}3iEERq(S#Pk@FL;Gu0Nc!i&_tA zu6q9naGlV*OdGE3>Z3k2gaxD}f;d>Tp%q8Oe{NGm93Kxw&R;KXd@=LDdEoF^SzZ7YEBVvg>Olq0ls=$IV!Jcq-w!2%cPQWcfMtNb*N?anZ{i$HtE5u@Nx%>JQgG z3^-dBd`ljR2ZX3DK<6}K3YI%fxdPHS+tyMzE|2i!az2@?ZFwS|#ruQ&-a#h=(ykzJ z(Xz0(q6v>&<7YZR=+bjOW&86}TReuxb5>?VD1Z#PQ}BnHl6i9f|w{S7pdJK-CT29`wg zE9q(WW^JJRtKOZ2a9#1U%V|Xe*#x0IpdY>A#H;&OR|U1@(uj zRbhXewU}x!WF%2$vK;09q3GhS}NX} z<{x&wMcEwz|4F$HIH%03;IeUhr$=EfNaH9W(fgwVx3wEdA1Sei8t?d!pKu52G;nVX zxDTx^tcZr)(G@r}jp9!#Fw8DgrYc}3H1-`a7xK}4;%(EIy<#DQH1=)L{X<(w-dmD@rLCU$peDDT@@{(C*GQt|@1(`MG8UX`t>iVH&eQAlwAH%) z{1``fk`Zdtu+9x|TMaWU@RQ~$5~TFdmFco&Uf3fQPk^Q(04{8?uHF&q4;OadztIwS zh+}S-Hf;a;Hvg?*W}bOhXj-jf4s%-{9X39hM646uDfz-Dy;@^HP1$VjxiP-XGd3)> zatP}cRDh9*o&_;@)$!RB4Hkpnmp0bA-=Y2Q4b? zrXQzV+==%7z>gXFV|td(NLi1%t!0gs7gr!g-6}G9QXhthoo;&}qM@tjG$LzpJ5VRc zo7gHpLta|)1cNW)&H2Y75vi@njJpO!%`>LS+Zz4yMN_FjV6h6H_`>pe&bl`D>zkbi z&h^QYC{VEu;Cz%c^*x=nW zN{6B6)+~DEdv^FEy3MtP7`DFqZ$Jh_PI%M>sQqTxKtvLqOBT4f@pt{qqym z3tauBhqV7wzuF)G`XJQ(s-4}CK0-tsNEU=M_5;XwGg1xC?-{4#;p|##bLQD$kDt?9 z#AM=929?K9T#^t-NzO(u6DfyoFwd~n1^Z#%3&DyeQ_w%w=#C`d_hpq*c_UM2G*Fbv z9-JJ|?k9Ap*q|(aJ|6oT3u7ns(8DayER_4;Hxvc;R;2=CQeWYHOp`_$w?FQ1qkn() ztoa*!HOXCZhqNO_;I!RA{^!%<-yRtjFWS={3nUUrIDpnY`xP zoRI5Y6|ZRS#hmx{IxGf0;jx?J#2bE%54DhLbe#AJb^P}`BWnCoiPT&B;B9K30iUOr zRQed!KwOHU$PJ1HsoRNcZI&mjwVGaE0bhU53$d%8|9kQ3mvBv0L(RMCg-HYGHYR%79=^JX1u&Z0}O zWizI39tgMR`=DFTqzA{{4ldsxs9%s12JIfXp#0U;9 z;#BFTbAA8fwZXhUQ!drggRUn<@^^KLLI?2u<}aHMJ##rv*3upuOg!?BG&RCB5b*Cy z-^4BDppJN&b$W@%S?ek@8Jm!Yg*ch7MS^p=@#unK93hNI2W6v6c z?1rS`4M6$PAgHLm5QjbNhf}mX*#UvPCJ7Aj7xKkQ>#@jBjW4#;OtZo$gH*RSb|>Qh z;rH#J!w2u9J8qMB?iyjaaj6G8zRWVux9EZq4CmLsWL$0^_x< zNu(ZqglDZ$mmO>NTtP!a)kV|VxLnfvu@0b34m#&_(YFQNqNJb+WxIqCiU(lb2Z@yPt0LxzSNYMgp3Ua$k#KBgl)>@4R*^E`Nk zNg-wsj33-oO1602)Xpp(67gX!u-m5Z_d^`Mdy2@g6U^;g-qYd2+n)=Z{V?@WD@+55 zSW#DjV6gv;$^b4b{WhX(m4?<|F@(lX!*Q18+BV|n$&%4&bMY_MOTgI~^Ugont6$vs zv}WutsZO@s^SD27gndI+qB}haE=(WcrFU!?{z`;g7+h$|Qs^?)lYznM{gczMt?j~( zTS8R#Oz!l=ETf4+&NsLklWy~AT3$A&po~4f3!zaYBlwl6;`FB zEz3bn0!03AUK&oV^!PsdrC!dr{L@N&j?r?N4$3Pgf9xP<)T{V4m&uh4M434Xr}s>~ zY}yoGtzmCV;?^h-rHG}DO$IAPI8S3!f8gdUDF?Id!k9o`;ZrXVloH1y;I>E`sW9gk zv7zJ455F6yyf)~4!T4eghPs3e(ND$oywSw>)^h5qpdZD>i1aGyaUREw{mIdiOuAVH zb_GgF`Nsms?e0kNK&~)MIzuvViVL#XW-CwSWV~w;Tdb60mhG&4$t`KYO3~jPcRFOs zdR{aRb20o_l|@ZUG|h=CV;vgA`~_V?jTq;9_WJ)}|&R*z>(%Mxs&`c~9UZhDTvda5RQ$zRh#Q$g!x5A16?!!@!Gx>;a}C zO?is3_vUnEKFtnXdA-#jf35QQjnyzrNr zkf0kcA>9oY;fvrV?!|Eq!rG4pB0gT-Hf6w_F$c_T^VcA|nWWDc?9&)?vxp_jeBI?M zB$Hji9rWNfru+8zQPK69{#_Ak4DVT%dyJ&Pevqvz)}y{0oV@w63aTmG9>2}B&o(>v zNB;n<0ErXAM--X%8w1~dR6_&s??stG;&H0Gc#rwzU$&I_ezB+8QB+-oqGU??5z3GA73;aOcb{pZk1uV9{sdS~x8qV@;A-I~k09V)CUU~0`i#?WdF zc>XSF4SF*72!kZ$?aEAl5*|)+TwkEYaGe9yO0NcencmD$lH+`5pPV6e%sq%s7!_fj z)*m3|_pA|3O0WiUtgBf+Xpm1;JnN_hF+1M5E>cT;K4o2*$+4ey%6-zISqn4PvbX#= z_xtFN$HuP^;2jI&B<;P-F&+7ORr1sB#lL%DGIz;AD$_0zWw*1m!l5uGXps!26)3V7 zM%cF9$t>Dd)D|2NhuOT-Mo!G;v;9(Wi^R!@Re6P=vs`~)u#ksQn<>)b&&1OYPorww z8g(_isv3;^d`M$Fd+_zII-EWiKa~&-@mSU2_xw%iq(v{q*x+#-qW@B?&%RF7EK;uf zwXeISsCRR`SKPSfJSJnYYaR$UFi$3&}Y2}+tA4e-Q zrh!#)2{|Ss!Y=j%$R(N;gi>0R-m?$)g2va~v-LV~Oy?}Hv1pW|4cu!w{e92yb@+ol zskdgTDp6%La3FStjmn1=Y5(zdiC4tEyU^5~gD-AS>A|sBa2PpX>rjM`QATU6FAVWs zD7Y<-HT*W$P?P-O`rPwB&v!u5#OD(u<7foLJ2d}_U*f0lH;8m|PjRrU|0~h6kkt;t z6r!kXHy|5!u$spF>yb$>y^?7p=w9W~dtWiHEnO9n^}7qo-FZxpyTo3S;(RLbNP_s? z@<)*%D1UMPxvGFTu%8SyrBT*Paor~TUtGQQU(@m1HarkvgfydTz~}}+q(+Vo1x84t zAfR+hZq(=!lnzlsQb1a|q*c08r3Oey+#j#&zV7GxKL5ae*j_u|=Mm>|gj~FK7n%*z z>JenIzHoV}v_Dk(EW30^>0*;dL3Niycn3$~px1&GGSx}eK|c2a5SS(G1!%+wOdaKFi}EU}O5xEzJf#cN{^m<{^8M#@eSJaR?}u_yjjpkSOSrLa@}$r}UY|b$f9{_;}jshRQ7^C^19#qXhALmpDPM|H%Sa z+@>Cygxx0pF$RZ9(D8IklT&Xp8{!W2wE>Yp zWN)$pJG0W(zFG7vb_ZJC0i5*I|hQ(QbKRJgGTe#)1FuspZCfR3*a}Cwp`D zkvsTHMt{_^9}AyrST9(ke@(Ua*JUIsZ z-Uz2MO;C?qfPS>+^Z_(R!<(mW7TZX(IzMoBkGGbRE(+a?)5p1yQ*-x6B{`_PRXL5{ zL0it|i|A<_)}e+`1~IU@L$fZ%77u)n5C~zEFKBqHRhj3~KZ+s#Ef{m?Pw?T{)%(B5 z1#S|EY84RQEp4upIg+mcl-r+Iyq7n$)D~hxI!_l{@w+ZlQf$B2APlW+^{kwJHE_xB zQ0!^RUg5o`EgY9x0!pQM=uH9}_~&u?Be?>L^NeHC(KnL(o~gsS_j6xNzu3AypZiDr z{tsc*2^Mh0qZ<}&P$a|E0Lat6FL9njC)A6G#>-_QO#Q}PsT#D%i3WKFLVTb8Z+GHE z;j^tux9++iKNR|A7kG!1{*bT`*>QUjC%q-#(q;#RYZ%a>A`*E>b*N>~W`5^CIt#pi*;TA!mc}0{OYfn>3)8W{Ru{liqMZlnz zrD3e#MR*H`^9%AGiP4{G^y!;${|XOIE52u5vMWLsM^#t~A13#)KzJKp9caK4o3OI) z`Z92yQaX%m{v@{kK0m!xp}OMXaAxlLjBBJ_w$;Z8WkpLBx*}V|z11v|Zfm0?Y^v27 zN>*zojlloi2>m0Dovd*<_|AnEtJ-aJM0IqY*G46|ny$HwDyzpJ*XzfBB3_U#3Ire^ zGp|deSlLb?xb{Y8*hErN1&%?C3=vpNnUA1N){rMc@rEPOh%i*dbl4bwyC(eWAcm5- zM?Oum#`;=Vfg+-owM1&@Eil9?Bgy=$^SXx7h^+asruC*#-HOwkG~^zCN*QOT@jysk zz=U&G`S*Ze125NQ3}I;h%ep{o{&nYD(T5|sQrxoFzr#g5FO0fiF-F~AQv}n*<2hoNt*7Z4tW;)&3yznZorAR1;GGHRLF2itX047nrv~S4Gr=xJwuaw7z;@tJ z25Qj{cd`n~MA(a6+Ydbl*rST6=Cx%dDP^>@kyE?ERIoRhB(dmArT#Sdv)mp{xvjU0 z!(oou|5gj8(y@3DKxcVdWd_X3%i*lge)1tBZa7Ekb;0zhK;{vU!aQoOa}}pUK>lv$ zrBJNd=+|jp-f_gW=J3i0GNxI#OO*4;mMj+^ll9E*RTNk*3`$a@wCjB;9u|#r^os88 z-FxLj>^w*JqC%B!L3afLsDpDfwL$jDxUt&2kJqbBKMyy2fHoYGFyBSJ5eo}C1Nh>K z+J{~2W8@j+m+%U3q`u)l5YyQtsJMZTC9)U5^GFmp+w~9X3Fkp^Hgp&4@lb+A%t*SF z$ie(I5*#3v)=rDcES_VfrIPkHH3n_6fPAC-b#)b3abv`{HU#Fq)z+e?WBaZSyN>xFqb4;OJ!wz{AI^hT~_6Tzw zDv3F)nz*-l4OpW?XvR?0~_fudt-JMFEd2m{N!3>@`>Q_geUz%h z8$Ipt3gaHKjA9`mTrL zj>8Vo`&7+GzfJa=qL%LEa4XI1#QOQhNZo(0B&Qk@#(ENh8vEWc9YXRUX8is6B#8Ki z_j<=-qKd7@ssUWj7R~j7;;D;`2O+^{#+}vosl`TnMxz?Ln&H2r&6`}#`2SH2drsu**N7G_$kQV7xTPx1oO!9k)`Vm$#tokDzCDU zYtGsVQDApN2f&KB&C*M1*=K z-Xf5G^Hz*o-u7skZlb)apv>0MfP0GZA5dCRS5S?{&J04 zZ_3#62L?@hsrDLFyVyx&T;SmL&&%74kI%c9%?ZT@&5SY!BE7f^?ojI$igd2c>uwu5 zrJ5&@*w@Q&wO4uKduxyMT!R48M1Z_AR(S%?<@d+8+W_nE;@zyxw>tomxf0O6cx31N zeQ(RlYtFMv{MJjiW$EpuI8HUMO4gk@IWS+%hKB7?UEy)rM*U0`VW=p>*RgWjY;I63 zopQ!sy1-ifd%c)q03a$Pl|~xq~Q6q!^%U)B`IqMsm?+JGNlfaLyk!mISxZL-$e76Gifp0V(5KYS>tE>s^%#ZXNPhwiNUl zXFJQ2W5o&NLYXm57yr2B7}c_KjtaT9#ypQ)TM2TCa-tE<9w zrDPHz6yXO0sFI*7redAhy@z7=FPagiT95qnoY`=OsYMl3{6gHnYlb|`f@WK;%@ms` z1ApRRB;7?VRc z2?!(sTKw8e(eP1j87eQa>Nf-QO}W{k^l63Rw@5E%OUgLQ4= z8Y+uA;Brf5S(n2xes;BJRpAJ(b^l#~xrKl=ydV3IFnBs{0g|VGcp|T6l z&1$^B@*LzKgGqhlbrMi3A}Kf>WI-*Edi=OLSQD5=Ll0fK;L72+0v(cfHFc?f%-u3I zl)<|7UCNG>3mDAV4J{3Bu#{{;*~P8fmnbS-1f$33ajMwDFNvV8olhi0IIH8!w-Oeo zE18=gYGq$1gDy^jVKpp%#wCL0QCu4vGEFP6`}{N3iyUQ`Yf`dj$*FLy8K z1xdt>3UY_O>*QobZIa1}Y0n=SQBjt{ha@u2GX;_a1aaB+8e~{CwU`sHpO*qjut&zN zB&1k~#Za{z;N7nqoxmUbNiVSSm_{Z>yLb~ls*t0GZ%Zk2b|DzJ%MG^}M-?yp9O$80 zwrvP|&WZeLJ*hLFE$J~|`Rw1^DfzKFO%OKNcx#e*bv6~4R?ri0F-pr-)XOVJxQy5N zvs#I7{0{{dU09Ot^O5g?&Z;L$+dz#vc2O|?81CXb26#QEJ?MwJkQ!gk?okpbDPUAz z@E|#P=-Hwb?QP5v74v=J=qG(sOzbbCi(yhOgQ06-wMv6xanKUjc{B*D#*?gnb@=Ns z7Ekd6>~cy@oN-jo<&(=9`7mwi#EE=}0&S7}*qz{lxa%#dHi8_H%Y~fp8iK@1qkB-?I%D z+U*i!vRA|k;g+ney^;eef+n@nns(N)cDd3AJYMSoIPUtX1ghQ{p``CZuivfX+%?Mekj@O#jJl#}ch-bB_?#Zgh1Y3*!;dSOdRDYoVvRa7E z7eHBzZOTV2BTZ2^IycOi!B53m2mGf-lvJP(XFHthHB|fhw!=^mr~Z(ZYj?VJR=l;ZljM_b zm%F9U9==fe7(o^u3`cSG1?_Cn^|M>l@#y*wmA>7+0v?%$PY$JbAfxO8X1&p>b#Auh zK1t=qfCM;%$1z#ZD)J|xzg<%b!_^2lh#z+tWo<@^~`^ygswfs&I5}<16QNN_q zt6QP6ai_n;&!r*U2T~NSwDSgy>*G?#)xFHr4pBpEf|^R0OovN7rxW2K)+$hw{uKwW!*#pY4hbD9o^)tZRNlN{9- zUS#F5P&JQ4*}ADw<`~s}KHLcd)EM9XCTz-78MFbTKlpUmRd6*qG%76*`(r+9$nj@> z&>t8!5LmrON@SA@HazC`pHsxiLqDznZymvblS*SViP|GGPkxHmsoVXMOK`85IW4BT zWm}Gcv>jV`q^u%uY8D|g`sJxqKmtg9QvK{CNL8S*K2-KH}xn;1< zAsaxBXnUTHYiUxCmf_5d12hCfw4SQJ)%SOX z2P#YnjkWQFq49`PRiqI+oaVyWr-~7;Q`)NajGX#y`sbfk+47f{0$y`|>+$RJvk&a< z3F1Z~=o`BM5dL+EeHC6j4Tqs)Ra8`RkK(PNs=$z_L9rFq&pCho$&zUaU0Pzdj*C7+%2g@3d zzRzQS75)E~4tqSh2oaX>dE7IUsHA7$z$6h^^F-bdZ!FaMa(YZ zWl^P{`xy|`?|F)KZY@mKlBA2cHk&FEMoBroFc7BbrrZ;hx- z#^(8YBrL_b7uW+=2*e|TeeS%kc0Tm%hRwi+eXxwIgTyNLlWXbv#aT&UIT;i-M!olS z9|h^=t}xi3NOEw9^$6<>nl?TV;pk`FjUm(W6kr;T;@AElC2J0Bp^pr?WT0OO@)hia z(rTksgXvoe`4z{dct|G+R}*_tbFXlucAh-r+E9oqDJZuq;Bx8?U<;06d?I)@p`d?| z`Acw8f&X4yR19$r7*DMv?A(lEQagAirXVYcY@qpfXlN1yGF$dh@|cXB@|8WykEb`| zrll9U3rc-7$9q<7r?tQ3=RtW5${~%xqfo0@Zo$;s zwC~022l#}Cv+5~i=93hzFb@6-YPENIWJP)k-xf64!?-pToYJ=?h<)DYO@%o?6}zG^ zF{ng#>*{Cp z*&S13sd9vYb=6;hrKPvePu+O%5PeEtaYx6V{>10?!I+MeV1wgmlh^I_*+J6)8)YBL z&p0%;`n&szmMG}5=!8%ORLrUt5_b^Pcv%cE%L6iyS@o=Yrljy)w31i`UyuBPiF*{O z%5|L@iutmtb|Y@>lVfRwbo|9}rlV?`fH@O8CGn8#iKyzURWT^Bz2=bq#zw7}GQ~$# z-Z&|*1S<+LbN0`@Gx{%hoQClVE2wApC_#3%mP};)%?f9q$4VLqgL@bj}jV>#b zG>1`V3?1N%1;0iLNOOK`dNnfAoyu7C8`<}|s~RFgzJt;sZwnKB>P9}~sr*)^9pE#d z(my}mm!cY|PJ57Py(`4hZ76j-U)4A7LTgG_p$T&N155>*he+ztcnGxrv>13Ko8L52 z^185%6M4eI>1f%J{ECC|`tlAck8+16xy!HCUDpYc|FI|PH%Y+2xPhfnyj~aMhoY%W zTCX2?^I5$fp3}K9`(Msm0G@QRadc)vp4{_%9@nb^vKN>;5DeA0Gk^1(B}O8@(dM@@ zg9g6>UJjmukIxEy_zn6fb)i^__L|>=jLZQz3eeW@>%pwB3Sqh|Hsl_XlRkXl7{=yg zPw_OnVZ=Rxs_Toe!ijiob2P0N#<{BP52gPLa*Gmm7o%ZZnV1G+nua03+x1)3lA>Z> zYA*J5P-wwG(T-%jTm6)n?Um8vcSGvw9J_W*y3E}?M3~dGWwBd6#wCmz1T?|zD3o0r zQSnBvO2pv`Q!N5v#&3SP_a;;~<|4G!Y9SS33fho?fy#v3?U!CR_b>@~HiDg6PA0Xc zJfpLbtSGPdi+3jpFgFIbvoEBos`M{al{Ow2vtuS1qD*{rgIDY&=LvOh*qJn6YMR;B zeppCjo><u^@h$Ce+VPHLdv5?6)NEw5gV!@AgTSW=L3A}y7{;bH!8F!hT7FPC3jEVoJ(tI*5*MJYB*|26Fb{H|D!fj^-&y+6&4vKyUSNwQnR>8|9C8;CcaTM^`G(J>aSP58PxM! zpdm`6yiWbtoF+At?OG4dkgf+>Ob<`4nE>~@cgykK zx;A8GCp3pLw{O@8~ebLZ1e%wGD$Jt&II2J`Hq zGK41B=)b6qYuFL|kBW^Y%$@!<1;_v@o@@vcrB4q~b4itk*Pc5be4mEXIEJ ze+Pm5zd-;4Wqe}Qj(q?1?s{P}L#i*PVNS?ds^9SE?SK34|3`+gcB2UGyt9m#0|$uh z{dezQE|h1JE39)uBG}1MbRjlOu_s5EK{Y6+O#$;0qONe!0r{Gi6F8Ra3`HTFWV_1K z%zH&e8vd{^3uOQyC0?p-h|FIOZ#3MJ_kN5`Y+|z+yv)!3;_iRevYcZHDS_{sJ-FEv z4$&Yq!FEei1rb`!^tp#A?AnTQ1bW>Zhc%eh_+PlUVU$f zChKax?^{V{<2MItUseb_o{HnH+>=@$|JaHhlHl3WWS`lb(lRYlpWeSa{m4s>PHrMI zCr7*fuABT5ceBoj-iDqpiPaaYFyU!e2&8b#nv@>Ooq?U0VE^3^+rGOR#i~o&zDnBW zT2W<~i5g=P=F}r;Ex1#(U(bO;??+hC?4m$m-?*U0H^y_F)bn_02C{c_J5c8g$smIS zCkKzJsp&Y7A21#5`QMrA5EB_yFtTgM=HpGF^bL@i@9kS`ENhW(C_wJ>8t3j7Z89e9 z>#jNhG$!BNo+*fObKxxAZY-2p5-q}S?B>fH4jw~00x zPP^Fro3xCr9C0l_`}<8-Toj=ARgF($C-2=qYEVnU!8C;MV~5*h!;%uLmnhYft%g)1 zcyf>BzW4B&Ta{n!5RHsyZ+Lm!Wp?r!FR@vp7nK_|eUIa;|-_ zS6}36)?UYAYBk|BuojGqz55HCyS(;ac}p*xJH(=$p9+8JYoJ-%EN%Q#gtWJomMFYc zk-G3Dst~52+bj5x(At#G65NO#;xAo)bw$#mc&>h=vb0;5%$>$d{y6sVId_NXY*E|* zyeWQw!6^C_%Aog&HfSU@49o$E&UL9&V!Z~^2Vz+zWfLp=C869C?TQxgp=c3V{%*B1 z({T<;#(fN)s^oma_>a_YvXF>sGx`EOWCQxSe5)U^UWHxZl`vJ>6x8^WGVq}#YkouE z(2D%1{Kz!ZoX65>Rnd#UfxJnxWL&O$vB2zepeIFm6ee<#-GG)43J%kzp-k&?+?)}@ zIUId>piTSdFqlo$rYim1u5p@6Cs<@xkr88kkF4Ae9E*i6a%Xs}vfz250_cUc%dw;% zZdfysJn9-&uq4(*nV;`Z+;4JzKsw{2oBiz9LYouDAp<}0mkA)o%J+X{tbQm84>{qj z@5(#VrNW6&1G#MHJn|`@zUEs-WrFCaglNe6pSphtrcNGOcME#)zb|#H@$m2Ac$tl` zij_uL#y)tkl|&Z^iLVJr4qodmv~;;hRP`L8C{SOg{k4Qp)*R9BdP!c-Cd`h^iO@>% z9Ts0u4*z>GmYU-RdEz{5ojYizFjl=5>Cjp0R$a*5%|vH9kx{0)Pgteh`R23eQ7j^= z%X*d3Gq+iYxM=7V5YB4Bpdu3e93|*-d?XUtx{;!V+b2zquu0QcVje?CInW(kqJxR} zBmW64X=-cFO$Nv|9!?ToBs24a8ZLe9wQfeoGj)`BMMTR-h)O>M=$U9TCZ0!E@ITWZ z8C)E)mwVGC6pc~!(UuYJZrS*~rkjW$f&4VCuTO*hSdD;OnAAsaFH~t&a$ZVS?o>Q- zNuiba^pH>0qz>G2nvF+>OIS^hLyj+y8VaVVaJlPAA@sQL>i&HmGlMuvq1e+_a)Kc- z3KBm{fQ@vUBeV(*^kU@RGLoW9-*AhepdQ4qTwJp4(l z_w|bP|B{zEPkx*h1GbVr_dLSX+&ZAJ0A<%5-f{JTDPiNzgb?9j%v1*?_qsn~(?&R; z_P6;m1+1zA{wASx^g-Q+zk|PIg#}t}!*mw!wM4Y4%FA13J`kF_ET3wf48{TucGGf* z`+4s3O%*2Nn`|<9d-=InFja}cR9{*vaeo9sDeYvH&znJ}d&mI-DsKmfTe_YA-{hB6 zYlmnfmP&9j{M6g>a`N^496Xo{Y?IM@qlA{xh2WS_VK$KZs=pY?yuNG3CfhqpCQOrbVM=8Z@BRGBqsqQNJ^AMZy z++!!8Aw=1xE%KD^if3rh-%olns7DiCSW&Xqw4Sh9-A$@hWII7L-_C}dEH5J~w5k$e zQ?v=I*4Dr8Y@pEr4i)`CHtfdNUntQx&n5*WHe}7z&X-eM{TM7&zIQ~cC2ni@yCMD9 z2ONrocc!rHZnkX&P3cIva?KewLeu+BrGyR)6Yr8?jRgSjNA2@L$aMDW!GESo(=;9q zPiG9nX2n~Q5?jd5^fePp$Cx*z9}PoqGm zoqU}DlfYN!?9nT_X0ipyXOnYP^|drnDzHzS6cAHzGQ!*Pau6EiQ`ejNtExl(8~*^K znhkPV&Fo8qz+zHc^~t-+k;!2hG1e4zGO?CRTrdt(X$y)3TFij{m4ZEMws% zohCO^_9FeFTMwZ49!_eMl1%_((ATn1DD;lKW?TvTZ{4UD;eQXy5yZ`g$qQH~+ttE> z2y*_}*-D;k6gRx;%J%6#pl$^>ICoj;@6&>@2QyBXK>-NAs?I}Xr_lODiYywV*4vdjh%$y+y|!A zT3!q(p)f*au7ti%hp)_DA8Y1g2TkQ`H@RlE-vN@AILMq{2X*5-- zYK2DV-V_OJkA(33_F0vxvz7CjGC}#uhO|N@0+Fey=v!ak%)d1p-8&2Ynx3dlg@KUN zAEv_I;+Gp#-w>hdK@!@5vk4`um+&)+Ou0ax1~cV?vFrzR4%pXM8O#^>N@7!GGz+2z z-5K3fs(^J{Jf?gvw)2nNf&ZAaGep%-oSw68Q8vnDoKIAoG@|yK{R@Mj<|s6&z#GJx zVCZfr9ISYMIq2AHSmZPR!&(M`2KhS^Yu;5_U_-eyfM+DDTgi{23*(h~C9B6 zCMtJ3In}j8#OVECq4!G`sEH2q^cn3FuL(+X-$}KpQQgP%kv^|)NI7XCY&~5KIW9N= zJP2#TNmd6u%MMhyA7U%_j%^g{!+FpN1*GA%L?v{Z_Q3*5>@Rs-i_do@@{9&pdJNP& z)=g<_t&Ds{amdSaYpJ7dkuREe-*w(!0dG7&6dS4by!UHaY+aUS=AptgV3YF1T#yzq zO0>+R&3Uyqb{6>V7CRC0Ck13B6G;kKQ&s)(8f>OVK~?|ICG?9KPKzSKeMT6U&51p) znCzPBz#}XAq{p-3izvhyc9Lvb-Tk-wFO)b6Yl6n(YOG{Zya8tw2h*#Gr6v{;Bh_|%%nw?IUU=!eRohbkfXIUEoX+hOtx zzfU^CXT#u7S?9+$+GR;wLH^2|3LG`^q1C-&#$*^&`jx;;p#XM|)EMUz52msz_wT~C z5Cxu{|B`zTUZ<$vo3>{Tds~?=Z>4bm10h7jfYx1u-L&bZ#2WkQ(pd3i!QO4u1ChT^ z@CeCmO2K_sza!yq(&Q6VyXYu8cJ#P*=41OF><}Rx1t+Nk2>U8f@w!A2FsPO&sr>m$ z#FS`O*SBQBz%d|E>XDK4+$=Atyqezp{q0MACF%LR?eDB)GGQF&c zRecrL^?n5X(!gwxaTnKo*K{V=*uKA&H5&6~y*q#%qIA7a5$(9(*FXRH5VS zRHmd{X`|5yO}dq@1K7m`XP0s39T}qAHz6aW2U-G5n!5h8Z@Vxig3G~({m2XH1OB{w z$HHw*62$)4JSJmy99^^H&o(8u((%HtTQ6qp@XqB$k4Oq0Kw$4}e)%e&lTJKHA9O{} zewC))Vq^U~tJ@DSBX?*jL}c9mmW^ES=6!A1cq z3_cisx(0N?HtybMGTW`#=CNk8IQm+FQPhMNpmFc2)`CNMs7oAwN>qtnR4f9VR>S}k z^3wLMPnLuyE!6?I$T3jkQUj@+aq5y*Zq(Qxe@v`F;^2~OEg08J_wPu`SaWIpGd68` zNUXu7Pt#8TcMDwu>fto?NjMHKB)uy$|JiVh=N?ADB!YlwVkV_Pplvnr+rW`{3H#E` z>%ePHP^^G@t2&dr%H<1B7UF9+>a!Kaixl~vZ782&M`yR(qU|Z4kN(3ic|uLIBdEVs zoxmAy)3`-ms)6DL4S32f{wPOQK%pIzFk5&H!nWMIGD)3~c$lQV&f((yC24`n56GND z29F(aVowe?sBc3N+(I61VAkIy#LYmwSsA93{~ei7SxuLiT-7QP*4KmY0mPjo{!;Jx zejO{2jU^RtFWys%1&1z}Je;VA?{Q6zCNVb_I(K@CQ?0p}INbRAtu=9|D%VEfe@p-> z9Gt%8E4tEH&_L6j6!PyK_VKN>Nb40GA%Y`l92c2(#Th)@&Z4m1U4W`@I*xZG%yB

dyO816MPUEcaPu~cJf=nTPIJ2%xu*-sReavrRv`exJY^Y`9}UENRLE2|_%+icyMZaaFn7i5rX-nFlm6NrA;& zde!zd41JoMJHb49n^lYs#ntn2DYSjTP!ou&`&%+b1tW0iic(Xp8o}trg<*72$IWTg z6c63lqn9YMVwLz+-j_cka#wMfXS1H=W@Ru2ara^Qx`W<$>jcm}O1+=-XK8+SV@f-a8oL++gT~A|Z_ie;ZIQP!=ec5I%EpCVwaf{6(}?E#3U=)N8)NZpPngr?D?-2{=La~Vs-U1 zf~sSx_Loeqtj~#!&FXT$xwwJ+@IXkwQW{>SL^glkp9qoK-*nwiZi0Rb;<~i;l_er~ zg5W~dg`XdVxhHxjBCAQee2jjo^pE`vSQ_(@d1;zR$S9NPUl0=NkTrA3y4-X6!%E?x zepfPw1t?vrREkQEX|GL3XxsO`8_pW(nv6v0a-=F!wy#cSiP?~=g+M<#lf<%7o)})5 zery|w>SnRTgWaB{iCla<@a4Yq=qcy-TV1lEVIilBl2ouG>weqWl9xCA>Nwf6+6NGU zHxp5%3W;6$6?@Uw+G(B@CH=098^U1bTBwwPo4$P1hs6>yl&VFgnK6s>B!SY=z|d2| z9&TP1Z$0%~c%f1Z@ zQ(l{m5{mmfFZIo!6_@W6xJzVuPpDFnC21ptl zp-v_LQym}(zwNa(1-l_XU`{P~l8&^NOck|mfPU(UTJ?X^iJ9ip(o zMF(iG)E`D2c;}{RUr%{n!RhRN6^a$K_u&1Qfim|Prj0y z-Rqk#SeAV%Oe)hlhKaIqP7sk4RK?4!kqa8|BjgXKtk6laf@L`J)0O_a_#a~oGs@^C}@bHnEz>DvHjz*so z(DgaisFHRW$#>SqS$gy-gI}Ne zxq)=tFSb#Ql?-xL^^^Iyz4WJjVsT$4TzQx-oV|JkWmrn0+!>oe`y9n+f2jo?g^~1h z(@^19Vq0qBRn8T5=Ay0*)1Xnw;x^NmPZB7vLyivj0RO)5`+YUVRC1&!HNvrRtt8gq zu7)Ww!}C3s58MI^YQB;AQ%b_A{h`m|;%l$A_7ksCg;K2S3SkL4Uv76 z(EW)b1D04~z*v{+yy~fD>!k0E`vm6_?!}gLhn-YxNxgavF=JhRI7u*};KfUh4^+Y4 z)!UCDyP=T*Z|$#Y@{;u^GnckkmxBtW-R^uyQq2ZmD(>(42h{b3oR?Z;60_?R*Sy6| zPB~+e(|Ne7LJ-*z#s2H`vU7l}}xelSuz@vHGWZ< z;|JQLLbUF+TYBX6M)Iw4_!+i^zZ-$K~a(*V#Cuf+(j~0QSX}a~S zysba{ZI<=B49|<=*1i5oIqRf$lNzN4eBQ%7rVNFXZjYaKtQ6L3@w!0*_32)?Y#yID zf)sZjZ*`XxDXNzYG^;;6BEjSZH%uYT?Zx;Y0=2&ZoIWckvs+Qv>4C;uvkJyde&%v< z0;IKQk4~o3Waf+#r#?D5OOKIhUpy*i%i)0KuMwKcR3gWsf8pgIVZ?SelxZ4@KcD{7 zMyZ}l-W#KfV|lGz{KxFyFdM~mvl`-2{t5v&&sC9KRy&pC22W9-3~^@bcy)H0+C298 z!-XCWV`p1cjk;<_@k|#;SaH_hW`&NGaN@~7GNatf1_O&!29cGEC9FM2lka15yyDc3 zNico9Zw8&kq5N-Kc%}&Hz9rA7Plv|4bMvh;}b3fohGc5b{+>NTK&X3Tle6) z6<~AprcGAE>jW<8u*%Hwm2D}yKSM0~TIW$1;8>+~x!!3l=m|_ z>&=N)50y)Mn5foCu#aF(i-0UT>CUw-3Rr`JAn5L5ZVQs#G%(#D%SRZux4$}=B(PqM&J;W$(Hea{1w|ad#U9*qeh$mfc-+OcTNx@2V z|EAG*LCU4U@S^OGdqUI&bWj1Wvs74Ccv#g4na+~kH3Q;KEmXjF13mct%Kme%@A1rm$KKO9X5)Brq=>NgXVF=) z{nhgM;pt*0n=f1aDBxbNMDA86Xj5=T(mhxHDKroo%pY5AL(+rGU3s3$=q5Nn_vpn> zKc+swhQYxvKYLS11OHI{cfTd-)t^~zbJe-nTN`(bSe8)-Po_Q{d?l7JlqXn*qGHU6 ze@{4QmDr~3v@h|1x&iSbY0F+zXG}UpSHQVfr4jne`RhV2o}z$LO&JZBxi+|HIo{(Q z6cY`1Hyau-2a=?GmE0}AC)lQw+`ZpS)_`@4bQgEoc~lF=qcpI*z~ItcYgK^bj|)97 z6D!yfkG_c;|0tRf;(KTeE%F*YBN$|iHBZYhlQjbXRHY1`?qvsg8V~W(GBhS8&B0H+ z-4^{pXm5c(YoC%~WOPY_=+Y^)&N?2cXB z%yWOD0_rK`ARZ~x%mqa&EJcZrN^@8MNjK}*PVpteIW?aHMcScA$-#oP;Cl7+rik#|veU|uoEiOHcM8->^(J|b?P zJOy=Dd<}!HbAw%W!K*bdkw2Vz;9Yf-N$o?uInkNPvQTzB#Z@JwCfR9(d-fz%l+F_y zb{;&%Dbt8x&Q*z1@u~a`WLQ!!lR$Pk;mu;iE zWnp&CkXs^-1WnqR!+jflw7Wc==6Fu~AzE0w|5w+2QuBRjG5knStm35dSy?qTt6hi} z1s!x{@pTde;fWOLA={@RLm{M%!5QSwV3!}xKX*BvBCIQwmwB@la}nl&tD@MxRTcnJR0sg`Oz`B(NSXIyn_&N zBImzK=Y-{FEfjEQl@=q;+ZCJNr7D(wLS!!3hChQ2O*)ol&20Xi(Po=h?h$^gSgr}; zWRbC5z8Lid5Lx`%*4t6ezzMvRtBKF?1d2dcY0vNb{=87JjEmikn@OG@x|7Zwl4{mo zHi*VMx!3C(sur?zE*a|+4&RB08vuIhiF@5s-T7c4V#Lu(je+&av4dfIa!bq!i4ty4 zCX!7kpV}5f)c4j1O;bWX!Ioa2&v2i9%ZCK1AX`zJ;yW``%>$%h z;2031#fTpLl)A?I>BE28!t?vZQc>O=n?!lxYgmIrj5l#?d2)*^j=qZJK9vyaGnDuV z(OZsdABYzlPoDlIlstMy5~q;Kz90HUScV2wDO|>b!F2JqL5Y-X=0|CIh~%qIRBeW2C$#ZM zZYZ>d-W%QSt_>Fax7fm^OXWqfI&sDOisRJ(Whmux0nF@U$b(Jg#i(ixvkwuid6ltC zICCmXo5tOWQM{Dw-X$(qmT5w38*+uY4aY2!&;NqW@vN3~CcpDLJw6MhDead0PZG8} z0d(yje6mPyBGO{m`%#`fJ)5w!p9$j?mlE8WYU+o}hb?<(Yh0#4|UAn6cmn@3^@g8vpw~YMy)ELTbkle=cB}^+w&=h z)tgdEOekZAY^&op?|{2{TC2Hi!>d34Ckx=!51rLwM&Ysz0{*c7@^dfa&qr!#*gX@) z1%4%FNm$7-WNs~}<}yqJPll+zDros!w5IrvxX;)FR_D3H!o3gJ7rz49>gSxIr7DPQ zfmD>C#B{Qx!)cq5mepn&-25v$qdOQbRqq(T3zjL~X^_TEYyt@rQX||bt5!yBIrJNU zru)10Q>_f+&wuzs5}us{^y<}t4c2v8y8*Agke$NK>#_`h6?=@3k8e-Da(_}AbtIrM zrc+XbKbS=L0O@P>t~=X-3p{cWCnUebDj*}o%O(N{$$6HH1BrEJ{Ovdbr;yv_+rJ^o z>bMnJEyRRtX^(U@8iOBaVefS-(Z&wMz{rdA^C$aJpeQU@jwqI;Sl3mF9;bRrOue+g z)pV$Vh%4b=Cg5zt+79~7C+3`Y!#DAr)ol8w%nTV<(mDV6X#GpJC<80T!pG?gJ9;OX zFNq$L2-GWLLEn<2WmIRP6I8& zR{b`7uTVzR2@8GaX`coE4{Kim73H>uJq#cSNJ=RU0@9$s(5Zw77=Sbgh)8!xN{Ms{ zNGc%G-6ZXp6%+dmY?tJXXGy93%W&!@R@`+2}{FAtF-GE6}k1A?v>rh>W zU!A;{#QY=90fk*>(VD)WOPbvm{Zi+{t54K7W%jswtd`@9zjnXs`c&FX(o%?U=w7h% zrlvr1()h_8-9^y4H=8W*y6l?&0Des9K0d(d3Ca5e-?GEjgPQY=sqoHPRMJ1@zK*{k zWcFR{dBN0&;x{k|UT2IP0Tuy?8Sy*MMkY(8~n|GIB(Xp_jJ-@tdTu%prWo|k8rXCF*BSNuuN$Y6)K^I9@YYyVXpS$92Mfc3KG7BESx7=_Si~_Y z;*x9Xv6FF92UM@?pRUi1sgyltyEOk~SmR-+u59rTdLN!|t!AxrD|B`#MwhBva3kkAf&KYjYs|0U(fLSpIx}vYQGNd#tU-$9 z1gnBj;Hl-wY(oAGf9xuS^oSf~S?AJga%G@#{>u#p})#$K=Kd;oD&{ZZq~H+O6ocjtdqKNf%Y%!4?@A!RLJY{>J)W z3@FOx2e{oyl3VxqKX5v|&s?)psb^<5G& zPzwNnP2bd2CPwW&@$;!&`l$I)QM`<3yWrGXNF?XZ2yBXDq~+u!lc0@W8F|#4q0jet zvp4DhFtWdS^gk8*zRj~y7%o>p*>~s1SN-Fcm4wJ<3DJN57%y=1UH@i^)%@%`| z=Z$~28AifVAi@%OqMYR!7$rQoCMcVa>1p54;`|#v_;>r_6_&6b+G!xG1vG6QJClw%fnZUft#9g9?`G^XR|x!is!0w@so=SbMB&v72ii8(sKaum5G;)CL*zM zZTJZ|h6^tJ4fiL)@|>+O?JC{HjCB#5R)S?&!ck_X&0I5XXsu+5B9VS=W7`}UTkjQw zy4G(4fFLU*Hf&CV3IU@j0P?;l@h;gc>Qvq1p`ENq%roY$*4j|d>sGNOXp02cFQzvv z>$;H0#!Y~6q_`PU6CK9YoC88iPrJoX11hqxQQIJLLM2Wr=k0NjdA_^?+hQ}G(zbNZsk zZpv1Qj4aSWOM;&b;yb7^oe`Lrtfkl`xAle|)!ZbNxsZ+9w#_?PC~01)SbGkVB+Ih> z${|H>D9cKIU>;(5RXz4O!ea6_MGF!?!_<3te0jE`B!n=NY6~3_4?8ayY{Vm~Rv6`x zGbIo8oLJj)8eHmF(uj$$6Fm)X0Ju&RNZy5lA0(PS;7{90z1$fS^5GL?p?+{uv{ls* z^wwSnK-7+-cF)SZs6?%+gD#nVf$?6LN9m<4as4#3QLKICTWI>a;jr)7;WVEY=(@Zci%? zru$ItOdOg+9fjA*@;vqT3qKq+?o~#}SIW)XPHh}wqHuM2^uPFuCjOp~gua&*O_*Sq z)sQj|`K}Zp%!v58C;f``tnB`+X9wPz*V6Ar4pjkL ztv%{~w$*fybX@cKTKm?vGO2EQv)FC}YUYwj*`)YbkWG4sCW;zxJ^n2l{-=NRqM}LL zygTw=%{eIM!_Ag;jNxiNxq@5duf6>lG6lQlKxLRm^s zrs@JF>&3wT&H8Vn+_X3AL-G2sx002ecS}{*?PyTaQajALS~DiXEFlyL%%}qEiRGrx zZK6Z@GT4`Ijp_d8-EsiDC4oU=m+5XpG%dW)*6_R=B(9Q-F=+JIhUFr8JiH0pZM=OdFWvx7KRXW8`u=DmZ4OZlnHinYgU+J@emL8BXZB z@2b%t^x=3mS0b(fNq~KWWn8W14W>e}sM}8{&8AqKV(#)#UXb_(rW0L`{m;!NA!F~ZJ@TX|ohPKDc}Y0ioJHE5 z`=9TLG9^klg66^+*AYDtdr>T8vuby8MRa7bem!hF9sCFp4$8QkUGEx6!~L|)L<^)k zYyjF&au}%%_0X!k!R~C&!d`!_(89=-PM`vxt%Dt#s*2f-fE)0hg2BWXmNe(8mRqJi z#A;gHcThSA^%NjMJux_4j(-xFf3pY59%$01^ce{U-VjWlo>NqNkUq;BMu98A6GR}PMJQl1gf00_Y zULpTmRc{D-x-TIc?L8z>A9*t8(n1yE`Pk`EK%NV33P0}qDuVi}$$z~ZKGC|_DXfzNy`WKKilteKPcUxTteYA0DaGK^&W6P^+ zAxb;zP^Bb(EO0BvG#SOw4t%KKgf_XYc)}8f62?}hpq399YnT{ZVm2>%I@uyEZV0=b z9(um?Q`w4SQc_fV-4Px=DcN}Sw*RngqxkOwJj}KNba}JxFc7$lM>ucM~qep>>o>l zukXws0y$E41nV5G^_l3T&K^T@3p9M>Th(RzLnZt^xPLf8;0>{Dm<1|#gzo%|e zTOcij#hvwYq`2`TzeKKd>;8gGu5qQH8h8v22QUyAM=+cH+@O2!mI$Q4k z@3RF5M*~qz5*7&hnJnfJb>W%pe!5n*)CVW00m_+A+;=YR>V{(BTM21Hr=VR$L|wCHdMcPCs2buw^@UkUwtp|nFhxBMXqVPpf2)AS&-6RYM8+B zzmN0?NV{GYy461C6!Zl2kY(y}B&K>H9SPKDHx=I_ziSF`8U}m|a4sIlZ1j?TzK7hz zFkp@x+W`0UUlP6l+~$AT7_R0kk1hyO0rt5sJUkqfpz&jt@foIw^re(#6~BOY5ZwZ= zIAU{;F%{_?s^kIJz>2`CTByQkA?iv8{r#5y=|$geL!W(BAP0(*_A=OJ?{GkAggvyo z2ZGc)C@eTkS9V|76L>>VPb>-Z_D>t@tgA0B*|1d-_HCqZNh5#X&H}k| zSLDjw$pw7>_sZAbH4J7xL-j*Ed`L9MFospZ;cP2<4Ig=D^*+PokPiS>w0wYoj91XU za`+opA~BE}KPXa}JyB3h``^;8K?5AB&zHX8J}3MgIt>RaJ^2q>5(2&>{TFX_4#jBX zBgBE^lMo&WR%vahBy|UakGw(1JoTNEKBM=4-dS;Nd`}3BhllVX3EPV>Ldcb3SnPt6 zi6a$*r|&$&m6Xr{#V?~bxH`C`k=kgdirgqHBBq^r(dg4ec`*_VhB+-ejWjZNA3aE4P18=4Vt_dERu9{aKajo30no7i+NvayMWkjF9d@xB$ZW;i(q;!22kn?OO zUOiVr4h{%M0O~ktEwd(ESm)94IfrRL%SR-W6H((1qoD7@;p95;l4OxVI;4{ zU@LdxXnb&{2~Ui0S)}h$`UZi55~KPsNGE)?=C$3;wRB^(g~pk0m5y}hEkxE|Y+23$ zW{!4?E`S7EGmFmImdDi54stm}FZ&m(r;qZyI!+ft#i-l?=%S&?I3VR~0{oRlrpdoO z$=}*UnHr7i?Pg&a54}wi=37CYBylo?H69^NnpilBb4yBsmtfBmhh2qB=RDgZ?McT67STHwRCFE+a zb`j`G?PO;^Z1R z*L#_t1c%6&R~Uc+Igz(qh2QvB`UEI_3pZ^#{p{u2TyoJ|LHgUcduA`h(Fcr1b5(aI zCjhYWInciR$kGyEw&(*mh7O_jyp^AEkt`4Io;dh&ebjY_hp^vpV5QjKJFZ8FxPnRT zuA;-eP!C}tONT~j@@U8OXw^5%b^$AkC??CKj=ErUj|V}0(tz>lw4LIt`7heX>$Bu6 zi192~YjKLmSvO>9w4|69rvdIpB=57=6oa)MtJNn1}Vp$%X&kb zbP+e6=y&$&+s?|Hvhf=KriI2%!o>rcS zx%pL47a&J=F0fD0o%mMYbAP zCvp3GQcpIEHAZNLXw}c%u#}w&(K_wjN)5XZbvQr|EW1pM8bv%3GJTm#5!4>c% zDSE$?{S~0(N+;q!c>IIYox2$K#ZA&h5p}#pXHgE>w@7BWCL{nE-OgIAE18*Y!pyZw zc@0b)R_EXx%9a4Vr@0-f^>AT*c6@BtU>{+L8ZGCg=vINiLaJjL$L|jH%!TtdKLy%3 z@L;o^_(UM(EqWDx{XRjUU-g&?Dgb}tgd)Ge(`&Q0d~DAFZFIPfE_lw^Jx0{gH%dep zL1JGO;=ui_PaaU_Bm^{2&Z~Ti21H4F#ofM8<=(^9o21vl>m%ex~&FQiLEp8+a{AbK98nz z8%rm?59wC?Y;fG@GogC{uL!8KwPv)%~46o^PS63ca=N%eS~ zvwX2YJyd4?#h?`aD*mJ5hmu=j+m4`w_;W%HuxVY97F35Q6`<`^jnr~fAI;%;z&61Y zLZ&a~d(YTUAxmyMZ*?mGS7l?5`>)~?2M4NF-#cIkM#y|}xC-Wqzz|>c8 z#qZqu5^&paZUQj+guh?`c@lg>fdU`Mf|ZmR&bzy;HG&Tbf5cgPKVH`JoQXe3jy%k^ z%dl$Owp)){G<;Q9x25ob#N;L@5bV$Y1~c>e zECWHM4GITDjt16`yAN>s!foAH?d#Y1W4RI16y>e4eKBNqi9Q{UWc`9>qk^?GT#U8f zjB7DLZ{*~3blhH|)94#E#ctkfBhK!Vd4;fT>C*uLi?#AycRD1U?o@+_)I$#U-7>op zj}!KlJ0B4#7ZR7ZBMY-1kg`+dIl-$n5BrjAd0aM<5foG|ug$)svqcd{1bhTWj4odM zuI6vTF!x~1*-BR_Qh(XbE)SWYE0NT3g)SKcy31uA_t6NmnREL z3?ePog|*v4pzCT=VEEVc#kOMx&QlA*mduQ#Pc6{`@``}_RM!{KrwUa+5R?sFd^>YC zUBPY%2&PX907dhLwR~0JLKoG2SbN6NM@6;;i*F!uXd+%TlmiwGq-u-LnnY!wZ0z+I*6yqM!O(+SO}LW)`^0 zoAQkJX?J_2@X}G8$_VGD0VHcQ740Oqm2qRDZ8*a2XCy*Z!z6t$w=p;rXCLWMe2qU- zpc7|dBdj!<4AS%!+Pu;SKY%_+{EI%Yn)pgL?{#`(lT0d^b{pe00pu8;GEP{}m@J?T z&!u~>0Tpl1fckepfFlAmPOyIX@Nz+jDI$qvK3u}>nZO6krW49?_+IHGp=#YuGsi3I z3T`Loa=6tN-$T948q(M!I)$ejR&Ui_wTz60(CSh65&H)WiY~Wq-7$pVE z)71S?NE+JAj(u*|Me-ff?WP0IkBhbkco!mY>c;x1!}|939#4$@FyxHC62TW(Ni-cc z7!p|A+uPVZs(6LLIIC~>lNV+ejk)qdYQ9M<(}0)s)$%@I1JE4R^S)7JdXo(qLKK-M zx~?ON9T|6RZZ3`IPreoVh&JaaC$4IQF;~R=p1Iny?Q4B{t-g|o9 zW~O`BR(G8MMZ#)<5R+LJ`VJoxC5la4bi0)wu`Vo?C@Nyxy_g_iT(y!plb?~5J)O7a zp7m^U-vhM5xCH0`dO?x0%f~zSh_B&U(RyBhUI&5!llTIaJ!8>>xY(KGP}lhTr`wl< zM&y4@sR-WoqI;WG?-J)$2O;Q{KNL**AsTC9jU23fozuQ|m}QXwdb&p1uq zB^y;M6X^ z|2hq#JwRMXo>4qhnI@45izFNoHsOJ|u#YqNy_$3x2!b8kkE_KbXYj*?a6-%TmuA-C z>+xgrZ7fa%%xr934Pp9UefBmN4M{k!Z!b?cwfLxwrdcjWkoojmC- zZX`fXMuOj3e808xC74?HJgt>#=K<8Pao&3)XNqK>I_Vp2+?;2VFP>Ovr07tB8mD=;FSm}i-EUP&yC#zj2J5P4a) zdoh?Hs?xKNpt6gJ*Q6fXT^4V%*JZi52@{;}TAkakyVHs;{b_Rg*|}v|y2sMycVyjf>fy9MoomGA4AMLfA;0%f{lIz>ceSnM6PU$r3wWcO;RgncgPs$)>g6n?!-X*yZZAYiYik3gsZnRpF z_G+8bmTC7ugFsaz1w5jwbM4lKIyqreaFdmX81o60U@B)+F8ieAq$Lkphrd+$(bOPr zMyVYKMccw1$fm>C%!db%W`FTd=i&4+HgXD5n2Y!rrp-Pv$yw^BwCBgVZ&)F(o~jEs z^wgW%>_SXmU)WHQ5T+z>D7+|%Ja47s09=G_)2mT-Gxib7KK>)dl z3Y)H|OBSBKW+>^Y%y1if**!|7EUQOliSMA;sQ%IM)Efl9N@a5Oj)TR_gJflKYCSWL zqaihekK^poPd<^U=L(|jeQq10aW=#gby{6HJ2DITy(Sz!=*fehY!30kca%2Ra@yj4 zN4~$Kv?vmNN$-eh!$IiP^C`{=5b`2A8T+B8Px8{wRr?O0^0e0AThi#PXH{mOS>naew$wRbBC!Dyux*6m3| zbCE0ekb8d>1s}aVvdPQtQk=vewYrgOWc_#2E`>?xc%gz1gCQ?8Q3}2$Y$9IsVtQu2 zynk~o3O2$*p7-p!C+HSZ*U~N!J8?T-pvE)Jt9<1lovM(H)&P8XA!JJMBFh8hN7f}) z4S2s}P`h$jSi1foR=YVI&U6w7d4U=Emy02Ohu}3S$}X^u8xkjvu6vU00XI6t>1D}1 z6j?SVsavK?VtEpb+Qg#fVKq%&2M>$1z)(-rV~4#Tq)ODaGF3l&RLUH7FJ49d%$=RB z>pV2DN5p5Hn{8JoPB{V-66B@P6>7VN!osAqHW(m2W8@xRblBhploKW^b-3u957D=l z@Bc`?h~L47fexuu_Yb*`^%SDayH7CS+HixGpnxSor3E{juefW9L4ZV?$gKF)d%Ih> zZ;Cg!UECeUYx`r;R*q^0x|_j;IGvPWjjh~qD9imi^9>>6f)KOUoQYNp+reHXjmp$A zc{#SlVlZ?m3!4jzo4$99q@i^2q}Ad%HAR$D2Ujix#>_t>c?V{CGp~BPN>ptx zl5HgKC5t;FxBfEsk z=H=TxbI{sUe_}Z&JPTr282xK%>J3dVE|jJX>9hNyiR1iIFMc&diJeo?)B&;K;cCyI zx37rIAjbF*Ci77RnyFj#fEC@w-2Kbvv5Ce+=84x|s)=?=%|=h%C(h2SXSyz1vrcE8 zFU^FWSr{K{x3~v;1s$xS^mD>uip2{J?WbRF=n4?hAi^16GsQd2riD3zp^s^Z=u+eUR_AFfJS=J*j1 zjqU0nUL%TURk=I;iq0b9r|3rgB>Com;7F{62i~H3B_sy|LNRMYI;lgwX6)Q{OX_p+|($sSm}!|B+^NPkP)-N@#u2Lfi6e{O8H72^^FK zWmSr-bHsbM#JZZ~@vWjJ6aIeZ{Tbl%P#ocP6!Z*80oKo!5X#%6x4xO92$OG2vqHYs z`;hdbs-xgXj3>R_Cf^3rttY`Csyl8382bGi69;Mc(WD^^iG<5Egh(p&+BRqS5Tb(P z4rIALwXfES(x;l!ZS9eDdc#9Qsl^YH@-At@^#FOmIYRH=)6^tZZFtxjsyBTI>`NHh zH`5aiNqNZPc$9M7%P6_Cfqy>$&|^=-^&CxnmxT@yaFRhL1G!dRHcl^ghqFC^<~)v! z8$hX15i#G@X_T{$W{NmBQ)i92?$0yDx_au~Inp{lWU-CiG(sv(*S4Lqvh!3B)u-Ma2R*h<4(125VVL8^amOaFs5?{oi6eSgZ2s#_)h@cg`<(pv#;$0HhueK81Qt2a|(QT0v`>bd- zT|mp=xO_2(vqj0e+LHZ(Sqt$ir6Ji0Ct^CFif*HpBl2 zDi6$^wVnY<8({D*-=M)k(`>7Aud>ID!{Y8w`>-<|m$h`K;N3~k!Af7ZcJF5C-D7^x z1z6C_1&$@js0{>vaoGs<_2XjXJ>+$pg( zj1Ltq@4=PaXx#z_8QQvaGYf7r^2NC-AX-?5kU;D#6_z3Wx z3Z&l&O!~g_lojzrk*W|k0rMy7f;3IR5Wbg9K7{P^uKyoL`5es)*|ZQ6sBt4E8bQXy ztJ*=bqQxf^niPRxj=XrFAz{)o^s4OBVuj)YuYrX|{cAW_NE&4>SLLG@Rrw^z`C-`ZpZ5B++VN-eM=%iX)9Kxjb?<=5skHL74 zGJZJ;Y4{I~Y}#gXXWE%k!lzK0k)`t8EhTM$!x1UOb|aJc`dO9%$bDmv=)5)8eJRor z*yctE11unoYW1f>PM?@~<-a~jh#(jsCb-?snoN9MO~d3)Vhc>kM*%xfl}({Dk?$|P zGbzHDCGikU!mc(C8#;W0g23}ufo^B>>kJv5FB#F0dmMTht%y4&cc{Ve%}x;4;+{+1 znT4NZrIpo8mxg(Tl`JLNgJYUR+GzU3j(xO1wjx=r&+m)Qy@*h>r4`ZIJkB%dWT>ih zVZXiXZ&+7p4u)UcEy!}2C`nmGi~QI|kguThuQ3ZQV+_VGm~PZ(4C8Y0g7;vUI~3PN-B7sRyOE_9q}4 zr%@1DD%M|#PV)hCA6WCkWcAMnk}vO@75*SO+H$AG+kg0m05=P=Pv=Bpt`Ab%FGld= zA+cZPeya{-`xJ0znfakx43Kw0Z5}nb{zM|$a6IF86j)?CHDM2ElorKs+$C?BzLbVX z1i!1qYv;3ttw!*)e_Ye~K5`s?#IrD4r`&?LjqtlTQ>mxiuA{+_NJTugLvLSAI#5Kj zyLO1vPGFnjubi*LL8CNr`8C9kK2-RriqLO)P!R5BBR&C>O@~~Pp8}k8vyWuA?8lbczH)8_QwT&n`tleLB@C&%*lo|#Zoizwx1c_VyYekL6YBHo zS0)!MJW*tUb3n(ouaCqc+#}R{753hPjmMD0xGRULC2ulc8CPU!EUTzUC9t9CptBAf=Mr z>BhfNuF~?|t^D3)d~BQLFv%)3lL%$(@WCs)YXSsLbOQL#^Hp!B;OtW$rSqf#Y+U9K z|6Ij$s8^(tsKC!85g}3RU%c)zwI!{vHi^2HX5iOm?>tph&e;=uH7qK9bI|!#2A}8% zf22xnU!~<(&?1*CjBFxD?bek$!m1l@-D*+3-2~ATzELzaL|RbZhq}Kgw#dBDmVb@` z4>j$*!|V@fgTKE%aQREI>-3nU;qLq$g$1s4Q{Fnecs*4#VPJzEout(n{q_w18NoHo z()4mbXNS~uDQ{RLpaT^YCAAvZ;>=^6Yy0xu{MtYUsiIA`@B`nNPp1oHv!AZSz0)su zhZL=-H^hB7M6gnGWTKAmUR?{HRLVUoJq62OZ)Hfsh$P(96n&!3naE#K_H$NnC|yPt zd!4MNhITjXX8bnSSTrfo<_|85 zqL+glJ-D?&b^}cE)_5h|>Nfk00Z9dqlpn>KGl)p+d8f8^`uk&#zlt z&q*-KElVdx+(x!0y7y$7y&odzSD~vUYa(r4;xkbP;@r;Tbg{xZFT|B-*_qz;Cp_B$ zcsQL#xW5mP#S8TM4O$qpMQQVK$+V2l;pMM}hBJO!G|dmu(2P z+gObKT8nQfa~rMNsiV}rG$+MHI{QYHOjVgX%ST>=B$ltrZM9kA>k9l6IVKWgi6H^C z=v;`hJ9u1DfDL)*^cjWg?)PxotRUb{@K1v1Oz;LW;H?12*zp!#nxqbY@yNjzDnCIR ze*iJW)-$K{84y=QBY<#E8+Rv=C!zs~gP~f%3gl_@`yP-6r!~6T(#Z7s;2rTt43!#1 zZ|y89M|1BM8%3@dHGOwGE?tG>u6sNiJ2hZE-l&@(cZ&%)|1uM52WfGnKwZTt$sZ5C z?*)6DQMAbt8G#6sLMR7ydrsT5kQ+Bwo$LRjuQvq?GXWS1drivtL~a%C1v&%HMX`6A z4*R^n2w8Juevt|B>SPCP@Lr2lG~eq>l_4EJX(MZVR)ie`F8{$9dz=o?9RhES7Ul2N8>_=E`e9_@H|Jo zm@W;57rPrnB!P?e1L&o=hYl3`Yd&{Zf(_yGJe|ng`;BUYxa8~(^JU{s#x#)53Bc{o zy8K5*?BR^jF6-$aAu&;NcCwV1Z66@-n^5*qosE;6 z8R!2bat(4!iOEz50?&aR)3#cQz0P*{>D%2*V;#C0a8 zEuDyNaaciEmrpr#+J#@wFF?1#Twt0CJG)IenpqB^B6H8x>LRHpVp7Bb|3wo9ATY2v zeNW1fWy{?1>8cTu@4lq4zlJA38m-a%K0)5^;le}Z$P+Nhw#OM`YYrQnloByvE9xo* z%rx1=9^X>OG^60x2a4MHKFzY9*+%D5y4H^|*s{VZc2v*mGo$O2`P7f6x>u|F$@g6# z3w15x6cFGp+0a;NuS+Y7W+SYFyEDPbue)6wjig3;?OVESXu|W4k<%T>tLxQI*MQ~e zLJr&_ZbrhV`_v08WiTVScOhZ5Hj0RnL-qQXAnWG~ye1t_)wT00WItAVU*#FSX7zwQ zI-DvRlS{O!N8a7F*r#8uzf7E3gj0cY;K6+d!bM#Wr5DT`^-ot=FU%j&GuCK#A-vHxiwqp~7FjcEXpzlg zhC_A#8ks`UrgC(v{IdIto(@kk3ktupGl}oVz2t76&CKWA7u+Lhl|?DCCLIr4JngP& z+$|lGqYrfVN|KP(9jE6Md0OqZIa)Xtc!NmCeLYcwCCKCO^u>2QHz)Ll?~?sTf42!i z;zIajEKr(b9qCJ=Jtgi)1lgVjJk(X-+Bfk!q3TRvm`KuS!#VA7xwz>vJXkc*)Kr+BWSwf2d`@QHXjl31 zIjd)>F8*kO1vu71u87A9s~HmJ5>zhY?&v7{_BV>|?xm2!@zm`I>@~RSkp|9K+f6 zu|9T%y~e=Z`W9JjU%O>`Z^6{;9$Ju;y7lTugv_{%i>I0WzN~E;EG(4cT@qa*HIIA- z=T>;nhYKX_LQcj*NRBzmIbs^1Jm37M3-~8NNioHL&5wdl6CaL{KBsT-B!!3CQo!-i zuiIcTzmjZN6w5!CnUQ7k-(+xMk6&f6%JGVBv@+nEoWaAb^UvWY^B=b2(#f6kJ=A;I zl2#|F!6}HU=yQ$*ZTkwWDc*~&_omDP;f{2#(Y-)P=pm(#t)T+sIX3K%*uskiH2#Kh zhxbxfQ@#z{3sbQnmlDtgX&_Y2Eds-Q)>kzjrxYs_F4Ksgs=t4iRW7SKlI8*#(RA3w zjBMfCFlzbi3ajYq7fSJ#Pkd%n9(XPjw`rgL;Ic`PN&JuK?g<}A zj62Mo$niJ7`+mBM<>~F4w(-|yAfy6xpy^cvcZQV-st7*@T_Yl@mrZ>Q-+gKmFtwzT zKs0!fVax0w@3ZY)1V8sj(j#sH zyyqc7{U+7nGrIfKMPUfcRc1Q0PY^QNy?^EvP%u4%;w_}|nlxGN}L4g?TOFm${-tZ6xvh#3sTno#=E;EPz|=7>P(<4>NbIz&)9tgo7A zGM_7{RT5>hz>b)K9XU|_w;i!CKIi8S*BvC$V2`!&tzm=1D6HsG9F@C2+f|K2ic%j2 z(`55oTI^Q%F!v;MY+bNTT6AV3{c(Z$|NHku5mhE1B z)_Y~Rz=&5LrYk531vv=u2e<`KiGt$ZknSK*d=6)zt9JgRy;9cYqHrSI2!{hJGdQ^$ z<7PX_8j6M+7pLVIPWa_~udcwGQZv)hTg5o}4s)}YtCuGhc&sCcXQ0qoLq&6@4b!tt z#aL|jD4Mw2lYbtgTSyJ1(Qo!yD`odYm`jrZ_2apQ*KG2)a0av(@gZYA9ne{DL5G-w zdG<18NK6Nai%RSrt_>9P!{5Lo9(ShhPKL(lx>qWL6kwG?kx`Y}?$O1o+Mh5`-rYmA z)axVMhb)CYb8_wJ9_q4C0{3b=`o5rd0%jPZSD;M^uS0;Qj)3SXuv7R%3?p~Z#J9aw z;xP?cLvFY$1zPWm}#wYS3~>T`KYMw@e(AfYV%+m5>#%{ye>c-sbXMjx*ae0`if z(-O#8M>Y+T*uy<5yoK=Pcz@8nRo&C6rfw9y3ovL8?;8KZOIbBTtNT@&|6?z|&4LtY zI>PEi?g(pMrSpwWi=NN{N$CY%;D`F@_RRlKD3>xWL9Hh!e_(2^U!&2~>6T-=%n4$j zFG^{&rNE(0tr2q&s`8fg%ABeLEveFPMS(g~9RuntZAM_W5=60mIOls)LxwKY}8E){WA$Wg^K z`P9|{mbR%D; z6(yUB*M<&clQ=aOl0ZY_Q+hx4y35mzrVyd+(SBmP7UC(|XbqZ{wWW%eO&m<<|}VLRfp6sSqj z2(I&Rb&&MKibo%_+xG;O(C5mp#(t3M*5G>=iK#_T{OtMoSQbbT5n|=4qy{R^$RN@> zZ}nJehJKc8))z$pH%vv)o+eB&5mT%4!^6c?N9K=GDC%u^3CW13RqS#v^kn}*=sRa&u*Gj1U&Wgb@4g{|+?E`8`W=jEks}+hk!)RBL`Znak9p+< zNY$^Gf=OZfle@255hUhzg5H9JUvbeyG@~Nk*j82Yb4SULh7(;Au;J7s<`XD?oHIzVx!h8=IOp&$#fg6}#4>=(BjRI#EG zlUi13gFNsdl@85lmMCl&ZH52A?${APr5;0?F+u!8wjHcW(BNc@?)AE2gi*qoK1>BY z5V+N+_W}ks**ngCoW=}qKfV@oQQ0w!TQ_4CQArF$H~V5{P+pfgJ_p3VhuUj6&LW=H z$=qS=@6zwdezb)ahSU&AWFwx0h|oOZ7{0m!3O*%~qvtO`^X~zE^8pgXNk1de zfrZVK_h8I8`Nob1;_SB0E2y5->r?Fp)lRd@96e}Cm=zM$K$&j0%hLT`T@GOOHDE!i z$_!1!vhK7&P}Gznxq;Q2@@Gt5)+KGg$4#A`1f{lR+z;=J?mfTu&iiPpyVtSv6_b7A zMb%E#4o_W_HAlr&rC`zAJHWvRR#OMC~jNZ9o~#n@3Z zJ3JLPj`6OZk4MwLb>*pfw6)a?!7D+` ze+Tlgv^ik7zE3V48&K>JBD-A3ln7}6pL6h+~SWO%KuV6cXKl<`CKja$9}L`;4ljhFqzy8hrX zWRw3nJ9a;wI(!Fc${p+6>z*RByU6h?DIW-$xY>5p`7xMhXtrd+^A}=0q>UWkOe@`| zZcNBvMWj0jfs&M6x=!$jR(ywzg$VXdKWYr5t&w6n^evk5K10@Q#Nk$}eszIcT@|5J zo=KlQDLE!;-=F&@eJ^cG`&HfMvC0qy8t&Y=`B0SG1b^2B{v>Q(d6Ig}n4XXiL@21# z-nDJOu~{P9>r%y+O+-})YFo>1_qLcI{C1nsKel0Q_}5bTvmw5`bz7Cnu5&XQ<*6A% z@}$SOUZePOnpWMga9s&cS8aMg+JU=Dw@MY2fs57+x@(ErK`f@{h5n7D;|3GTE`V9V z0s~PpH8BsVb{AJD2ka@xO%R+i(=#&$KNGEgY6-4wQ5k`_*~!u4|FlmZ>mGH= z8i(a7QkjI@#Mm#K01mogYO259!a+Zk$v)^%{9XWRaMtSP=nXN+AM){BuxH=dqcT+0gwx!I+`&Ol5Xx-?Ld_lty7v@^#0 zAZbJP$UnIOwn$cFQq!EV-#G5Nr<>$`CFn|mts)G-9%1M6q7>kh7$cFIUV&@4XbKWQ zxW~Z9$+yS`S!{~!pyXTL>UY9u-fD9%WNkWh1e%pTFMA!Rm)Gh49IxQUiH2F=_r~v| zuWGygEgepJ4P4qjyxzP0pl&)KeF*{@5S%UCL4_`gK{qQczmTproX`yY7BaXTCGv`Q3ZhUH8vf%QenC=XpM#z2E!& ze(i0h_(OIl4C7&78^*qr6py~0)4*)n5OaEblS!KmKaAT>Wa8(5;NRzARa*M?q+xwp z=aok5ITFOk>-~4KsBpu`+e1YhSk%wjjVPT7;5v4xg-;i^s*cf1BB!91cF}Wd%iGkk zo*8HPB5XxF*7!0e$*JFE2xd!G&M8PGV~eN`mU1Wz)47q#FIMcqewd_>wj39mIOAw4Vj3Eu zaMt6tnxi;B6b^2YjC?~;r*vs*)!v;O;NvJD@V<{pM`XTtJCIzf*V{(S?vb96YIp)z-+pNj=t{yLu84W5Ycmz*SUORV?h z3}}M&w6A5u+IWWN4$(_7xwkU<(e5vI6lwc#Xhe@ZD+#AS)2xt&Tu~MEYx0+HpEWli zfure0s(KCl9zSh$r)2k4~%W z=4ea}IHGXYS7BGg12A?gW+}eMbP>{x;=N_V&Uo-G<5UjE#7PMojZ>T!%Nj*Jj zTG{Q_+Q^Ss<(JT{1!4=mPt@L zwus)^cmp4G4OF+C{#S>8>>WXQLF~~FaW{OokzK4Ne34h-svEpOWUwLQZkx6!ymkh? z&XrfjuWQ$EQl&&np%rm$41as~3Ev-5t4<<23pH+Dm(GzCUO$gnVpwlaT8PSXKk2?! zl=L!iiP(J{iYL8R^GI)AQP-6ThL2f^u6MfZnz-FYHV^WXys`NC{HGj6RX6>PUgtRS z{Ctzx3y|A=f z(d!0%81edgDUZFX0f&x`z0SbLZ>slO{BX=Bj!iHZexfqDW@}hN@pA;{Ws`UWm7P_L z85{{hO;DlU*Zfv1{{jyHo(b2-@d#=ZTXjl(M6OD!?n!V23P)N`5@toBWV|E$o2_28 zny2gtl}OO#qDt?SqTT%p8#Q5AdrZ35yuj_3`Z3pQTN-^J7w&*uxCV;QB>a`QwT`9@ zH&;=Xq{^Z#=zH;pbC|q6&(XLNb*e{;kw+@5K~^cSlXSEWfjh!Ymb4LtWUz-XxCP@o zy~~41g4lOJqlsCH&IO|IwP(F?NbvpX9knW_`eE}P4%hc{rZZ~J&}>!1pE|Y&`}Ecn z%g)qjMgtp9cj%G#0OW6K0OF(-V;PN=&X6WUJc?Dtjk^T!MQKLHoNg^x>oK2xH5z;D zjw84oqw|&z9SjKeSU|Pg7l+Sicd58^W=&!-biSSfRnWV7FUdY@N93hj1h?v2Q;q1* zlNT$@db1*Ede@9#DyHw&?$PN{k~1tPysFndO*?!=NB4ttV^|Yowne{HOu1?q(%142 zf;450Th)__8D`}6yrLr9erJXXr6b?G^ixCqkGccW^O5+k0+BDzLzMhROMEvwoMqne z_=Blmah9kXvXcoI*$8PHrg{n+*PQI0HBxVM7d9*x4h>dpUyuKg^Y@V*!S2DxuIH*r zsVOrb8OJbF5;o}ci1bPj6pk=W3bk7b5Va9WEQSEw2H4waQb$Q^+VAeb2yP zh{tR5qL$_BuUkjBPR|FTw45(7KFK-k3S?@s>I?46kndU5`lM)vyjWuh)olBiLXhh zWO26{vl_~jYYbkIibfk1O@v(@ywsr(g7hq#c>i>W>SwdPZ5W*UjL*%sjphTW7trzLq}wFhR2Jz@rY zw_VIFhbnq$_2*0y1d_g4dc;&@g@s%h^qxzx`>{f{NxFOQ>p;7tX%<)XYz2h5KNgZx zbYb2ct(6|*_CECP&zQ-7{DjY>4r~x`2d#pJ)4Z(e3vN_-n^Pv$(hhVm|Mx-XMY)6> zw9Us4ZT{IdYtsz|%lzl?u!y_i1!6<})iW35{py(wzcM2|^L0ckdMsZ#7|*Xs7q*No zh{tEy50{2r%ln&2`vi$bWpVG5)q1>y45CqE;pZb3h#7gWa<)5N-?wGCAk-sAH6-WQmm_2+ zm}gSF#%dryQgittcU0?~Eu1-@@5z#grr&0SFXpYL&Lso)#gDcQ)vqc9J>DNWwxTsl z`hyr3g@?3qSaEU@NE!`$ncd0b`m_P_q`I^0^&v5Rxo#>B?7^RDBbLvabH13S8aE4E zK{XNjoKC#f{GB8rWnQy8^G;{cTj(Sk4_jP=ex&?o8(zkw@T3u%`3A2bJ9$TOM=@9Y zVMbhRE^JK{GBevr>s+ThiRU~x^T088a?sH%JJges1_#e7J?6SB6wj`o1y&0WHO}Wi)!$b<+#f|-AQ3X6`FDD zbRIbaxh!7CnXcFy7q1s*&T=ipTipMCXMz-M0}+2Bh#2XS_RR#aCr;e`daig?&$@io zwXfsV?a$Ru&2woUE}t8zbKl!tA7DhnLhg;?>( zb<*+D9mPj+jYA|h^V+Apx+d$5Ym9i(oJ@64ot%q=-cRlgs{KoQKS6@~;4zGh&#+@c z(4yoc*oTM36kKP+D10;rbt%rLFZ-OAe0e0cacop1Zwl8?x3ony3biM;CTum8*{tGf2c!Mh52e2K`kSEDsR+GkQAbxtl?F2U^J7 z&#q;yQro_;YPifZk?q+svL3j|`00QV>koVkqD%u-L8@)~ozOQe*63Bv*tmB1J>bF; z?DOo#tx|X>2B1G5Rr%zHsQU7;S;z8M{`9SH&MO-RjbupPt2Hz|&&BcS&GnUz#Kx0q z7Lr`DCU0!1=jNRZ>bHDsZ_z`+N-Tg(N}hke0p{@$>FWe;60iHhRSbG`oQM33dr(#6QMjMVD3~knp(yt0fLi!vSc_~kRBWjQ zjTlhfO56TVLse1SLTj&ehIG6z)`W9~x8ud=!lEe9d&5p1i-88jkgd5CI!`ZbrTYe`xvnFlYF(Tg$jy`RES$&Mz8~~nSMAw6 zj{FXR7o2B_DuH`|2!NW$TtJ_xZsf|-m2PFvg;?#vq?(sl5`C-mR(t3JNPOhy6XTI_ zv5z5kHhKnt8Mr&{e#fm6qf`Zf1pEn0xLAg3j^ZTtwHIa_XKXB%BT=yxuM|DsEg9S? ziBNF5aBb?V^QZNU!g!rljNee*``I>{*){?gZ?6wRh$RjgZ@){KH#QKMOT(MUki1T) zqf_h#4Tz*{v1kEF_w2+8-Acs3{6HAZJH5Xrh&=7TYcoD)WD%_ay9JWRmxRN1EF<*z z$|%DsVV!eKKWDa;Y^3ijFD6^X(ivm2bb4b3R5g0v{0d+BU>&?7%$(1P;u_1IuzW8% zEO#)qg^AV#O?_%0C>IQN*%Urs*CH!nkgcwvd)tPC!28tsKkoG^N-c#uGj46{&U-O- z(U#=dK&a^fB%%v>3K&Llm{FJ8p&VfBnku)FDu zd#`Bs;xnDy*~;uq5$H*w*plgYAuxzrsi2cQZ46}5BdQJ9FLB&Tnn_aVHhs<6G z7xf+p5zuhiJt;wjaBLi)PybdrL3K;w<4A!*zY3>dc3`R}ND?D|q)8Tb*P8$xv0t{t zxXYD5m+EzkC7{qf-{L|2KZUlqp;_VV`%IQZHx@c90}^VJBBXPJ9aUDcODLwT-p+&;Xvo} z$QbM;YJ#O}0b=E6%eXazjoo2e0|SKN_>J_(;PoX&l%G%w3Y1&b5Ct5I@2Jt_D4#(9 zCI@|xtgTl#n62lS&U~THne8(BIY@4CqU^qtZP9-8y>1L?HiO~uh1Xq2@B7^^_~aUA z%fU!uRkZY)#%acJ`V8?S{hl<&^(Y55$T*M6B>?b?c`nA+0_i#z4JFJugCz9~rQtNW&Z~ zB%1Etpz!{?zv+|H$ssKM_s^V)umFp?yGNxqj{wOWk=ah=qIFlL!D{c&98u7y{CfUG zYT#kbBbP;C+^>qe#Jqp|5Zbg&dPGSn0YCDK zi|F1XJV|vrQP3`%eVF#iz zwmdi?v?Mh(wgl`@{?KlhD8Btu`qc}nx}-=? z1;)}b`4Q>H{1O@+q5k@#$2Qg0-ux)*3kgoj{SqgW*l1TihI5%F0}4cnLwI-s|78{M zIIs%LPZ4$XO`u(t80`uXL32VeZ2!$+Jq(Ser=q8vE;>J&dSA=@;?R}bMUbNsu-84H znI7DQf1S=X!T+Uepi)RpBoUJU-#I?jgMj^|KwAj^{uGd zIGA#K+a2ndAa-HLjN=-cJ``o@vuy!GiF$~vj|oRHssbrKkPNqT5@L9P3?rBEyLLr` z-dQ{PcU?&3{p?a2t;T0ouVmb+?YUAOY?=8{V7VMYs80uN6jUV@Pi|SnC}5;F-jiZp z>mGxDNrK>JSMdaWVJ8?|Z64)+{;w+#{&O7gUqzre@Gz=A zEbN$CF)n<=9FxJU7kFV=_Z8kx?zMXD2^6b^UqNXfDi^JH3C|gM*u<#=8lK9IMIKt# z%+_XGv(%%{sjp&|?i%wX)h|V24z0bUEs5>Lxe{{4n<>ku7(bJ^+|Qh2xQ!EYfz=H> z$sebCSKoUeBb%WH_9VKMJa3K?xUbh<^!pq^v8%>YL(nN9b6^!1ivF-7;f!)DFEc`J zQZf5lEH4wI=cr8$RSR5#_jjJna-KB(H9NzW08=?^kyJ<5w6bir#S2>2#0@-02)CGI z=`Td|CoyLEy|q8wc=AP|`)TbZ?p`U6&t1i&I_rHU!(OtbkT`J|;GPy~SMdER*@5Ib;{7?C!3C7a|0*udBEEAb9n|`$Tr5Pj zl18NC(RM5g8_1O0FP`w}f>CO6cup?&3kxrH|K~wIN!)P~JjbD_$@_S|87!<(FQtp^ z!2Oue?)0RdXKPmpFIh#X_~OwcI6nL&O9UV4m+a84wUC+net$>N;Do-hsit>1ngBhXpfo@>+InO7(!Fn2svp=9Cxhvbvf-&IS zNn_l7cB;VkKvk7o*L6M5i_XWRLpVptfk^akW-W3hCX+^-W*>j&=5&VSLoeS**ks+v z=@XP0QQRFkr{h?{GR6-HK=v|aeksmI+8T2IPC7qr z37?Vle`3xhH7Tn$k9+MFCkGd}`(^dFw< z{+o4p-xll%&+Vk024;gQnnbRxY^ThV+YskZh0)>Fb8^Esf@w%Kuu-MqB1tE~?XY8c zxTC0FO5hC#s?$bytLM@AMYtkukdd#+ySz{c^6(+mW21U> zvl^v|pPYfFU*giNJrHreagfNDd ziB(*vwW~+m|LuVOs$lpGQrZh5z86Zu{!2 z1CQ|{c#Q2_BY(}*oxEbM_p$ExHm{#w?;Gol8(p+xG%pW*O(gK!ZM-iufxqLabx9Rm zqN40%cL#~Fns7CB$>2-+7Or4Ru+dSWN>{$AVhj`Q*MUvw2R!?5of!cnigLQ(!x7uS z+8fo7nl?w+Z*c)13U|s!c(lx-G^#1oB*I&BlLnwj9D@9m{jNlk(zVevhGI#pqg9EH zX9!<4F#FS8zDl|LC=uGk2R3gJSH>CHWO6XwL=?yuZ?XiQzHBg*BvGq^vAt7rw}m>s zXLf5pvxUV&I7(%R=kaV_U;CMa{KnPmh~QPy=#it>ItCp}(?+${=Ul08xvr%z=fNxn zW>rz2SXQ+?^H*Dp#VmyaH<}THRdDAwd~daaNT4!KtY%yB4ZZ>&I4`XJNCW~g;+i`Y z*?claw=i+u_g{<-&Eh|Y^pMM_1M$+1iEJ7=c=n6zwo2po={CP49rW+dDZqJpK#(|S zVmynx$`;d}@2hEep1o1e8cK{%hLU0=fXF!nU5?k4w{WQQ0N+0! zdUnB`5M#jmz!Ou$~|3RFOAyxm|CojXq{CPK-+7`z~@I;hXMO ziM$HA53}hfNO7)VRRjjSCB~O0-1H{P`jA^+Q8JCElpez*cF~e(@RZhu(T<7mjdH^< zDHRmm2`2Ne$iOL(LJ-mSs=;i2IM2A#^uO#86Obu=gu?#-<%RVY44T>YL_z0&mL=iw znIADo%jw`=iEbQ=d;L6u12IRmf;r;HKg{=?cw= zw5h7-DCHUYm8!d^;b{&r?r$jO9Jix8@m3SVb$IP&(;y_6S>oYUQF*}t$9;N)Dj`VW z7B%y4Ai*{~MSMi5L`qYiRvJWRqwI|63q@0t_esP!9`8)iy!`-ay(8ar?|x!<3!`uE z8g@jV;KRVxsa|j8uiUB?&=>MD*fOzae)6K*$Zt!)+XG90J6K8IuAWw>_M`*du$?5K z?O3BDDdOFy!Hm|V9N#*#CNwPN>J9x+M*eHF(qq7!5HO7cqe^sNh-&rf_H2oP#Re@p zzxdF?zFQq`)r?bHI844AO^Y@%|Je_5h+<^Vp>R`$`<>I~1j8tp=dp$u)Npw>Atw8- zcL2HQu8>Qcr4GiSW`vAFq_3x9$MJbjExg^FB~Oz6zl7A8=a96B?MLMuZM2GQ`59XmIzHR-TncjgWFmU zzN>jIMJzz_IoGoRaSwXJ1mS_2$J7-x=J|c(L`bH`PY0-kwP}ffW9FLpa0bMFHchcE9!wnizv6xG`=w-V4IxBw;4xREReHE}h`vJga z1sZQ4({(!O$-`4Lui9q0P*OtMUv1ikOMK<`Tkj3+d@TuFEW2lp87yNNpZ@3X#)}Ci z2akA|wbh6mL~rb>vs8Uksc=W=48b2>Swd8z&Ut6n9&?CTsN1-EKS)QG+CSyv`(3_i z+n@gI2PK~_!S8U2h28N zFY5*!!F%|%b(x@;)#}xfkpXU%y_v$oUsMSyV+U@9uMuOW3HjS~}MSWuT~_6NEi z1-%H??}_Lmxsxyh*DU2ZtNn2Kt|;qZ*l6plIQIlm3@w9<8i6{T`gq$cR!|7 z+I_jx{ViYU295q~_50oS-Nilz&D{MgAo3ti39AXpt{)S`V85G%aA-6;s_{U7*!vFp zgNYvWziv|r3-kLhUvc%Iq|OPoVnfO7^_u_Ssa_E+VvXktrK9(Jx7K1*u&MBgqKpmI zLSa!+{|_Y%+6YQyyt!!%29(C()8C3KMF{N;znIh`Rtlbv99qkW#-&Z)`+wW?C`GRIp!N)+bWpJ3dNA{iBzOI9N*K6cd z^j!M#mq|u&OWOpSW*e+#zQD~~ivHC0?}3iY{kk%Ss@Obl?p!bvMD&Fa!;N_pjb7ro zh{ztkcVbOc{|>jS)%;p^ooTaf9360HU(=x<(9pZQe?OufpW zu4`~#{?wUgey|M>N|8$SV%RT!@yy#3GnM;$lDUXIabplqn)fvj<~MQVFSe+iCJ=UBnpm$krG>lzh~=35X*+Eg}r!jC|5 zsv3hrCD*hzpfV@F(HxtSn#rfLDTCW=-MbBMl92l#4&yCX?)117HyCl}*#P87u)Oww zh416TRP{VFY~M5vE<28z{u>rwy(0h9F%kp1O8;HXrd187U~Zo7&=HI3(#mw>K3-g5 zKvpj!zNP&aHpP*>7{&~1rJm-0Q&+I$ON^b#7nznJ9h|2;^qhCE;JCmmyvd^D*H9L6 zdpI2)(faIkl^tWtzE)hg*!Xj0vr4QyF!M56nP}(sVDH?A>MWG&3Q|lse0wHF0ZnnLvPyNS+Kr3v) zYbq+(o%buutym|^85gZM^p>%Us_U4`|3Mf^7OmOoIz#W{jtE1|moCHb>!&spt2PqP zIxm+TFM2uTeGkTYtoaF=|9ecuN``)KXR5FVGPc*L;?Mh@RHZ9;qMC7M5YP6|`#s(J z&Cop@iFIntqwRu3N2fG!Er(bcH}M-p#+CIDn)9&B-tbN7ZSAC9iu*!3xJ7zaQu!y( zY-MOV50)acld+GOkxBvzHec{l7hQY8A4@b~8lm!Im&-bTSRy>)rpZ^L@S9s(Qd{p4 z7v6-<#Kmu;i1^^+B0mV8v5>Q(73X$rHl#+`Bg<8rwFoaIR=w3+y!4mt#kDd!XAGxf zNzgKmQ#OrW9m3LV9ddnWara}_WxB4}4n*+C`nU_~4+e(o%Yc}oK~0?!;fqd$DbsKRS|-KF|94~D6^4Y58C z0T12dJEPd{5z00Mxa)JcwbCV~u^?W`zuty3Esc-nE|gb?`oEZvPJ(sl%16E%P4^L( z(Bpkq$}g%Ls?n1JcV4_SW^axW7L$e?><>*scWDYn#CpQ|o;zy1+py4c#)R==ky|r@|GVCUBy!{aUMj&7rI+c{p*E`;uAzw9hxL@*TZk}5{I)+0k(KaoH zi_90Qj>m#~oL;zNtz}t?=uml;>x%kQ-Z}UB z=|;+wH0?f^MZJW)6Pssor*}%B$QzFreHC-1Rs)V9Fa9$7AkrH1-nkn}^mz64x2xPw zY#kb%;MSGZo|03i?FJ5Ba1$OKvPWP6NM7qN5+%Y z@1`TK`Ku_qcA=Jo^)t;x7%~*ie*VXT-ared?%7DA5`o;ua85YhIbCbjN#xnFt&wSa zef?B|k6pv_(~K9R-J6Ql1_X;|Yrc7`&x)y~(C_BZJG}eU(|e;e{&b=8(RAyRsT`lrYcs2L z-j%j6Vv;ZMw2knscY0{UgD{06*@6q3$~mxB-=S=9xE}h%+2_r(s`AA&EczPiSl>8e z+A-P22`395rSWC=#cCc=t~rNCPnr96>?yCq)R)*#9xSb)%0}g@--wd-cgEpgVYKEs zELzwW(KFFIK-@Yo>Erf1-TnMHTCV0Ir-0?$ya%`k>)SPR7mbVo^m`$|gsM|ZR zPJubW^@-i}5GUO4?| z*6g+L@?|?F2i}xq8yLJjfJ7cg;?m(kh2xf#d0>~OFPW(#)?dhZ`V-#<6v<{Y;QUs!IFx1J})x8!Cwe{2;lwaB9n1aCuUx#Xn4 ziAIr@;&WO~fz1%#LU9K{lvH#d7r4V{Xak!wYYAvANmKai{wb{c7F(i&g8k^z;d*Yn zs1zwMq!whtK9-_3k8e?#Z-wbjb( z#@+A07uY&uV$eSCU!iCi67g1MjFq6CQ>FR6I~%hDOIWLJMm*l5Q8{e1sPPhBAd1>L z^}ci)d+g1OdD$QL7s5%Kbq3(mw#7TH-{wC7g5$*xG4sN`7DXa;TuX|3J(?}dto&Zc z0WVtN+~UO7O4Lo#LC^DQ*?0$A5vb=k2c@b=sLHNH9Wou2f`ApCrpQ(Aoed=Q!|RSrIcQrUeb4wG=#j<46H*(APHYE&LLV=#BYUm|NM%* zx^vIfZDYWxupvw@T8lNlVoLLm^WL)O_R?tJwS`H}+?!P%ev6w#4Z(~?QrI6RkG-po zmRLAkH1rcKuFNn=ekP;J@;nZeG z2>~FQ7M*?hsnJeAe zgyHAafe_;ahi?Qhw6iW(4*0AlU0xx?M_pKsenFh+^D^q~H5qvIq<1IP!XGMWr%_>^ zsNW-d6650x?uE8nR3Ee^{sd0`ej5qNZ*>xS2jhEF4~dZH_vSP5ez)yvw8d7C1UYGv zJ$&HC&8U-8kN$L@IZky$&@GT(npyuW1f4=5qu1T@emzcwzvLchlFPH7c8<3^$X5M; zAegpt?H`oM-0#O$8uc1X5}jP%txdbnv|gfBf=b zd{z7@PV2Rp#_<%^v$P+L=~Go^0{>VG&3%{wis66JP9M)Gyks+{7;eE@SYjs7_B$x1 zQ;^5q8^3WjY~X%@rAI|w?CTJ1IK}=cPdkbg=7hAWreAV;!dqT^$cEc~`)JkYv1Y>K zQXBWhHc6H7gO$7ibQ2e8Ot^mcX9WsF2nA(%Zww{pYB+TTu4c9+mw($wVB&ql+jE2Ifc26 z{IW5lHC84BaHxpeXxd<3?5H(JJ4SH$y$me08vqmQ(N;d(NBwt{OK5KRRp~i)XLyz$ zL2|ZvPh;z7Iz|w%v;2A4^wWfQ%=hqLVOVh$ABNy+{xS6FYERuiJ=;Ee%)F6cP;?T7 z2@tfUyB}Nx+stnp0~Cv}MJQZOj4}4hXHK7N3;mGg=c*`hYJ(HZ^DNo3IqQzrqjAEX zS6BD5pSON(@Q9%bc!UwdS*}suxkwsj;RV_M`??qQE+*hN-Yhxd$Y=X|_^nQb3x%14 z&VjgH*c(6)6ux0VKzl#@JkEn5Sk-FeKL z%@HVw4M|D4`q{M8_WJJ&q&i<_%Pt;hNTotuI?e1(-nF&fWUy!Vc?;>57n%iHh{wz zyGjpHT^45N;&oXBkXzeU2lHHYeiB+260Y1g#x>T;B}c3jP^P6rEb{I@J_OhX>Q^wG zWX?3G4_)Lk*u2ne-0KUF;Zpsa;*W-d+sFNoHpquNfdE2-o>pqyLqJkTsB zdQXmAW62>B{mn)CJ*36T89oD1NV`9vDsC?u2kmxWRuy*!zfpcKEu>7P`oqHpFY9As zm#erKpG$;~+-$mDsw@&Ysei6>U8e#jIF5G>s1qxg{IP4Z^ZoZ%PsRiHbc+8j#yG?gExi@aX?{tQlVF+^DR#M2i9j}za(7~SX4Bgf zI-*>K^p`!dPmg~q!WwPZ+8|URdl>_cUdcD$!M%YWN$PJkQQFlRv^{|aNJVt@x9C|w zvdFfES)PeY&~g+PBj}umfL*~JIiOuQb&ztyUwU_XlXtCsx_V}Rw{p^&HB%lF&%gaT zzw?8E@8sPZ>yK}PC7p--e2}H5k=2n7aAUrdICf~Ra59y&xY5i^Qq1%npdetU4r2`z5H#Z2uG|r_abGoYzeBHvnbf?8?@dO?{FcfO z=;#7gyBE7bhovtb@Z9D&oK0@W>SLarb_qKv1@D2eEh{vTM}8nBMg@oxb<@nIxvx4d z_!&5~ox}UM17qf+&4>Xs#l5I`6y}MpoFR9axkUY=3cC5V5NK?_w3gWwFD5 z7L&~_qDWew$AqoOMNEb`KxGjnua^yp#nIN6(cHrjoyKa|Iv7KXLAm$q?|#Gt=6IKM z1xIm{n|CS&6dJAA0ZMF#`!PLGb4sOTNySX4Sl~=Vo@+KcBcLZc5cDLw)3j@EC$ebc z20pca;g2@%{m@sTwT|6WBjIC8woJe`NlmtJFpY%F(ZUl%a?(nC2^P~6Am2)^0$05d z;i`A4Yp#rYm6M(KmghoS6?HWZg$g}3B;T|S>}m8GpdX3aU->SNTLmnKQ%FmA$rRav zWl`CC8p?72xC-T~*s68F@iTNVN^m9pYm~73*cY%*CmvH@9{1^xSH;csDXTKVFx~nE6~$_hk)gxJ zjoy>b;MaaV@CEvFw033l#cE&(3OlI;^qYW%tm@T4c;F0td~x_H>EKqX>q!8D1pIG+ zAi}GCaIoJJwkNc(wLc8LO-G27y@<$rHREVu50S>|xzc$CGX-U5Gs4K~+yRV8D*yU$ zN~ZySlGn()>RE4Kx0KM88^5s$o;~c)Yw%S?R}PgP{`$}Ye1S(1o8HP}{YijRa_t~W zUz0`>pcD#rU@-zAvfog-h!A0-x#}q%9+4_Wu?e!EYOCKe7Tx&t=*1sf|*UWdi^CIuSw22jSSUkq0u>$I{o)|Fr#+U^h(x-QMf?_ih=o)_x@ink_Qk)eCI ze{9s3aSzHZ`Udaoi{Y+Jv}cN%`Ij$eVp?^MCO z4GUR4*w9+M1;2g3FC4iTz3d)#+7VNzVM~l)ETsW575I0IrPIcK9CcIRR#$4^8CnC% zzYh<7yBa6`?lh{Pa3v3-5dc)71tp>&V$tV_N#HSr%l=z;zyF8JqYUv$35P9&MWf5A zJ$0=-_^3sJ#bMq5+i2yVX2Ufn0&fen?h808g{Q<1pFA@SWV8)`{Uq92DLc#9&C0ux z8q_6mJ9ROSPDERwmG}7S=qR2fb7bTkerSB1(lC(aqEf&OvJYA`VO48yEz)!-=inAx zK)B;aSN&1X#MGZMAC+pQeYy*{re5qcs3pwOBW-M#J(Foj-!#52K++laqwe7d6%XE#jp@}2)Sk#FxnyC1A zauj9Bi%|;R}!NRhNlDAH$c|J6&?6QGIjc7Na$cl)W?@@K1rGL zK-l)jhgiR6#ESe`BwgKR@-$+SFpM+kr&Xzeva;6=7d?zIh1lk6tb3ZV`p4Csq&Mv)ZMXWZwdqz zIBmqS5QG#McOg7-6*5?>k{`*hX_7X|7IRlkev6t8_{Xi|p_xR6rC<8rd zw#9V@zj4p9ouwwf!t9_9v&Y<@%kSmQ3j-AEy+=yWzVO~3+v_hpdkH*zMEg_sFHeH2 z#3nDjod(jN5U{ByyITe(o5lFDG729%xc)5uy#APN7T)72#?fW%ASn53UruuC=<%6w zSEyrLT**TP&1eIuvK-xDD19m@+d=>a8I+Ug+j_SFSx)=E8*5INW|ynRP3nq-`Fr{> z$Y{Gl-sN_qLNG1WDrxuh2gJ~Q7LV7+74}ywp9=DVl#%x*e}4lnKKH$L^O~R%0Ze?O zG`zCT1M$;w#O7|Chf&WJ*`J?RZJu0ugXa82LE43PniHxVQ-!0;Dh zztzD+=@_!)$N5nqA%PX5w$P6O>{rLz6#tw$gy?)D*Ww0t*k;O>TZRxjSS*Z+Qzu}Z zRW*R+=+B#*9=O*p8f-m&J}CeujWCT}t-jDI(!sk)+qxjz3jJ`|>o>kJYa)X0y@OQ~ zn@oSkYsUymjOvNa+d_((7#F~)zM7$TNWSOtKG331YNWTzB8bVBiMKb^&i zixo23W`VqI0^~8PZ{Iip%%}3wuX(L?=lIx9Uj_fFo|3ElIu|{v{9YCH!_%8N3{@Az zBW-zOl$plj-zuySbs!2gjlU-OPl=jafBw&&S_2Ew_F=|i5l6T1*%s=6K2_}tJHwj| zCNp2On!B=(?WBum2f21I#YNdQWRBjxUO1v%?6H$y3sv1jb!pQciQ7eO!sy zs~9D2|GKn(o|1?yygppeoIS7pO+T7P#13_PXiV`TV|wqa^a3a~cI_3-lBFR~ROP>1iFa3vDY{ZH2VOxT0I z#ESf1&d>?jdVc*M<|n{~Qmdg!U`l6JC;0y<8H&-Tc;|27__46B8x#9ZQ4W~)Hjp)( z7RNi8TMbZXve0JdQ*^r{zWHlz(fDLZw2uR`hh|;{#RVQ`y8m+0&+tE8O za0;j5F(aayS#GeuAnGgY1Bo{^B;sGLot(MUH6n+L6)V(SY6@KbUX~&Yb+8n9B|A^e z-QA^_N@9s?v>UeAp!+LMkfyFpRlu#fvAzI)IbVbZwCHMsPD)Kai%boMm*QM#Jj)OS zKN1rf2wbTvN5%t2FqE2t;xNat*y{kE zqOkFsM@)5Y5Wv_W#jgKIpPtdW+;@KXRqaUGr>Bimt{+{xStP3pWtalTsRRI+GEw^1 zs+K}@@7KB>4Qt@%DY#Za$vWjLt-wEG4_J~$AR5isuaMPN!URibnfn8`w>g!|A*>;n zm*J|gX5{efO7dsRYkmK+RCQpWH8|1!vStzG+Vkfr-+kX6Bzl=~q4 z(T*j5iTw5w6uErAi(EnssFguaHYm*wM8Z|7y#|x-C&;oK#m9r*XZM9jK=yd0@9J5? zmR*kjHxDa_gbRVSu(f5Hnw-GYWV3+yd#7>Ww*9Wy!T|^zIY^UF$ zePYw<1FD1~VM7bBWfNM#@;HQW5LP#T2iUMwWMC#;(se1-{;YP2ilTB9YY(SPk} z2M+s#Ds>2>odgDl%KjIhst?leP^ecUv#hU=Av7dl&<<4hC+&m)t)wP|Urs zniSlcYSKao$ zH?Gn*76K*_UOdb-ax~smHgYQeKn&WHa^O&lh;Gz-a^6NNdB4CjROIJ)o+*>d5kE?O z$ijk4c|wjZmLFvxBUAmubEh>=thK>Y+@qh_W!pn--Q~{9x#zh(dRbf99`Dw2%S$gP zcrB%opA&o(Cl=80Wju9Y$3k@dER}zzRE&%8crV+qVLyGTQv@;Q2mk7!&U*AmD%|=` zNxMDS7Vo3latgRh$*g1Ej*CA&TH@3I)j(0>cA%^{ijBklXVApw0TUTLC`+oYpe%hE zpyA0ViQv(r6T4^JVaByu`_i5DWvyea*^&m&D&_s#cjcZ}r92Y5{c`$cZfg*jJji)T z96qL8>knN4VQCT(mL3B1w?8B;+1}w+xNHg$>&WLxns4p+j?%vRjFeUtCpSd!&;n-rXc+9_m?sL^r&;cnJZ84dDEd>5=Wb2 z*t5iIzp66Mp0}>Mlvr@Zg!cvRk@SNAXTR#(ARqy=Sau(MpBiWziIX!BlH+M^aaUD< zWEB|vnw3&%ALmN?tCMHaBsWk`FnV-P(B%mQdM#cZUmLDncNG^CLyt>W0|~aHeE3Fd z<@%H8X~S>AWM+*z)pxS@am*&)={7(OWQfsCKFFti`K#1sX1bY&zPE zG;$yJ`2AP+P=fW0{3qmCF=iBO%7f8Yt?;UF{nUPnYi+!^HYho@8$OiA_KW=GdS*eP z9laR_kiJZ2Rx7Y))Kg6JV!7_}gQ5L$^(#e-69KubnQ!L+wbvP<3{TQu(r@$r3By-|bLACP7 z9k>mc2*niuDK%_bnLA0=flIvblq@Wb=>a;5JvAyTQ#Dm^_3Z@gG-)YQ`IwU3YS#a0 zv$#Pd)~R&3@52W#ZG&51Q*L27I+kz&SpF*L5dR5vYj#$Qpd$)b=+{+rix$J4V1F6@ zKjUIVVS`G=r>=LV4Uchs>}^H&&of@r{nEQh#*_QyxNXp@?*oycYtFU&Z!>h@s{8Wo zoze8#JuJiX!6MG7^w+s1@1z7O$^$Gfk%aB#?$f#o+hN-`NyR2-7t3&nK^7YorUwsVhk<{p(m6sEj33#H=6ydF@iR>#NbCa<8NQcW{+AN<+HF)> zx%H5qJ!A=Y>D43B+l_)pxk6msx-XQI*D4)%*iizO6kT$mu|*GEc*+mnt73PAW*5MU zEUK>opRu5H?vH%e@+8+_r?d*yq{-{hvb+1x$!JTY_NzWE1c$wJ17k;Lz;+%SGx^9d z#rI=F`U8c_8JLFpDk zP>QE9m8jythP7iMt`YLRS~Al178N=pB>@tA?*`a^A8RUD6dtx#8s3g=DhH>@S@}BY z#L5X&eOET=&Ixgv7gU4O1>{aw++iIFT!_N)=1@Zt%u zARdbQV*5tKVdOpx?NjKF{o$9+QAjBtu}}S4?vO!0HKHB?yG2GL#vN+jmu+i3t+$ve z&9>SRiC=r_RC*r?7H;n=9ZpsgDh@o#ei&m$H$w3+Wpo%b5(M1HwYz(15@IN08?2Qm zgtA(A0y0 zCd5B}Ka2+!lXl;?mq;%iM&a+i=_a~P;{8(3uMCsSX1RhC_XtmF@`(2*wK6FVkG!8%$3hf{Rr1w z=Q`67-GI)d!nl-W#=d2IC);mXsH*X`=n1?k9q1Q73Z75R3iZ#Pz*Bz0e{yn!ll>cc z!antA-sK4gRgPhO8)J1$-oaPh67as4pcSX zqsecIgp!EyMy9JCRuN*p%Q6_?7XH9$d!JR^AYP#|vy~~cdX*5w;NX?}ZuNd|>6BN4 z*PGLnE*)j!3u`yz%bHDU#tWYF3d}p=&0n~|QDGfMzOkP_n`e5s-A;vRtV#s+GJc=K zgot^Btnr7B1)3YSt!6fpcr%Uty7E-cB}d>enT!>hHTAsPOg|sd!?hzY$8UAyVOoES zkcrKg-V}EAn@`G)-=-L9yh1apz8dn}w3@Bc9Db6KKDK2ojn*6eLO{8_)enpE=P8i@*>}{Y^;vsLI_bmjvK4$YrLIM6H@6b|_5dF9H0numO30u#IJ zG(&2&hIzkLTI<(uR*4WZ;w@W+Jh6SoNTM=VluE}mF70}L>s^O@xd#l;&lgiGTT8<- z<%l4DI9k3Pt=gZb5l4;fqm%xr7a*sLA{jL|9(M3FE%`==G%Z=|#&{SxIwNsuBg&>- zr0T;%2y&n9I9i&Y9l@dEab^o*Ys`U+fxnU7K8crc54^EaSVgKY&x zuw1MdJ3M>471jsQRJd0kEHes1j^c2M*za@g7A{5}56f`DRlH>-C~9JMqGw|4l2<6> z?EfO~t)sF`+qUnE4v`QMP)bll5ebo0xRh2w5orkp1f;vm0tM-o4go0%>5}deL_oS* z>E_!{9OoYAnfrd9=Uwl&))#*|Yi8EWd7bBR?6GaX&5vGj-_st*vvURaGHVT-**ndR z_>UZ~rNi40u~`-2{eEMhPZQpNN&GGnclBYlRfAfmagyfHs2PXT49vpQg>Gw%LT#sR0|DuAfM3#Ibw&YF`%^4e>)t6fsjv7NHz`WAt2L~MqKou|E>V<;9qN7i2a zI7z3@)S$(MKhCC9Q~ZDl@3>is;G`aCPVFJU)&{EOv)7t3_Vzr1>FyTgYC}`)Ox)tn5iz z;lGsqZ3Vq6Q$hiI{W;lX{EBzmJaC|>r3%dWueKje>7!3`saQObS!HuKd1oC(y(=>)|JY@9A9Nw ztjUVgBbWeFuZf7bC`l&Q>Iv&+Q7L~2R3tZOhj{l%b`Ds}XbsdgFR~j{fmAav%ip&# zR#xC7S$*Bs9aenwv)$7oH@E>O`>+z*SZcx=b^Gq-A9mEEB2bpBj#IEIBv7f9+%|E4 z$yF;cv(TCOQH-PAH%Y0;CnLT?m@NIOnU5ZLh-&3AnM(C7xc{*|3>owh<9FrMz)*WY zkKqfC`J{K;U@InO=UDupH}>TU+WWx~L%HAi;+fx?4vNO2yeXeBvsLCXEsfSGB^vb*6j2v3g=K@WIOA zIs=LPcjZ5OnW4ezJQh4jmmZg+rKk8~rg!loSJyW?=vYQ~>#o%wYo`J5(D_#I+K?f~ ziT65wFtb%ahUg;1{3`;w9zr?34YYC#j!I8sylqY!=&|{ z!7}_&Zvhpmxzg~{s(12b1yJll71pa*%0cd*Kw%|yOA)xJp7DR7j>HeD=iM`T&e+ACeE9Rc|LY5q$#6FjD~1T43J2~- zmStd<`k`=yGw2wYp2A-oq=&k`i|v0@)`!lsBV|1o14o|7EumCAJqOK3PC`;`?)DR( z0#E0glIYN=h@tiMAZsFQapR9Cx^tq%u?0j^@s0~hh~r3a za>%y7QrP$sWStx!B3)b27JMhF=P2|rTKdOwQkLEo{TMUtGk}tMQ0GSZ`~efSt5EmX zODYjmKNmPJgME(pUS^hw_}aGRvpkLR_=Hh70U{fjjh$ac_80;L?`iK~x$UW6D^n|s zx$G;{SM|dO=1kOzKdaMgI{>X@Swc#OPj!-qAIl1y!% zd~yY@JUbg(+pxMKU7_?ITgpK>kFn!?3=YW=d~`75D$@)(txeMT!*|iS{Sr>zK2qmqyr@>heT_`#_NGJ?1}-Ko%Xg|N z+1=PMFm0Yc)?U|ul_A)1?|P&@xWvcq5zX#DkY2njtSWTcXwZqdv_E{?_z73^Tciu3 zo@(3|{!WKcg-RuEFh!+zLN|Galx-QOCopRi&CTE&Om@B1WxN;Ki+p&P!y?AgYOjv3S~t9aGsX<|6vkIY->>*V%lh z)p`45#C?i{6$iFIEvT)Pj|)FI@%pO%Ag!%K4kPqnBT!L?h9M8-?B(M_y!H6IF0f?a zdZt&%OlqM?(5YOoemu%`UW)C+FNAe3SdibRxyeI@w-Ap6g-2+{coB+GXPayR`SZmzTnA zs5Q7v9weE?_1Na$CibvDq*=zTXe4zXw1198j&p0s%VjPdAa-SaabDstkK@;|(yof{ z^$v@nvDgcr3KtGq4A>`l;jfBERG(HO;u?p3l&#Zj;6Bq0x#-jer%7Ebx5@o;dxj|v zpHotnlAx&PUAe@1EC@#%R|r#cRKwg=&+jOHHI0rq_G0Wsfdet7r^{gRA20-4ppLXD z0^U398dMnXPNM3c9bdC{%5|svgC-e|&?NN`nk3bO^^T}Uu{(zRtP)yjW>j-SyzJwS znlvwcp4su%HS<9Q%e$c>drn(dvtFRO1;u51!hNVN|*oem!k_Lx&HQ3ZiOlb!m?+VUqbGP#eG)V}rw1aG+*hr&k1e{?2@d*=I^tA( zAz5oFWL&ONNt#;Na{HK3^-obnpz0!Y>o7$nEZh;=((cz|V7k%aT7ius+(onEiz3g0 zYujKsMn?6TXuL$0i@U(g<@*A&yhh&HX4Awp-$({JNOCKkI7`Yn)T^ot&e+|?bt}P1 zwGA;CcO50f9G|1(KRB(6_Pof*glX3<##A|4kSp|5lS-XMlmOWaKIk z8I#K;N+TU-^4bv|qiPE8?1JAH^AjHF{;*}Qkl36|+-sB9R1k|C`2N7S>cXJ@6M9~x z2AUj@$M@Q!%Hr9rFFpA=AvHiEoN3>^K>`NbcZ&qLZ^n;FlsfHh{^$h(cJM4UuS3Vx zC(YZ7CI0r}7r$bdR>xS1{lhnM7XwpX5Y;&@BmP_u?MtTK>hd52G9%#GU|R1x6j>fg zH`5Nz~*U03ENtuFH&yKaVqp>paCJ{2K;0JHQ> z8KMr`7|Sp+HwRPo;SX5CRvyvWrDj68sh03tELaRrvgbC;KBldx`9snnrhLw&`WI@0TV1FocwzgV>qIL4)HbFozFJF^;V$!(Fg4aANP^I7pk(W*VNhYl zk72vaHytI=@g*gFcy4|2!DE`{BUX+>o5J%4nVZ&Wc5YcEX-5$RMeWTS7u>~X^h6ox zr-aiPP)C>Di3mD8(7n$I$P3N}!Q}P&$geAf2!jUI5uli+-M>9f2-r@&PCRbmJOLXo&rAXkl`mUuT8Pok=bLUzfi3+|h3U_sT;S&=`$b+Ss z6NEghTI=z>wg>E?q>qoiAhGN7FNCfe9~TYzQT8|$*dBij{(pVXha&m*Q~$1Pzjpn9 zR<>^*mhH!n;)|*Ll>23&Ut-TLXp6em61&FyIS3LN23E~Y`(n!#t|{Thc7PCuTvYaF z@V#_tN_b}MHOv6$M{9!YnY{gicit{{(6uQs=Ub*~X+`#_@EQ)Nlh%t+IKros`(;g` zN4GYgH;b(iqjP9YLu5&um_^{=`nl3;&bfH6`3}rTvaz`l#nkJ%7WJ>@D8t@k+mp6O zh9d_4@k~`mYO@N6hu}UxOob~zO{T3~5lfcT#;VJ4SUol@FTN z&l@Gk7X6#9ZUI+abF_S3?E>|6Tpx!*N;v;nDGlya*!hW5F)g55UB1aN z<5d?u>dWOnDN^$=*|O_N-^fFQX7iHwm7jL?oFCLYT(cKmJGmt86e;xiqbUQ)7AF7m zY}=Rsi4A?#G6uIduLfkOnpNnIfT3J?Hg2PeqkA=I*f1_|e|Nr*F{b^xa zZbBe@FpAR~;%B1rr|`rR=oA6S_BSvFlmIb=*ze6D1AO?C7yca>&Bwrbf~74wyaiTU zvLn)Ol%|i+vKMn%|YZovrn$($74cHWTb+ANXja zw(n~d>zO@bxLbQ&$c;)x=n}d$l+WyuFnl8MSPZy$hQ z4Es+^U%d#766=I-SfaEa=meo_+ZzJTox^j~8|7=cavh@WB>GBn4}dG)fZ>O{H3m1E${=W>;HJ)n58uldKad5@bdB zN1I@Ldtc9rA~gRmj!hT}v>!oE6C@+<%nO>th^;%)s zZ@(QW@G)1lfc-xV$UysWxRS4 zGkyl;v3!XM^Cboxw`hhhr{aC^ifGX!^-7iWUxV>lMsHSr+gi)!*_7qqLy0MH1&@u8I_wj!(B_%cx*zx7Fst= z)I_33oY!aDVOP&*w_sVL3laI$9a_;G{DKXdlw&y7`3mTZ;^~XrC}+Rmu4LHpO2jzx ztzs_40e_tdZ#w>(J)xRvkwe%Dz4=Q^i$}Db{eDsf2Ot!=MH?-M%JX-!Q4ix1pXD}b zBk{T~pHcS@Pr|FhgNfrLu`BmB@L&y39n}_Pf&Bvt?M4ro&w2<#PuxYCu1i1FU2m1e zdj9S?rTWJ%jFg+fAW>{bdhjt%0rWn=?KQ48HlA6ieoBXzo6M9Jm3d zDdBM;otM z5Z8#8Uh7n8#mtgN7_6K4LvVT)5;nh2&N&s;WTaFhD7`R-hI?h9isII!l1Qz`v1tPU7K6? z!NO_>l#)b?UXee8+ngY{?c=I-qt5ENbW;7MJp2=CUhy=Vd+S+UluQT?oxcToTD%SA zy=|`(#Y6T-o@M*24`XQ)TAFF&LO;X}+6u*U8v3vooyLwhz(lPkoV^u%20y{GY3t5*!6+;j z+-=Pg2R*bBCagQVC4R90_TM??)?E&6U>lhIs+5%X<)~^tCHC@NoM?I3bLm#4-D_b# z7NiY5&0SY*_Ilcj{jgrcfI`XyR)=nkP!K=6h#`FdBWP^o0E)kMLpKwd&*#100z_D7 zu+ujn)MSHm+1T}?Ow4bnw80H4{NM~-OJe}Nf~?CzSpuoY;=b;@@JmhRQkIn4Vl zK+%;-D42j4Rdo>%{DnQR%JsQ5_Wu1TcOCuj&-`74DjxZ}W=o#Z56mDpitHmSGd5`j z6Hdw9x{WsnRr?38O^V$psXqVLsee1E#Z>^K%!HS~En*Hks;_?v1y7rTedS%vO^!wr zU<&JtsdaXCQ(XQs%5sO{PU@!byW3h>qsjRp5XAk^D_6R+-wuRLXN4SY`&?O2I&dEN zZtkFHwxqPus&r6h7wcdfYwXlvP;zR`YWrqSrQ6lEOzj+V?G!@xo&G zQPAu874s{xt7~8SCs?w7zHHm>JkCTf)f(94K|TtZ!Ti%to=aPx9N|B%laL8w*?a3z zb1J{r)M#n4cI}QQXs96bbU&%Na9Nd{S(m=lJRn*u$hHH0DpCYVTMa( znPT>4Kd3D=b`5>bt{eV*Qx`w$TYWhcT<+MA%h>B&Wu`_IKCSpl%myZvm<6}{`64W~Lzqc9~e?=8{xEYB3*JfY> zRS+|Q`l@mtszmYn9-(VCz45&c2aZ;G9S79WPFC9(=hZ)}ET9VB)vuK=0pY*(QrYIH zb66dX#qIS`%JKpY^&fFk#I8u{rZpskXDvaElO|Gtf=-hhB2XeJ__#Lij6>)6- z13z7mb4LG?bCP0%zB@1>Rl-S4zqSq}!$thp?MqgzKONIKO#bpLvQ6mTd+iCU99R7p zXu8bvk6}FPYx6cuPJYc0Hd`5%74L1+-rGC8u@P**kb8GqN}v$(w?(If#S1|nS|m6& z^a+nXqW{EW_VBtX7v$z%qd(iT{9ch31qJuhA69btEv=FJxN5|#d04|AhA*7m2g7h! z-cBMyj&@SXMkL<1bI(OPny=663Ky>malM6y3r1r;5E#FpMG3Cw9r^8SuqSZquttfx z!7h26pceDEP2Oa{h^r$l6`9g?SBLsBPqYFJ%aQh4f@rt0xQj9#J#X>?I^q}GFy0Bb!5bV*^9Zps+`Otl@py7zaagT^sAl6R7v=#yB#1RLsK826W;anP`Nvq@IV{S-@?0IG zD#(KI9RP)TN_ZQTBl^p)L%(;1lyN)s_YVel>LhXDq4#YO*LbC;@DzY{OALX-bH2Eg z+edg5TI5hRm0Xtd*sI-|Z4KA3)d%mLd>!=JeU)OuzTvY%AP#0K?Y%aL4XvDqowo7N zpj3k%`EyZa!Qn83I5DFfwexL?c>7{(ks(asjG`uV+TMF%Upq46*5}S>eXzHo+Z4jy zmIvUGYTlY1yh%QCmQ$*5^jok=}^^CYdZzqCCHG4r$ zH%@<_b;v09%wt(5@Ja=RN(xeiDYrJd{p>uie=?dTR!>&d2sLTu<;O%?&l1(YwVq~@ z$e_2Lf(@?%W>;)y%RyahafvF{A~PMu=eshbe#*$t$*7K3XYOih&e%8f2NKv^MUO}b zZ_BPDBwPZ&tV`G(z|c7>2n1w70UgdC7T|z7S66Dwu1^zddK}4W%W>J8)93{QoqweL zY>HU+Jg^F6xNj5HxH8eVTBTL=z%p>C90G>2k^FA8%$nySnjT`hK!5 zr{AiVI5x35^Et<+Y$fu1I-A?p8{j|YFbRR=iCwK6vUzoY6G!iFO7BAF-T)TqvITDH zrobp(6LtG9ppsxorCpgqPU##ZekC%g8u8U2-rHLt-?6-nbudoq^}t|r9x>N4ZY|oB zzunv4C}(FfnSxhQS;X9Stgw6~aw%cwt4yd+Rbc?7ERmtsy0=Y9{6aHjlVnv+$OCh! zCzLnu5#{bd#9Y%p{L{ei>}|V8R$#DvFV|+kO3@nfH#*twZQmA3qJm3T^>D~Q? zkQI8X<8QF)yODiNmoKJzP5bz(Gs3Ea{Z^H+GDbLR`T5RQ739mqC~IF*`W|`hR_05C z4g>9FE#FC+m>~GKVF^5i7v@Fa5Ni1xHrTPJpaL}FfEBF;_N==I`}a%RJYz!U z=v9a7J(CQ9$Wn|bA)hJ0^Z*FQA+uDx4*TD9vt1k%5M^p0=e;C#b5vUAmd`#_J%%qu zQ!5a~xqIWwKHoGqTzl^-*X=O464gzUji3$2m6-7^QF#Qhd>uSJDNEw@Las~dTx7x% zIY+Q^>MB0yh;||MQtr5eA%Uj(fp3O`ey&gRW1O#kY3!w(^03Jw+!z@dy$2<0=_V}*L?uw;D(DaM2pp)>5X z@1v;*Ti5CEDM z;pMYrPrZC>m~8vrVfsNi<(p+sGfPx8^(ufd^aBE~9chh+gV^BhOKce%4QL*6rm-7J zzrVG`7WiNXiV)@1xhFH#E6vP;N)~DRJnxjupzof{!(tir+GZ0y_q5Q7}#U-|#3k zXV%DL`ic2o_Z8%ekvpl<^2V?HaD-xR`Qe`>i>+M7H(g-uWY<}fn92ICH9N@uqXXrH zpMsX)82i?H%A!XcM&6PXeE0wC=dR@OW7fuI@U1rP`0aOmy>zHnB*REm#Wab(YI(l^NWYS8k%Y z%s_}Gcwp44vbFTapkz7Pxd3#>k-JD}p%K#&Hg6*&O)LESNO;4^h@SD?8d1_!!01QJ zn@$D{T zlpc$&gD-%FbC(`oDM#|G)N%wSfI=GB!HfMt`-Rx{HC!583e!is&}Jkzn9TvudyE9ufFf|TUxK1 zJriOCn+78o1FHpt?lGpfa5foO9;d+}@E4=Fd|Go#ICB@zq`KksrUzRj9AHJN(+kp{!%?~Cji3@Ek@4+RTNM~0?rfqr$d$nM!bbZp|E zch7mogNK{vufVFhf=eQ1GR50y`7wDc#E7ifsU{{Xl1B;8@#0#IA92N8f{B@cnpi)P%2Ca# z{)2F!)B7P!1TNWC0?6fB$w3gR3+4)swJ5GvBAo8dpiXB<_0;ZrO;H4PloJ^UcdJ)9 z$w)PfIOC3fc680JkJ&0ZLSEIL@brn>liHm>} zlvMf#$z$K5ARts)T5|pb_oq-}MJFC$iMM$o3PfW3*@-EC4UmjwV7tYNy8=yf=34i47ADcAEi#%A}jf_CyneX>I zEC=`6eeQ9d5dIh&fHiy$f=TkU=*T&2p9bTE4nshaw3uOhlXVfcLU|Q~eBL89MkTu< zNc8l#I2EF5m?gFzOX9>5^uZ}p0qYxd3^_hd^IEJ+)AXNQ(<+k|l;W{8zeR-vVJUyQ zt4g(zsne1XC#P;k!S_V_tbjrS)9q-XYw7bLmnzQ-pcY{?)(gp1R5umRLccMjF7`c< z-AP|1%)7H-dk7hx{g|3NuC(VZPexEj@8XyTyy`?tUIA3F5nklUeu0tI&1gu|o;i!9 z@#Lv*H}E!2<+Iat#;=pM{|E?~BP zrusmn5kIMZC`%aYRlskvxGNHf#8OC{y4iyP4?QmD1xB8_24^)aPJK-C3})%$b+~+kX6MKM;sL3DL>t*B6Lk>b5$jNS-OZS z7@wi&ZBiw6y>+m0{`)NDYZ+H8{)2_fcB%6vv_rmo(Pjra&i5 zfK-Gsb@0;%Y;0YH%Z?qM>VY)N0tA_n&gUj2bUE{q7v|+7=$D0)otID}b*%2A%)`MFyIzE?f1gJ2;=DLs1#jt$bT8aqJu|ZY zT8VkvI^DwRXu}+@cx|(@4cRwGZ@NIcEvT31US$C_7nD>|s@uzN<&tFB)b{Qy6atP& z4iM$}w^_|D4E+`whrWEMA?>`yF1^gYEe$SE9U8vX)2tSH*&037*fmEeFWn}`_TvdY zHyU(KflAju=D#(Kg(c-*G}!-X8tZzLB$6h67x$E*uLAIp{=K&{b<0(W?lY)sFZ$?% zzm|x?9n2-E`tI)OoJ~L86XLDJZ<$fJchBv0{T#>M{&(Zpk|#J7Vk_R? zm#sDVAc}2g=o|IX7>aRhK9gRp-akfRTofP2E<_w8mo#H=WbjbtD;e>=^WAKpyJJBHNFeDavmBL=bDNhXq zaA7Wmm!Em6-eZkW>!N8!Nd4VUjh@IzGnedd!j#e3Hg{)xx>X7#lV;X}pEq}_*RJf= zv(b5Rk5(TIs6G1ox8GG(zOw$H!uSw0mo45x+tY!I@REGmWL~CGawU*SEpdIB9XFU? zwwCTS#autL1kOg^ie>g$0R?8p5mlZ!3Lj_VWU42q@u4>A7qi@sEYcpy1{;vnkeD)4u zi-1BJl%cj49J`>8$q5#hN3}9e!{-V$bh^l&Y2!AEoodoj$sG@atftRj72MP9HfHij zL=Qz!i#bnrnl~pm*N-iom~c(@WYW+SWI!ukWi*mC2`Q67UWpfJs7){MDkdmf&mA~% z@M8q0V{aCv^gqtejlc%y#JW-X?#2*P$?{MmbC3Y4R=#;1xLEUSCU&0nx5lQuYQCi6 zr-kR*K@dii!Z+5^tRRAb(j}**TQ%@PR1ED-^7bC=wjCtweu~H%T?*mv_;CvOWev$I zP`6l=zhe+Zn(k%<1?s$orN*F_gTvp<14GgkT&Dq0j!BsS)OpmTdeEa?gi==?G+>NRPVIQK3WP&GzK zd2(Z^<-BGhe)Iej4QkA~TvGt3rabKB^E&KJ2+zyS`NFe1NKbz*oC~i4L9O>g>niw# z%avwo(~i{_G(0_%jWt^;qegf#v%xd>f{$4OOd4;WBCG#w z@HFh-34cJJj{2K=pLAyCbz(6+gQ9MLzqRhsodjb2tLaZu`O>3?5p7WNB9PQoT zSt{?l)~HD^i%<(^xCBt}+LcnP79Z10RxF*BKd)xpxg@7BiK1G%&R6wt5s6ai$MCWq zt4@5CDyb3t_@f9-1wMZJt{pBR$+gwHd6qMsqW3I4yog4vo(;2GB{ z#UmoD8Y~=j))n-jeOYF-jIW`^>YU1jBCW5FRDFke16w~}(Q-CQrmj)1G(E%FUP8KIYZwyhIu`8Z zm+!GTELudrg`h|o{f$7U^w$-!KPhMEe1?jrbkm0(3mX-%pbbPYTvN9%j$%cGS}8tvyK0!y7Zo2IzQnB9 z%eK;-7Q&XuL_PBTPa{DhmO_n|e0RS=Nxu{^!d2@Z@$n-PKwK8tT&1+vX!)Q2SOT#l zEUM8~gf0(u?^-w0hUnbcU6PBGyyx8A>ar^thQ+YO7tg8u%=gt8rFt|nP$Yn$7`t_3 z`I9)|MX_@4`iNz(PKZu9ghbt2M8Z9+%{|xRnhk;~Di>1TY&$jLTA;i(>bh4QBLDRk=3gKDL4v_Bq>Nc?@N)uy3BWE3JSnOuTb@AbYs=RW4YSE@EZlTZkMfAe*nWQy)j%Xjt z7z5!K;utqPLxbAd+yZ1*i}O~K#^dI&3~9(S$I3=NX#=^M&;bWz0!wQWIyZk@XeF#I z!R}UsY$N6dSKBT^nx|OFS_M+-=sbW|njoNRDe-C}M2uA$!h>Q>ef05a#D>hZwJvU# zTc?YYX)KyKQ#&XwgC93yZEfu=9=h>s;R`!OL&7epVUb0IPn13%!1Z&0@5PB3NrR%k ztSlOT*ew@~g2r0=^&5wjJYF19&V+oI0F+x^9+NB+E4 zg3QV~jjdIt-*)7Mxx(}bY}-|ojO&hcuYjPgy%hw9^a_BM&1wi4^VD0ztC`?+E3~VW zqyDf)q8P_#nZJ!q8cNfChJet%SMi1C3AURWJBg=MlGvVNG1&3-j2MblWRdDtKHB^> zFgMYaz(e=hz*fcPTW9dP{;_zuy@l6`%t|djM&1OFd?D?SSRGVD%Vack1cRK`aO{@m zjY-&7%jiEhqpAH~`v!x^HUl<%Tsk?A7@Llhn>NP_1^p0wYh0v%!87TrvHCklo%3Rh z0%chXYym7aq*=4$D9Qd5Pj>BI1-pXN#u&||X`^*doNGvTt_obtPGsjJ6W|w#`#RiC zxO5(d$p#AK;|2;hdU+}kEe^Rq6ny2!jwZnn$-orJ59q}Dj3uud?%$B)(Z~S)+{{u2In*YJ?ze2VIZhtu^CbLmq z&bxYel(W^zW(yyCGI&gG7H_dUEvy8~q>zZSma|3q-nzk35!W%Jlj#CVYCd@+XCeBN zKT+`DqDI-(mh?gBZBkB7J_>s#Kg=`_;K7S(%bbEMwc)xaq`kH@-_~G$;H~C34&AQt zC!SAu^Q)%?M?Q>3V;X7g2O)`-i9$5968rC~4m%^zEW`R~D>7~{1E@AWT*k9bjZ_Vr zqU}^fZ2CBf)J=^-eR74*|N-_E2rlPpj6eb7xW$pg*mY9ExByM|Mx-FpeI*<4ND@9c7`M2OaC4ubs5{ zzJtj6!JDS?)oDe(N=o>g$S#>36VW>}JinfoUz)xUQJa9D+A{zX#*~tRY+4san$Njj zYpO7MpAUl2O_jy)BIOrv7O*tAUa%2@%AvdIf)h3sp+qHAY^S?FQN|&$YFv2`_zXBs zM~6ZeqnV;R27;J*S})uPI5@0a#!d}MlHcVUL>5AO*i%Znx9j9r2Y-0mXd^MjT4r_J zWNc$;z8CXJHOl%g%MiP!6>UI; zd^x?Oj;G-E;0Q;L{#l{f*Rk*(=g`=V`}KONuf{#c2{3VNIPWgS?6et~TrD~!X!>{u zuZ)Lz7+cEDa-T^U>UB29^J849TWS{Z~NrAgqwHgH8FH~CdtFdcadyqs;v)=W>2*ggWd8HPAa^>c{HiBRdCAD z4%a$%B;Jt&L8Inuz`3rxn;h0Z)$%sKuWlucxc(cnoBaM)`+Ta<9G$3$??VTBL$t!U zQ(6n`E?Z5#5Uvx&shEj_S75?I?3%@P@q}w>ER|_?2i}gu!be4i{8+}w%tJy({3|pp zBZt6SbQy9RK;UgXvrr8i7g>{YEw;3Zv)#5WOJXV+5Mx>Sb?gxSFpUc<+Ea*o zi^dJUk|QOa&MgH#G%-Hw)8{RXW)`PknAJFIlZ_M2Om_CZO8j$cCgA*SUTh_qbFO%$ zF@jut`Wt-7!v#(aRlTz5L8u9AzHq2YoX^3vWcu=kTL?LW9V{vY)ZC1elz$vO&5gS# z(NITl`yu$jW=__g_DGR5ku^n~S%N?gWuxpDJk>+G)NQagMMp7vj!)ZwBwt&2tKrT) zp>s4n1tCUQt2^W6(DB@nd7OYpcomQQ+_$FjNJG@rUzBYmPzU zwGQ%?7c)VMlLuCM`sdoJM31)dD8cZ#Chzl!baTmT56VGTr(q;7x$Pmpi-aPtw^7)6 zW5Q-1InMV!Vc#DoTc#N1En}IOldnVuN4X!v8(;N4#-3_b!fUI(Tz$2#_NKd`>d4=x z#^P0=+VJI+{q8rSBg)Vc>-cEA-3=6;;%=|VsP`It#IZYAjAzf>l#BLshC=#V|9zV9 z?FW+s5hiZ|t7S7kD9wfM(bPrxC&Pn7qG^}j95)v%U38Y!H0@8+gB^`%J!Kyzz}L39 zuEXv?EiL^JZp}Nas9F0M+rC_V{VNj%bIs^gk@I6rHj`~;Psc=dE?`oPGSn?{R@Xn} zblrnROR&OcIiZ!fW?t4|hI;pX!Zgf!yqTJc4Cb`vq>8%jW~UQa^f#LDYb1Kjrrttl z>uEGnWa!Q?>82&*{g%)4r(LJ^nA>Il7M#uL9WD*V6OeIo9C&I)>Ffm$0meqe+ZPS5Tf6 zCiE`~2_;~Ns8mYKp!#|Nk(sn0tKoT=>^0=En4!k$m{00qX|UI#w6edQQO(QdqH%i# z`fHB!8b*U4{oSL%m3uf>z4YVkG*o!0X&7TjC`>PMB#7p03_9qV*fpu*Ca|C2N^#So zx~|&Oh(UUtE(x87U5oK1k99b0-9Mz{jFXviL;=}RPSxSgvguuMp$!hRDnf58{_p|l z(`Gg}S8FPoo^}(Py{ne;*^bMJ(Ho&)&PhIpt3auJB>NK-?+A@62ic_YUlGT<=lpj6 z5rwG21nUt)Pp`}4h(5-d??w{{1XzK@`dZi!o5xY9Bwp?Yk_`*aMN`fq#BHq96#2~G! zNzWe?D2CCiU~Bgf^mBU=V@eGp078Gf!`XWxGzgO*?S6d;i<1h`>Kvj3T7Ui2@W@rL zX)^Xc>G9`1Pt}a^9YGS%%ZS`k{XlO?h-|4kA8<^3y`V%@aX44!2*!s>kLSb3B1?<; zkgx8x`Q|Lq++)nGeI;5Tvw9gEvyt?uRug=rAv0-yCmbl&{1wG-(PF<@ct^X%kD+Bi z*MvBYCkK9~zj#d{^p|?-dZdU+11tZbgOoun6R-_VY$27wSi_O(7#yeNR>+&=;#XI2 z8X!GGU_4#T&M+cdDbYuufL`LF(**y0B~t(1MpSJzwL!9KQ)S66Pm|_nV&?eGz7O-M z)vynu;IisUp1AQpP+?i<-1(JmWL`ux|I{nufTNK~SDfhvH*>v5#kFzJV4GWc zUE#-O+lregq7wBiIbsAml7B~da^d9+4*BsF!P88d$-_n-&OadwW0mWua6L(|uZv?h zhK@0zKfi%}v>B7-qiz8O#xu-_1q`Mtx`In37TdmMhBalId~Xf2rFdNScLPD_u$SMQ zn4T6TIgB-b8@N^KuryTQ_dg2`b4K z>E!fZ3^r(&>1>DHywp5@s`9j6fHJ>iMQQlyAqq#4dW?zZI;P!p&-7+OP?A!1z#$4J z^Qu|q{~ij*TZ7mx5R@`v1NHR04iB3kFZ=CkOBPlP+8VHQXnv$GY)YxS6hcsptZGv* z*qvr>eQtcM)pPP7`>!5kbUq`(drVW#!M(y*k3m{P!-Pq`X9f!iO^N@R)Ark606E~< zC&s2e;=zv)a@>}U%~2(wa|wv26O1J~{&hc?0=GBlWx6hmcIvzatR`C{-!6cRk`>2~A?x`Ky*=Z+PF$e(h8&&I;^qyL6H7%!OSL${(s|W;+l2 z56v#J-+Tdso?hvF7}5x>XLayCa5v44djZlG@6G=a?xwqR#tL*KUu+3b`b$jEo!bBENQ){?28z zKO6ubf_+SxQmwfd@7B7BXxwY90$%AWg4fE|PSr%u=~3Oao4=+){K`)1FpJkW1x zqn#3@SiXT* zNd>wbaP*`6SH=}oje_73ciK+r9-Yf5zNGb5_r<5#6Oo4!548NDRaxp>-EVjy2Qmpe zOgohtcWxbflM6q=p+D>xjkPzT^t^A8;TOGRv zud8O)oM*2LiuHJ3huszzVl|kVd>s$qP)BQ7u|;qiAbSiPi)ekRi|G`oOpo%yFZzP0 zj4RJGD)237F$acG9yeAIfzQJ#N(DoTPdv?rYAuRsRCg)VVU6%^fz5K^>+d!+QAAb{ zh=CE04kN?RiKM{3`$hIUY=OpSVoIq74nah#T=A$}!fkWkIWCnBvYwzkFvdi0_L@6o z{L%T`$)92j@2dj_pumqy;5S$ZB659jUDMD#*inH*Gci(+&sAI;%ZThYzxk1kyC>e@ z-xLwFn7nOFpH)HVRJ@RjM9gH?^gu7N-kW;|-a3WQ$$)6SEZqxCbld7ZXbSINwic;x*KVE?ZJzZfuw zRgDYJeh&VWy8;_LqmTh8oq7Sz-dlEw83|RKhX__HK?e@^>-aTt33wKr4mGUmetVO= zF8Uy;o8n?nNs&>>NKf)>@$zvdRLeXdk4 zkM zu6)`zKm_?IqHfzFsIv+bKFCdm`KKZRKtPF|JL5etRo*Ui=2XSW(fNQ`oHuMZbNG;`Sg~!R z4U?i?1T;ftt9fH=MmV*h&wVAXP=C(4E#=>Cgp$ z=Clt%q~q%$<-2E{WM4dbapQ_kW1wMxG*5&2_otM(6lom>elEW+PK@zIpG`>S(((to z{vdzx05&HdkOhzgKly$&74B=in}Xsd$6fT^$wY=PvPOZ^+}r~2uMTsE_*Y8$awoN^ zzW`v%oa|sZCp~Ea0J`s&o~iX7;0-cqQfYRdrY4S&R{;|e_J3KTlut*5Tu}9t>%cHg zmbWrTMS%1aS#u^n*|ZH!chzcN$~ybK{9va%-xCD5eT)Ut9E}7-ybzH|(wWJ%QMk9> zpRek=qCW3Fnv+YQ$PCS3o*|M%uj?``LVq*$bl&Bg$41Y;hLu7|%m>C1=#j$IAa>yF z$H%>hZh!St9%0kAq|VPPD&DQ)d{TtJ*W%wfRY1B47)&`C;3;76KXHF-=G}c~p7<($ zg+Bg4*r0cmH%;ZHJ6(g5HEN#y)Mn%F$LV3wX^(wq)gbuOsv)H9hgdaOmK>-3k8dal z{YT>L+dEt&c)&S>-NBY{MEO8583F_Ro}v9Rj>h#HYUrO?v;6z#gUQ^2d?W+tY1;~H zjGoafKe~39Y^L*s7nt&;5E5>6VQw5{yEPGV*c=`^ihDK#>B%-yec1GRaW|mCaTY9p zOM^lr?z)+d6RdLmLZJFyS6%SAo&G4fmQwNZ{jyPhi^&9%M5`9-5RL855KHBgRdR&S z_)(7n`#{ObrSSMZOR>98BP=4@z1Tb{oI%L`*u-g0)oSMO=HZzA2jj?~pVwP#@Z?#v zP|>Ve!@-$zyVWz7%#}+e{Q}jDB*Nn}GW`JiljTLzRfEsO^P71*2Y6b7yIXWxJdVxw z3#F>ec%neT1k-!RR_5nfm+6^yM1LeW8LD-U7MKL7#{ePq{g;LHcVi9wT9znLyAU#r zszaaD)?2#} zidT)8Tv+rN96#9k(YYd=;D4|*-<7+_^fcpN*es>75|GKlzBgJ8=54fdJ2mXiht5jc zeAMHQB{QFsHj1O!9xJaIL({XjJSGNGAMhE`1gPEF)EN0-3j&{n?o+1sFE%;@OIF-^ zHYF+VtEX5p@Gip0w(Ovxnq*^=i;xe+79|vW7kRw^)dNs zyvv`9Y%EYgcwTa6S?>hrm^1ucsCsHe+8e!Rs>cNy3>5!C$F1oxSsQmA=UgN#?u_ms z)GJgw2!X7OmI-Dy7ivClU0L6)!0#S^^4o9n>knR6G247-*EDOS;%~~1yocQwi_X{tX@0;`^FKv0w$9Xlr7d)O}3$XX@1=fP%Y%U^F=M|hyj_)&yMYPloJ4KF5MEfvw(SQm)U1&UL8C-TTP@p%)XF=w1E6P?;YVdY=Q`` zsCz29ClPFf_z^dlqLj0i(&|E7$*T3B=U>UeOR}ByGXDqYW5N(oYp$$w=+fUikgaj)=eovSF}J;o146 z2+~@e^ICZNS6S!&FY>-Tn##5R`!=hDQlU0>A*75Y^AIJ;P(m`#WS+K}y{RNZLiz#1J13ui4|F63@sywnF|qv|%xKrkb2>~e_$R-=^OJOR=pE#*0i;#Q2> z2f*ZBj96dXzHv1U4lIIm6y%}z@1LCSgVWZ)=Hp`J4<^AFR#hp4$6eQP#u_Tnw!zwP z0F>SqG0Dq}Pmql7Hj@C^&W%t2H~uW}+~F&JKKwC}9Z;2Gfi7T)1fwX-&fhc6jF?r8c93%J7Ftr(#ieULx92aj}$42Su*g!$DDaBib``q|HJV|4y6zUfZel+s`b3 z+M~bMm^iRw{s?BU$nPPVy?4y^GIv7}Y<8G>n7rdp1K!=(uWa-r*+5Vf-y3rDB1Ne@ zvpZWkqup6z>YbHqoeM#itP~?O*mOcW#SSUH)UF0^&FMoDaF22Ch-@E9(~%=Gb)U2ARih8H+cQ0ePGKJDEj>dGOHrQ96-kDf)IrHq{rDE66>U31)yE_ZRfn4^ zmJUGft+*FoIVYx0Bas2pzZO0km!FoEE!7kEo7MI-s z0o``a9sD*M1bkq>^#N1n^WM*vFbSpXH5E*BFnbR$46jbv`NkA2Ch<1Fi2}pJl}Cy{ zT~x1+InN8rx^Ruh;DYA}%$<4oe`^k?WCI?>4!%Feu;C1AGlw(XE-nMX*T+6^G%W&z zAxWKBMfmHT$+#IW^JRc|W(^#vwB`+b@rI$4Q}ov0oxG`B+>siMf{^a?bP^5(6A9;74YQR!mr!n!6hRHH9gvIhP zPXx&gjbNo1R)HG`5C@e0nu$5L@^n?|DMWqf_bPRSM&^ndXoYC+8W+^vM=>A98z##c zL?J3d0chN{KMH6x(|2LIon=@M&{Rs{fNBJ{*rKps zUPAKw{SfEu4bcBw59<=L$#@$B%J+c8I=M^QJ_|7eCa_=v3qXp3MHDdU+r$H9WL9cs zv8Z;o#kJmPhHpSjlTwt!FTA+4l&(<)ce78zM*doGF_+UxrXDyf@Icw$3Ut{Ngh*|# zF7u`-=}ujV-903c;E)v9=D%0nlli7V(T-PiyCoP5a5Ji~wz))DIdv_Zk&`|hAcGb) z=WSf(U+=<1#ilMGcl?*~oCRj&4pua*=nBhNC#J5s#`7CrYW)gQ9r-{Z*W++FOG#Az zbUki?gjM4S_ilCCuSsLztmJE@thN`wzElif80zoIW(_Wp2A5o2rU5x#zzcpOt%Kyj zROElxsnh+Rf<)%=-l%-vSIWSMW4jC}v1DB)TsihSODf}IG7Wiy)GwJnOR0>w^@DJY z`y^-}RY(W8Z5Bx7+AVgs;)@>UM6OuL;gJfA!NwK}hiB5;%4%ssUb=$tIlFbp` z9@x^C+fea7>>UVS4MyEQcG(9H`?Ocbw=qW3zHKr6?fp@%$ljZblp$6iKkCkV2d%?T?f$K2w0*af2A)Zu2NlN3*dPJ|_QkqXuofE>R0c)oa=Oy2r}^71R&K0eFG$O-cH-td(2?$_^qbcB!aWJ>vFCDw` zcXRuRoe0Mf#zT%wAlA1vNwJOYTH{|+J5H2&JItf;%Gozm&2I&F$6biq4U(?oc-2sl zzW?&kP21b^puq=D7vHF@M7f2c4bkcWCcDwYGV-)R~7#Z zUZ3F6E4l(Rj7u!@+@~{HT+_M#E!MNDHKn>suU!%R$eitc3Ea-uxF_?d@7<=|6 zEUV}N71vrC;s(q%#&v@X_S@xeL(;w1;-9$K}u`{Ta!D*oaEYhcy@D&b3bXR9x&85Gl>RfDG+A zBnT>Astc4l-==s7fyg;cQG=f%$+%%Om)dK#IGvHtqA&l1MUfy^a)BOQ8zPjLPeR@L zmu4g3@7|w4VbBtR_zjfGeY}$&!a0+M4BG{zDmyHVy8cOUdILvvfIrZK3{Ev{vNR4% z^xgM|W!9PkvIv3#>-p02)*IZ>GTAzG_eJ=qrMW>^XZHn45xEfG2c~icAUtF^6ikxf z@`*26@5ua~EYJ3CJ}$P-9s=`?)KiW8f{`d~jnw#bk0w!k+9cp>)^3{$rxgLq0)8~i z4V2MvjGmhf{JP)HO|};Z7mPzhPKwZ1&MR9Y#`$Wg&QoRA4t~13Pp~&ojg=b1j{qEB z4+!%Zw_a#CAKH_e*A^->keUt*ig<6s|0FFJc_+iir)lTU7Y~R0T7xg{q=Beo=S@VoDU5z!Uik-x;Toiq z3$}lR$Xi+r$$QdqC||`^7F4&B+FOS-(!>X)1Sgh&6Kr3~Mt7Z<-BCexrDxanugl@xx$CXl@O=H3sa zcwZv+Gq*0Y@?Lqb5V7sFP@B2EE)_4a_FUZ6wXtZ0&DF87er-DE`($)aQ+@Q>OxGIQu^(e2E&V$QnU4J}m$af+^T`}T6au?uY(W%*WpXZD;8E$1BLSw1%%_2zx_&- z9&{#!K0S&y;hW{}9+5MMySP!q-=7>K12M9bUm9LC_jNvT`I5Uf#kF1!{q~rd^!EN- zM+>~SmaAfsjUWYndT={tm^LixEl>ArmarydsSi`)pwv2Jbu0ZNI*fPqqb#K7U@0cU z->}S&EcR4`@+4Gx=M&5BALGn%S`z4Ek{(LT#yoq#lGijZOFviGk!>VRv!VT%{>U-Y zj@&k$Ed9|Dad)h>!YgWOm)MBZC3k$P;KDgvI9lXvWciy-sq0d=ai*zRp)OI?n62(9 z(!I4B@|W-*`x+-_@LicIqg?t#U&hmd2Nte13YymlLXC`9;;VN)kll~v$A?2s>_P!K z))d83wqTGPUd|_OG$4_q5D78$_Cmeym?i>&jj-?)X+AgHDA2|D415|~XM_A*^3rl- z9PU&5x$WO8UTsc0csr4fNS-LLYsm4cGqXieZD1)sDepUBi1w)R?%&$xcmgCn9iUld ztkQC6*~3BwC5D;Lj=Sw2%^t?)sVg#-Gl{AlSv1$>s?{huanq4MbPEc}6wMqyqaFVA zOh8YqgGSwQRcHMbJr{>}lDAk?EN*6P$6r!#O=a#)>>pDz2x>DgwN19soQ=13S+>$e zi3y1Y4obD=yWnew+NjWROhc{%QG35nloO$yF1C*H6VdVg`PUnN={O>^PNpBhzLpoj zeMOR#95On56a3#CPK0r)&Bn(P@pqL{Vke)R#<_=|CLyiPt>AC&+<3X|WtVg$FH%-} zrY>K5!X`%KrYi+uKu%jP$rwZ?@jg|!JW_2TA$p)&Wj5Z7R{Gv{0Af!|pmfj6i$TI{ zkzx?vi`jrZPtkjxO4m`+LigjmCcEE1HV)G4nW|R3w82@RyPTtUfa>Tnm*#*1u4O#_ zPKd94u!%@X<1zC+!ShjPEZfUogg80oNZNV3m=&98ALI*o?Z}Wss48TUj>)`pCL;jq z<|trdjQV10PE6D@*J7(*fU*gnsfW7V$?Qirsi8wgqrbf(;J1m=2^mnS4KBA~Oiq;+ zNiL>LO1?g1P?GzWqEkV5@EkHhS_VOKO65Y8RIlj$R`4Kt!GoC3{nLX87%BQJmsdXu(( zT=a|uwqb(^JFui(J`G+`3c_)Y0tv}%ii>^(;d{lT0vu+Lm;HJ9wZo-J8Eb8Sc`Xd& zDBBN1A6)RAMm6E=mY0}gNf_1~PjNmWA(GY2T7CbV_XgQL@k}D5x(KQ8B?S_SA`^D` z{u@1~$ZbCGPM59ZN~xP_i)1eqrxlEF*Wl{Q^2JsOue~>x)wiWmXlR)ztFbJj7&D5; zL+FS>gn_moDOS1UuJN!=7#+r@^HJQ>r@6XV!56#woi(beT>LUi|V1(`y`NB#J8V+ zfPcIwm}|#XH6bK8O@`%!-DV9Osjkv*1_(+klTOHGuGQh?mC5!y3aU0MYE%iSqjLRa zZOjHexhc3~D$DWmLy5$-m>&n=ixxV#=MmjFV=85&RoPkszLW`Lv zA^yE}54N4du;j?H6;lAo78rzc-yHk;<;SOVR0Yily~i0h>+2-jByF*_u(SsIsuQ8J zQ=cihRy;V&1;q~;i8Tl*Or0AI#hQ+{H*sor(A;kYFG?&G#fob{VhJwvp;3>c&S!AB zNJJ9~4Oh2rV)uYd@go?no0EW?Da~tlt>81s|;Nw68bf?K1DtCRO;QK zZ-Yd*A`=mr2vf~WJ>8mw@s*D6q6A5#Ws^5sAA zm!@$!B9N&rBDD6jm!r1HaF6Hs{9-9;N90szSvHuUr?YG2yVor{sgOR#)0VfG6dEdMSA$8pqv%Z|^ zTJki-stM7VH{-UMKBcvh+!0C{j*e&eS3@;2YHh2OlUXioUr@yaKOpwx^YQybB7$Zf>L99cmd44kI0@2*-nq^0i zvs=Z_G-!(Z=}HuR%GJ5L6!6o5nlBpeJ#k6%Wl9Z-c5xMU*7Ux&xgyJgAso}&NR{+A z={fl*YY-u=QRe%2ZtwB+<9j#NcsPg!S>8ALP(T;zYjz*V8Bz~2sMU;F((8j&Oz6Xh zF6OJreMx<6kK_yDYo^A#eVdb9yn8bvTTS&9h;RSHZeh$yH+?oLk&L|QH`!5 zE!XsdY~G{iZLf>*-_D1>P$;nxHpeLO)y%F*-|q2hWo6|fPxO7C1CjmkGtba)|I3F-}%O7@^~J57*KCHy_=4zuYci==+!ZImy#~?Z4aMx zNgqXRfV$c114btc;-J!YO@&No+WAtYYyYj=We9Ik$Ua1R{p??FmmFGQ@WSYLP0I}` z5XPhp2IDU(lLmuwCACiuC5J~E+G*iTYtn_M@4*!b(JQ%A?Cc(n}{EO^K8&8 z4pl4F*m695o_nx>N&6U1ymw~qg~W1IG~s1mqv(`N>|4#La|86IJt(Ptd;LcTJs3hf z7|3-kde7Yi-vD;ZcLxTtzKY`4eaS2d0n2Z=tZjOx)ysSr1x;citRD3#$KM&s{P69; zjkyJs_=gz5BVg*#xc%v0KL{r9AXXo-%I7PSh#YXFASQtrX4@K&v~eUn;M)Ns;hsT8b%N@uf5JTc`A6> zGaJ{#i#s9`?%0`XHt`VU`PfBjpApBp@S@5fYcYJJiazadXf*u5t6#pS&(ex155DO- z`{+o?2QI}vkaSGzJ=-%eX&lGCeXl39PdOpM+QlS0RVPQ}?o*SBd_BBbh3cRpcBJM*4i1(CaO=Ogk@V34GNq*^&8X>8 z?F<&VNxyh3hv)3f`LCkKtm7_H$fWHfV;%-4PEJc8IuU(VNGQsW;pKufUR{|q`BoiRpj~pp2c7T<;yt9Cy((n)4u&or~xS z*;9MBBhnjv((7!iE^!>#l)nY$uUav1M0D-pnk0oh$V*8-|JV+GeNz%;5*i_C%2TT} z$(t~ChWEEW_?aw`nU$G?I8cC$P{T;;w4eHTolgxmj-y6E8f_g}E>m?@Ay=VmufD$B zThs3bx)$FE4}HtGx31Vxr0>ffQSX9rOTXwlH$s9t6X`Hpqy$THB9k%S>PNJ3l#hV` z@V@Nzk0cP?USD`3MeoTDhKSJJHB})@iXypgk$oXlrrDuboT)zka9M(3ykn1KZ-_F1 z&3V(`n5}NjrC(Ul;BlU{LgL?TEu33Y-?yM%FLrAO3DQzYFyFo#Mv2i;R)>V5Ho&0X zy6rBuj3S1_yu;_>e8}D*#m@hELA7|OH32_@3W$eUbR9h1d(sm_tpVXT;i zWycesv`hMpNc8Ss|6yt6!($PBJh;MBtDypuHocuSH8ppnb3gbIOhUPvrclhEg9Mi@ zgnF~YsA zjmUm#e;&SB{U!YrNpSb*aN`#l9XW_`Z1ZE6yYuYyd(HHx<)k}_(0gK}c6a$(mki49 z?YA_Oik(-CI;|i$f#uQG6|p&knP*$JJi^k+rKX)G-aDlZ9!T&tRQ{k;$lD2u&rTKa zAZk`;nClqZf!%t4E-PG97m*g)Sw(lWGmVgZt*y@@Q_Z~h2*q+sNdn6SEuD8YTJLbC zb-a3o!b?&nnGx|%iR_y)2vnV?Ckb_opboW?DuiEqiH zjEqh&&HNmjEl7xnAxpx$io=snaMM`aLaEfW6b&fRYbWuU5F44w{!nuySqFQn&Z!1F zfL&Uusn3?4Wr^sGTFz8B`+bZYd)>N*wl zO4l?>y0;mwRffDw{>`LbXZOjYUtjm8>&B2N)3N7s+1J{1omIGU)$9{yUO3Kw;9L#e zCbMIFIaB7LV^XlN*PycwDh*L96NL7DboyuS&hiwlK#8SD@*#K(x!pHoBEKC%_ zl-UN^L$Ot}@@5?=>X99OUI=l6f+wdrEU=Rk9jV-mU_u3xPjQ~3bZ`E~<#jtNysui! z(wBTOM82Y!=F*1D%4K2lr!JR6NKA5gD2SDbYg$VTVg$?(-~#L1ozoHjdvp4eDdi1$ z2w4Rtu-gNr+P~f_yFasD7<8t9jP4A{8O)NJ6WtTb{2noc-nwOfg3n)C;EULX`@fvi z9m77dP)U-FuwR>z3`V3Cl)osL5FFlu*7uL?&)iavm%&;`RBPE&BU1;ZYTfSA zZh?A(3j@SjW|Bs60{?nKe{zO~q_@c;udXr_B{t92sMXOFgjJYbm5)4aOrc(bWsg+* zI=Brqo30!0GtY>558~c#GS}x4=9mTX@jY+0W;B*aUiK-A1je${Y~#;uu%JY-5fKp; zu(H4Lt0u%jwf&E^_UA3baE>@x5TYH@RVGD{IG(7+NN0elbi&{J=w%}bP$X;_RmvGt z_r9-_s5G}yCRF3pr-Rhw;igaxa+Md&Lb2CdG> z>=38oi5C))iqF4nrG-}}h)}I>r0+{&ekw}W8B zKwa!xJN}41WyoM6b+X%2e=i53WFz_|MF@O(LMDfPUeQfxSQfA z#m8BgD5*BHssqv2R6YX8M1C4!VDP!jmqt_c`e0IWx)OXK&vx@L>-xlUA}x^vW3I?#X(>mOXi%O+N;sb7zFr0$1B_$jHvm>s<%3vz*1+34mDc9^KyWFg==;XY)3|AK8N=D# z$+tXVpHcxid{(kGi&G~i6m)lGZ!D55HZz~Qn|=mY1TJi!d)7{lXRx^O2>Z>$nmX5( z)luTJ9rB_Bs=+gb=O)UzGD9ywgU=;A9{{=K+q&CZ>q{3i$4?bph>MI9b3GEjIm}T| z;4{_blU^W6&kg5r1;Ig{o+&^nlPWwEESQhe`zw;j`Jn9pL^;YTAL1NG?s#IDnv@*k z8wBt&Qj~&$;Zd8uKSkp5m4s^y2qVb+2L8!_vNrxh`Ys3{lTcJrbMi|Jg81!;3%c)= z#2)<>UcSij2}44WPkj#<&+StdAIMTbClCGjI$P|)FhJF3masTWvBWLrDbzA|0?jXj ze9lAYec8%+U3hi)?E$_lXb)be!glmji7F14`b?sT$xKsK%=374KD_$?a^G6rH}@Kh z#hHlqNEfJhPpDOZ44w8Zjpv(B>)M-Kj@P9ot0t%^P*Ht-bF@>s+_);_@E1G~M7W&F z8#n$9F}Wp|01yJzCC3wT6n?R@d$)}XZj%#A|vn zr>UW0 zi(@PBp6bmpjTr-{3lGOqi%Np-rk^1tRJis%CWyv+Otu1O3-n@ZsW5yWzTP|b0Ki&@ z?0`Zf2o{6%Pn33z-}eQzE?gN!%e~HLoS3XdW{)kB{b{yA?}t%*z$~~hnR(K!kNtcd%%rEU(fc+(IlHWj&hP?RYi~zDNB$Ixibc8np$37M1>;TF;#-&;<*@DnbF9x%9wbN{t664>0N`N%lrot;WoSN-bh`Mcbb6 zOH7Cf;beST8n4rvCxAW}wgL~8?}|&*3W>!+eK*Vi8kp%w6w zazo547|pkeXb;vZ&bm1pa1D5-P2^Eo85l=o*_KsCd3ssUJRl`FP$2FI|WB^w{_%gzK zT9WWgM6@kYWnqMupgotqG2`nj!{S+48Fjcxbf!=;#4URaJYC84E6LL$J^1GyQI2?6 zo9O_8;*%d5QbB2+xfQ2Q_M88iRcodqb|Hgo`|{5*4hoZdh#VL;K_<``OHeOc#l*hy zn&~eZiSUZsYT-|qzZ^$V!oZery7m%d`uTsdtOm%?TePKaD|S$XkzlM$<0NGPJ{%(# zLM5_~=4w_$xYz+sSIFSg_uW|=6Lp~bouTYAPV(fl-nZbzPnpJSoz}{I`AZpJoB^IAPT8 zOs_3=(k6(+bdh%~pjt>1oTZ&TC2n)y+6iI1NVx<6yh2o7C=j7nK*)Rr5GBVyx;B8X zdqU8!2z55A6pM7mVw^dSJ+3_4&RItHeD;po$4Tk}yCZPF&*qW2gdx=S*)@{Qe z?rz?^KGVEWj4uT4@pCbtU!xaa7?o0;|ntpHku6Y80#o-d`DyR2BUOI58e;nfllWggBa9S}A>*o)uD;&cuL zIRjPSVR}6`!@RWHrlXB<6&xVpjjnlX3Ycj0^mh2$(|+DF4+Zb6E$P~r4^A@-0e!;EiN zhOXLhCKxWJ-}Aba?R#J@KE!BQ5WnE6GI;p6ufZj{H(*-Rgqn7kn8DyO-)=j{6VR38J=D}W(U_TZM4I(cKwWR24eRM7yna1yEY)Sz$3)#{DqS+M zk|+teq~z*iN%_M-M>$NyRNfyq=hJ9(@6Notb*t*DbP0P1M>5?HlA)CJ=vA~PWSm!( zQ1U?;r?4UaQtDN}GUX;~1ti_8Zno#ulnxMXcM%Y{ac9+0*&Qn86!=)vCn#7OEwKv61%JcAbC~doG;s=d_iO=c{E5s+oF(9b>$#Cg`W}(r8 z%RbZ%v+{`|YR?+1ycVEJz0vlS>&oap9Pr>UQanhR9xcU?RM>5G+9~ZBPF-&V<*^Xwu_kxt?AIQ$WbvFxrV5TeeUn3usszK#fz zH9w+IC*}?MXg$FMC!O70QvZudPe-ce$_?zvft~$9gZi?zYn^6z9w5dVJZ$05BWW&m zeJjC}4M9@>>_R-|PFiP;mOX9QO90l1Gw_UJ97PTs+N=Tu$4Re$%zQu@#;z^Vi@%lZ zJ!zU}91~$uRcA{d)$Mv+tYPi)$A+V(E`{?txhX6LS_e26B22#nTzlI##wI0yx&g3Y zk^65x3F&a@2T+XO7CMq!^Q5-!$nY(&Kyhn=|GVTinipHFP?)h85jsv2BE-udr3W~= zBgqyiQKRWB%fJA4a|m|)I3-t(M)6o&DD0NsFSN9Gd&mq7M}l3=XfNOMG?!8#6&R9MzaT`tdUfTHsU))h zY>%FD=<5N^wu!PXZEAs)^0Iu-Z|WB61mo@fPj1|M&`Zmkyauau!n{lb zecCuBEn;Ww%^frZ zKT>ZGZFrLPj`w`6;vr)jvncT&1udL_b*`coKLNWvAx4m-o9=O_dPVHl(V2n6< z)6z4EupVAFrObmE52*z~sR+HUI?0Rx18K5@2cOC}_iwH(wAEumJ--Y&Ta*kL zU==*yj*}y9ORYJlad8OG-DqqQ`7s&&0FFvYpD7GFlS4)YwSj13KrD;UR_9a)Lh8$w z$iO9W{x`{5#EI5CRVZx=2=|}UV$45ju_OM3mvk~4j6r~7|IgQO19 zOfkOldORO{h6Tx>d5=E0$jLKBPsVTUT-p7eHIJ#8=l1s^$8S1~y?yR`FVpq?p9b5f zrL=S~#fGf@vClKipLRT9(5?n{mc~b7U=ekg9Vm|sIpj9-wt+;UI1if}^Z5l}4s`YH z7M#;EJhFJGF42$C4+rL}N}&ao7}<_3jM+WQ z@LDgY%S->UDQ@dDC)IO*yrJ-fA%pV^%Ps>zKSz;1t1>*~Ouz9A74L%v>Ymr{a!d;} z$p|e?VK&Mc7g1u~2SZBcYq`}bnsD#)7WNKS)pJ*tw0{BJ#&7o$r*W@_&eZ!?nH{@) zURU*&Pb0|3$r8q=WnDL|pwY8ArXS%6$8MTe)HOZQ@47lN=V^8;o(r-EH@lkNJ};0a z@VbjwGj0Xe{I9qadBpKL0u|5913@vQBP=aNhF=)7y5?9H51)ck0{l%+bmUOP0BuMG zT3hoH;`K0AF7u+>ulp_XEkg{5&6pi*Lh%d0LAEpRsrrFPSEsCQq zN{+n2uz7%nOuyV79@#&62;M9*{G!d(d6$@Go{=={p)zSK`73a+9{NlhM{$col@9>n za>xUPrQd)aulx@^9#E#)j*hh?a@mKXa=K(a0d~S|Db_(gDo9Z8nevj4Oh00ps&}B? z!TrG&ghOxC83c%6?>6MN3jzF%qDyOGBA6Rh^zev3AkLdf)(<&+m+D0UdQPK@#A6tX zd*7mf#dW1?Kk*~0V}!)WU?Cdm_X%TKK>Lc(PUDISRtE;w1}b{Y(9lT zLktA$qm%?7*DDIW6AXN@imc!o((qPxG&D82r0FX#l}KwSBcQ?y@W<1 zu2MlJ`k6?H8hxOH4dlvvb>C8m2wfdNxi;kL-uGv%MuHaU1Qm4W&L4`mgFh5+{l6&Q z25EmP-cSNqb!rNxHntvs`gwU5B}GO1ySxY_oZsHRu>u^!**wirnz|%*LWY~#|GnbP zc2*x|7g3^9iIb?FE{}_R7Tw7@xuLmvufgF11M@bsU82{2_c9|s;j_!7sKoFPIJyX4QWu6JwOel)Gc+j{ECQaz|6 z=`%YPdmetMI&D`+iZTjr6P#E4yiS|PY{V&vZcJtc?c*)9f56FvSMmBrR{>H&Zh*We zCbin`!KKpk{cgr9>eZ7mHV_ia;p7wI^aJ1gi7i{4{2gdGu?sZFM!6iMcH2+MsY+Xg zu8nA(3(ci|38Z6hga)+V7TSyei6M46$^&Nxu9~l_c1D9GDLiNKs?Nw^>=%sLwy|y_ zvB*JTJ6;ZA0r28H+toTq<0!4aeBkey!ZxJ(5je~HU)#jR#$Kf~3F2N=S^hBp#dcJt zP*}}wn88$}_zcaIL#X;zl;M7B>((5hhv}L0#HJ~-O%uW#n)roIP4n+!&#V`G(37rP zo$m_9DZpq^U1JLryfTjf#rJ|2Qy<6(v3zN`mhMJo|CT3tMUWgS9+jBkg1vBzyn{e< z?|vRV#Wdq4?*JwX*U)Gi`+jG~w#d1Qf|0JgW=FXBOL=L`hG)IZihxG0;ai$u&}45; z>T0cK@%2IwFg=AGep5)jz6S~(5XCK285i3A20onr&%p=Zrsooo*lU;YO5rxGIiI?^ zv~NcP?ZC5D-=Tqbz9p?V!)7wT4gUptU}oAA+=YdahcK7FA`d-)qW|~E!$TpT$1NV} zQqrdG028aW7OB?=$-0#*m20LkpAzK1)Uxh&q5Rnr;q2}Fpme5)+zO1qI{l)oNep+@ zN%Jz>CujZyKl~8tvCc_$8bgQxVEWfroH3bpc>v#dZZ(Q}t!K7DUx=PKu$fQWHVFya ziGCcfU40o{TR<-u6zN6)qB$|w=~w~o6Dz)8$z2i`RI|yN)w5#HUC`X9#KIX?mfxk8 zTMS`a)2nY_W_LR^I^*+5^N(3=_lKkMuucIe)ArsFIl%WVS_a}EBKL`v*qPq!3#CA! zQlMR=nzSS3SdC0)s!2~~`;DI5e)^?vp1An-taJq6O*;Dm+9uO>ggu+S5zHx#Fe35a z6Rw+q*}mQ1_Ab}ixb{rB53;PpQ$Ve#2_mVSE_bmrw%7`;Cuz0wI@rlPYj1CXtn|=y zmpnbs7O(=@+!o`%lF#j_YvYw&ad=gp(Q)mdsS^<2imrjJvvquQ3JJZ7*xWn#IdLXb zJRy{tRgub|O<_-A!S`oY4{&xRx&;q_Gtl>nJG~zbVu~!*aOjfqM{{o$tQ{zPeZaDcVR=XeOM=vOlVVF1B`U$o=o%iut{R(Xo^iG|aL5t2E~5 zSjw=DNg@$bk;7*P%cW(0g9ya!b|HfM{}Dt0Yciaq8LCa5yqzuNHtsMeiCaK zA=<&irQK8fW4sw{sMhUAV>IJ0B!~%@`JpgWq!zKIyk^?XN5r#_0;kU6*mAmJrD~&+ z)T9!v)un*wEBBRy!0xKUQ?du|?(1UMHx>HC#oDd1?UIsfi$qelav7#Lptfe{C6M0J z7nA23EWWp7?FTc^BV+!8&gK z49jXM#RK?MuPu)DTVWH24}a0;hjWE3EVuo_z~c@iG!60BUBh*wHa9$d}Cia1g)-l8yI}n=DtTiTJJr6&d|@ z&I#|Fa|6W^jKd5gr$5qtZGIsec-WL`HDZXNnjR=F7Z|py4Jg#vLxTJ%tXINER!`O$ zH7#9HD$W$@iUt@^SnjlB`1Vlm`arvxbB#Io&ny6mylLuy>DFcSEuUtIgCtw^qHI+} z*jqsFOo1^O*MFzPC`euHo}i;lN=A4;0EW)^KZZ^Nkgrvv5xSh;Y02W*Gu8c_t!EC4 zyUV^D*RGtZ)M(SmnK~3XidEl&>K;f($DbAi?v6!QoV8kqi(RKKKEt{+AFLY-Anhl)I&gmxt2JbO5B-ZHX5UBn=jyP=;e~R%$50!UB%S>xv%DFO@reb zhfL_}lC?{K3A-)fNEycbx%+qLmwi}}lbPT~*cgy9U9L!hl$c6`@3xn{jnyA@{Qbfa zCr%cFXi0z&%b!DdAKw@EbMXj@$u7USMk-=Nx#V+7lS)j=9c#pF^fXtkmvo^ewkVca zsU-7thkxeE=NaH-Qm=Js%@^CkH#q8bzTb99<1yP2{4O!h6OOG@Zu&4Z{T+W!w$1f~ z4ig=E)4YTPI{w{c=ljuogt!POO$2FJB){Y|R8>~y3vRYex7vnRC-yZ8+1O{}9&tD{ zrfl0jR`RQoN-;6Fa&7P6uwHQQ+d&dyT+%W;v%n@`sejh?%PSOszVlL8Xs1xM3d5(} zXZ16C2=Ce+!Q+F23PQUP>K;b}_H@ZD&&U>gZ7+0(A+y7~PP;$ctTZNMkSq?F0}_Dd zuL%;ypNc1Bbm86Mo#5&~L<#xLjhc-;kep;O`BR%Dz*0(@l^HCTjJGB|(YpoOYV4lQ zU-{-mUY0T>GOc9ip*9lnZp{kqQmCipl``73_Log7sC1kP`V2jxBdP+&njJc5$ zGY8s$CGna^@l>12?z;XD%Dwc&=|HI1J zbBh0^ayGE(y1r?Ze*q&AXXQ+Bdb^*HpJyvY0iOM{-jlq^qHc|m2C7JH09F6 z1VR~FA@g&vD=74)&#wTR>GWg9sT+K|Cs-^}+U(3`XI^pS^UdMNLO2R;osoRA zO#lMBBr(E2%i~JT$LD8r=d|fHA&!AgnaA)bFzU&j^Wn!NaNTZ4c=eQUvUmMo3Ve-E zANx-QzC*6<);=w^=5foSjqRz+&t`(K)&=oocgvjYf%;v7%Ae=#)KOT&8ZNyc9PBr3 zq~A8(M$;_o*?uTD*Lo!dws&D0YI3S=lT|*=Y3ev!Oj&go1M{x=rU9&BwO>=4P5v_g z1Au{2PFi80?zID29kDwfpO5( zCk&}B#_eJg*%)amXxPW2XDU0c#V7gUzz zt-?1j-T+XH0bh%~_H#Jzq7ztfI;hYxcpY;%wO;-HcALqL@oe>&nG~>b`C&UAwTOZ! zE*w3N&doIalIP{3nUK$Hu>jO82%SX!oCkhxLO^%JuphRaU3mY5?zkxJ@SRZQJ1LB$ z!e&B5U`r~Xo2{ZrCVdmej!9o)-|G)|rAodIKAJ!J{lEkSE*z1}K z@nsV0foT;NeoaJuZu{B4U+=rW1uq%rwY>&xd#>n4&JOo4H_Kw#m+vw%w<}3bgdW9>Ksb!Bz_h4@R!yfA!qbV^H^mW|JB-kzVRT#2pH|&_{%bl4&V0fU!SP=YRF|X zpjH~;yFv(cmqH8a@6pzwA$kXVeFCR}3z3uaj{QoHFjfJJF zJm0yd>mfHQ1a+=t|Vq z6{ScUy!SQU;=C;d30&=q^cB-SZ{dbUpylc8DX}V=uT>+9X<|;g+4^^$y9a;cxf52aMEg1;29eD>^lLdw zw0f$BdMC}i!z_AA4;!0MgH6@U%rI$Q+=bk0i7fH9qg=yB2d=q|2B}qzvUYxRW^r^l?Abs!sNqpKwG2} z6ifNV9`V^wLd9{|X?sWBtHE(WdnUEP<-4c9w5M-Gao&xh@x*k3icL|bVW+McTgsJ1 zMmI_{#&?N?O>qD%*LZzIZjhnYXjb3(garZcox+E zjq^TeKf)XK9{jDQsb%nLCKXozc997EmIbhjnUby1LmwCh+^yb{IW3Mur6R=RZNJVO zyFa%B#W(Od&3&Z9aBL-#U@*Q%0A4r26{@mlw2_GX(&7Vy+LzYUY3cr)upOdlMdP-^ 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

oJVlO}4QAZmhqVh#7&Y}dH08v)e;cn#< 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%0AgibblHJz%3y zbW#IvDMpL0=w4x#!dE$Tf>$b3iPqIs6Dt#gjQO>gli5Kw&proQWenqfe;1F)fVv_& zt?2WMjyvwQnBXajspx_f-u~z#1P~IE=Uwd}z8@a;ue9Fn5u&P|m}+*keMo4Yc|qsd zO29hC50#yj*OzO`aLVRXKRcTq|5edEhHz`a4G_ATJ$*DmYD=bX-kR=()uk;vC3oVl z-IRFna>kx(WZb5+&Oh$(kik<|t2T7H$aktp=<4;9bGwqE7#tb`pgxKjvHWhG6h{ek zJ9m5W5jv90NV>B{^xs5=9Y5n}&Vu5cq?+5~Ji)6sATE%^s|hAC$w9nN-rR=UW_kxt z#5#?rwq|~%>&>@2vS1&C#|M}b!k>i@jvvjJnuRjn3U;$CDJAWju>_VHLCC}Rw6I$r znH2prendXgh#%^1TQ-o;lTcr;vDD>}(o^4P-nZsFv?z`jaSz>w?%=QNDX`M>ZIf6# zKemBt9bpjP=t?@{Qn#C?SZw%Imlfs25rU5?^2@CuodF*D;IOT)l$s8TI<4(0LeKH$ zt=GFdc zdC)xXQ#eGLPt67&>e);)vKSNA(~sX_u*$Lo)fv)NY-II96UiWI?_nErl$}cJw79;? zP)w&eHR4&<;bli$%vh*LSV`O65CJxdccVR$eRU8pEwGuy<1RYQte^dguX$0>z97mu ztg196UQeAp$3~}y{_0a^(5o#3Aqf9loM@-Q@-2!JC*Y8j@ZS+1y`rT*!4GqS1e->L zR9bD`B8;lT?OHa~|N6fCu&e0lu z1m;#S&|@3IPQW}Q6=sva0)Mx6RVzqfDTsEyQFk8$kz(Vp36z))lL>!z5Xe>bxEh`H z%XV7AfX+7r4&0(aCPtw{R+`_I5Wy*_k*Rf#z9n(*m04-wgb)p_XlKM!)|a{VcPYdy zyFlAbff~*MEKvwMsdker@@#GZ@&dfgYDJ$?gOd@dtC4Nt9NW(QTUtb-{3h)S!o19+ zPro9Q0XTWO)5nUrdYCUvsIIi}7p>%#EYyfW@j_;ydno}hCYMtopNlsq*lw1P= zd~9=g_XbUGBNSV@Hye{KROB9iu2JJ?u;O(;s(}Ji&ZX3#giia0AeYakf_U;-8Vx7caxw~i+KeHQ zxo)n$xB=J8Ob@q@q&^$JQkW1(tryxUw)e7`Dy&kSk4Tjp_6JUnohWSY;v4JY$QGaT!whobX|6-5&Sej?* z6pIKFu`<&O6RY|7wFw52I#HK$J;gMewT^4v3L5=r0D2;hE_3XKr-{YpL~!j{SnW;Z z3?~f^k9W>Y4sL+&S0B+elXo?*Y?Wy{6piLW9$pbD>Yo&#u5*F-_QU$7PhCkJvlj^y zGn6y=hQ1XEY#DJm8Pk44!|OzF5nDwiZn`S5$p&d5U97XN!(|RX0m)B+2(Y5NP{ck^ z)Hu_1!gR{sJ3Jy{o8}W(GN6jcNiU($CY%~i&QEEYC{|TY;@6oRBU&=M#my$-1PK%f zgiSj@^P|>TV(>wS4K{kc)^W->`yW{eafs8$t-DF{gM-&S63-)1`-GK2I*0G}gnLBT z_;em~lvBg`z?wuKnSu@3gZO{-aOUu1rD?@DaTAFg=TVouX5Vb!k{^BT`#km=$HB1h zxAXW&F17=mkGl+r%H5Tl%1+9pUFX-aS?ZRwcfvG`O+j5n&ZbEK@XD7nWp3WJhuYn< zU)n&ukd-=SpwK<>Aw1dqQV@z?X}u8sl&|M0HU8k5567AI1H!Hlo*WqkOYN+P!y`;5 zu~uuKV5y$PK?FLI=9iUb?^KK?L0UX*FUM4#$Y%JpXK7U*m` zoN*U0(oMo0UCsAf;;@kTzF%?%ic=-}GLog^@(th#A?p&~CeJ}jm&Fi2K59UlQ*G|q zZo5YQJ7`;uHAvg=d-usf35x$ihf7QeZb0pv*VcB5u6++{>bdLtE#9kPUOUb4GS7}) zjZ&O98Sc%SV*=)6*o7Ci;<#g;k6H0cxq@7y?KxW>5rIfvb^*}5XO2xYKiP_t!FKPJ z@=#Hxv{p|SMDb*nU0fNtgV?HY2qGE&BkZ0s;07G^R(OUPd2evyE(0Q>uqRd{U1O?d zM_+Mlnxkj{zYoX2_`;kf`lud}@^QI&%Uej5IK+xZA!hG~%ACzjq< zXilo%c9?-1;JvbsYTGihonN*TvA`WfNqJk6TPqw~9mF_+;_uOtcGW$T(-Xa3WaQWy zDtC>N>1o6pQqo8GL3lhbXm2yst1%%cT>&0}qTCBPC#-Ma@T@5MAfB7pxI)B{7cHvn z^J|aaH#oSTH0{kz?|CmY?M}3eYd!*m#2P20?Dl~9fp{|mvcHKx1zjlJV{u&{z>uQmtC8XEMHsU#L^N3ky ziZx9maDIk^A}sF`>Z|ReLMZPR^tP!r3h$nMr0>&L#qScwVpuyUWrtH3uriLwyenY> z2}GEYM*ZwEIf&)3gxH1bTRb$zV&Pf_Oo3TKu*$ zq#9~xf)<1W&2*vGu$wlRE|K`Igll zP@eXH*Qs6)W0yY_@?)`ZcCvY(OqFloYZ@fT(ZatvHTH_8-d8t{zdeT}^(6<5L;lFo%-ZByYq~EUMn7?EmY1xgaCO8vbWbZHaPM4!SN(wNHk15)SK6er|#nL zhr-6r^7bQeTG^IJaPBGY;hBOxvtw~uIrR(I+Rus)Y-kf>m_VIgV~;2|E}WEJF5r67 zFR^$fHZpLCS>F7}Id0tefyoyMAp>nle5-vT_W_0|*sN!~W18^RLA^OvJ5vEo8G3<_ z5MX=g(nU?W;(~x4k|C#|IIZ;up{v)@lqd3_*%HO&ou054wM)r>kYNiqlIirLw`@`~ zLf~vRh`WwysKn(~=eo}EjwoJ0K}BVFwvhFl!i1*{4lLlWJK#qi8KvL{#A7Gt-Iv2+ zI7(j{Em&DOyRR7VD>1Ew;{hlEpY2B{tA3Ns`h1Zgko&+9yAs1x@YCeP}sSiz3=)m)!fhW4lm%N zjEt2g87Mzqbs~Cd&I2B8-aY>6zH*ZjNAxS&t%o2pfy0$lLmq7_JyzuxOOe>*L!|66 zrXEA$6;O>j$8CTH#?`iL{NbAmO$#GGgKKBt;qrH>@5e?9(rJ=x(a^oOd@UYN)m|+M zEbfzh=fDAzsUlauyaD|xiU}{}$uGg--{>9LHGyVMl5Z=iM7%2<00E~-_pw0FIpcnFh$zT!SCylrlz976iy5h&y) z3yJ3w@6p@N*%4UzcmXh}7ihj;<+}SfIY@jDZ$u~%An4++_LDexQ{(a&nHffXUo$`a zwWLv^nT*sx-{p-m;X54mBLxfx6}g`?$Ax9&l{tUh7NVd}OpYHAr#M9SQQF#MyA3O1 zw9PI@_zr%6>s)+y6fBzq{Hdb(MSYTL!R6=e;t^MIA#%`TX4V+s15))pJeRK>9@r{~ z0cne@eqaL0R|tJft*>8mmLw-iFOOQ=>`pjH_ngyeiVVq8eDht23&MaHkHiW1Wx)jI zJEI9(Q_jm4kk2hud?LU>66QZ@+WkDD+mbA?*eTRLmVj_6h+Q-1Azm?Zclb&c*maKC z4ptWB0t|TYo(|63#1F{FOVofXkbyFe83z|LWC=)?Crfu58aF-4d6p*e3{d-by3%m= zHeD0OGt>%-IkAl9q4GGbNi)<(jhXlXWY<4fmnR=ZahQ3Ey^XXyvv;64X+E_3TN{@G2d;7KKaD?M!sFg zCA<>7<}>ToWOwrl4Sy;wjPBgT1hp<8ROikhGb(+6z4OtZ>_tx$py& zkCjKTjnqRG1+!5WpUk3cXhw=%dDbnQxHF98*g+F6R?wZBKq@`CV#wfl{?km%_A2)DS*eZAXF2{BCI zIF4B@N-S;9$ZH+|-L2QFlRsVyeo=qrG#a~7TGZ-#6C8KsF=?t7k$UsHVo(E~%8dyn zeRYUhc^iY!6NU#Im%Ded7|dQg#Lr_tAgy(RcVfkAhLm8I3HCZsme_oNd)#F;j63=n zN_qnEiE;!E?q{x0g7RKoU$()UJ#jX2AXwM1H#3-2l8?0dr!3s&AxqaM>y0bf3p)IO zAs6-O!xK!T_yDck{3=jTGCwASi4@V|FRW}No)oQ;gNAHAlT1a2xJfq@WWr{bBL%4s zr(s$pc=)6rmj~#b?R5nlSwO?kX^)7oZY~pGTWmqurV0z_@DAht5PM$>9V3DCb5-LBw?oRuiUiPZANb zqWXA}`ZyIWoAeE&AR%H{eFZm|Z2rU7ru8MdUe@)#duia=aAtF?&zB8{ z185H|8B=V-c1g}Nlvv6WIx^cA`m9-sw`I}Q0n9OL-4r_}5dy@%Z;|$<=zgC=9m^~Y z0{;06(!#Dspk*2TRbOktRSNl5JP4TC=+CGAQvu!&0Wc|p<2h~@!;OKNG%4CQt@9t9 zZ+_Q{p_S~Y;$g*ij0e?y+Vo^MqoulQ8s>cF65#|%c?+`Vx(RAcyPKV|oHT;d+S9~M zHtO-c4lm$F&e-SS=3+TJHn0m`0KXnl=g<0mHx18CB|?g36`a;{Jy^;z>f&ipvi_l#d6%_Fy$mFYI+>_J}0h4v&dp@g@I^5`&%E zAaeN+KhEVKJGu1jNt&#(&R1u1)1kaB+A(&;XQYLsgtDaXi&?yq-!RU|$Ak7Wu@*re znL#EYo$3xrkQhoh7j`QrBMwcNcZlOCyqvyIMKur(9OH@Zkvm9OHQq)xIfy@vpIBBq zV#pOF^#-I^KkBXM$8;P?iq}KUtaD5rVJU^MB}|Ds->riaC)^DsZ6w`~V`I9r1FB+t z`08covwT}XR}3(cZ!%J-;_dl5 z%8JlfiW;VHVyv;UGtvo|18=@-6p@*tDkd{B*RQY4%ztgo1AYbvXLmqwD*BiX9bu=% zpF-gbAo)S*%E1L4wYsO-Zy0|X)oDV9(PSuQENFPgTz~6XC$q9cC5P-_l3la|(C{u`u z7V-}wVbcfe(b5b}3qb_dQAYsVE>+v<#&K$ACHs75ucU|YV@)b2S z?tqY|{A{3IFK%Fr;bbZ8W<|e8kpsEn(@|ptAZ>@A`x5?@$A!~(Q#a!x7eZe129y?~ zYw{II3cARatr*Te2z?oca)I?~Sc$hRRL8)#>oG`~e*FGk z8>Hhuxc_ndfO~c329(g7-zE8k<;g}0V~tv9`J`gG1#aEmHf^&gcS&cFZk~5){Dg(Y zkZ7!I5v}A5*hI!HXZsh>5BEk65tK(M>Q5;^%t7#3N}1>vfDOWM@50U@r|QPvZ(@I+ z_ebl~`d=P&u%_w_TZg)5$;fPId4gapS%v#LA^vT6u?rhPK4+|9`1461JekM6#NTlW z!e1D8t|Twby3ccyM5QGe2=2AuKezzorBXYjzb?Ih-vhr9_UvI|Pum?_K|;$RC47p; z($jJ#ez{nxAxIoDyXEq*59{HbAV!>gD^6upUmNX3hlf1gQx^7rlotJajp!Ie5s{NH z_3c{-WTGmRgYO~J7IowON2-v@XwFjI`i%PWYX7JMVg! z1=^adIW|93>Ja^n$(q)E78hS4-!gVzxVKZYbdGW~vlk(4L~ig-1vX@6i66n{M{aG$pE0fPYNC;A7(2Qod6XnuVKRQDyl9FP^bP+o63_861t`MidY8@d zuy0=(ayD9eItRgSyd{mqX%(;ViC<92Vo~*A3nXPyLx{&}l>(GRI}&oi9Z*H-p<6Uc zrDyXq_9moL6vy{^JV6gD$eFhw5g2w(pM4I=$pn%-gjk*3sIKesoLcCB75q47$Rq0? zHuKUN%ZM=0bM>v|?c>Fd()QnM$gAvU{TaQ1gbE%Mtf(kW>4VrPGEes?3;gLjx$_YO zq8NTGC-Z`o)$8Vx=v<06L5b8s1Vs^Rb)i@|*KtF}RW!Ryi( zOxZ14p9r7~n*|OE+GIUU!AW%#6&nKOcPVDCVh`}|lxizVd$ZUwVS$~x5vc<5gRhw+ zoEo3D-oQGjv77Ey61Jbw=6Mx`BmH#ULpdCpe2{@q!E@b&GlS!N_-d5#bJX1V2SOth zB|b1C#^?se9=%+C9q&GIfKNq+k{>mWFf!-8r!T*cu5jkyOChp_1r%Sa? zdeUzt#=FZLDp7?Y&ks>RU7ft6Ja1dsqG9;+e)CTeU2!eJ;_@3Jw=agCl5O;}CFJjB zoRuLO#2=9MX%+Dz8+ARmR>U;s?&`G5Pb(NQedH&dkwKMve;;p_}Kgxp9XcpqdY)hDZT8FFC;AZCp@NJWk zPKOfVpbw4($~b~OF=UiXLyY0HRqNNnt{ZE2V&fzxlD=srX2z2zG3yS~gDpe8-*+O> z3|VSB!YwHuazX3v=RJZ5D2kGAK4iJksj;lr=8ZD}Xx7&)(6---sp0V%MfKoIQI#W@7+i_@nIt&ECWZr8uDzK!=`S3%N$=fCxDZ?F@E?!c2$;- zR(jurfGmoySwP;gxgzQ8^;G*T$O z`&h(;F!FR*o*NCOMN;uuD;uW&kF@uUimKbT zMOPJt6uHPjLXneXkSIAxlq4t_L_`6}Nr6IwB^d$9IU|y@ z92%-O9BKqoTT5a@1G__kj})>d#D8NZqPg3B5Ta`ny@WY(K@HY3827Duv%GZ`f!Cmv zkKB!&(h)yYW38VhIw$r$hD)=BiU;vgtm~LZq|}qfFSV3UY#V9%4(?0{Hm^uvP*s;@ zG_wB*Rgfd7W$*}`UUiS(M=~1)K3E7mqGi$EMJuF$SVRCecenRzjL{m~WzS)G9jy`Y zZSd;$LL?1KzgFYB>XayJPRvrSYS{h#k8`h{E!>K?ajzY!m3;VhO|m&Z_ieAVedMO1 zWngTFC{zq=H&aWg4|ci(y7lOSDf{udl{x@xGa<$vq{+NCCwRMSe~#Z=f2PFJDZH$K zJ+Dk{^D9EwdGodxdYy}4QcIMNUErq8;yg-l@jNwv-73i}>G3)M7Z%SxZ0;#P?Sc5~p4Gt%_Q*Nv|Er<` z%d6Hy1j5XEEi@(n?cSW$Q{VL)clgat5Y967?bvm*Jn^@U0?K_Xt*sGiP#gY zi7dn!*eH#c&)0_(q2|;1p-2Op2gp=2-?Ln1{N7gW_`8cxGUu{zS>bq~_aNITpGTU~ zoZ+jCgN*Y#3svdhXQTXRg+Sb{P1;*uw4swrpuT*rf4ZmO;@7(5PwHNF#x>y;S`3~= zWE)G|S~&l`{CP@2hG7M*hdy&Ihke;LdiG@9TC2_nkCg%D*%a}TKX|sG5L^>})$4+R zsMwL9XyZVN>eaMY4*Z=-B^tGqOZ=t}N|`B@vZG~tsuhRKhu?~h#{qB-N;&c;?X2&V zEKK5crHk|3Gbe%om0AA>Sr6XiAh1z?f+ewJjem+ogO4%UdS@io(|N z@PK>su2J)bj)BAE$y1yPWNBO#tS1W4g@OwPxO{_+HmA;siK$1*D`!`tP|`iPF`K#n z)w`d`bx1{qPs^88HsrmRX84dYE%2x^S7=~w8vPite-#~qR(CV^nZiH;Blpn1t9_A$vvFfM)L(GjIH0Qml{1M zMoNl5c`66QBz{d6;SKKmSsO?;S=|0%00;X4Zz|tyd;I!iprBUtid!j-6)HDQGK~Q0 z39~uoO8D&ZZy{JMu`PmEG43CRkb?@Lp@$ZxALUvdrKlT;h#P5vPnb|+iru!UEzPDp|iO+v{CzW8G>&bKpsmEo{p1Qn?MpAFnOp*_ps@*-6=}Xg4in-fjd=EIuR4(O7eybnD9sp_ml&eXwOJ@# z_8IrUI%3C(+60x~*Kmw|hWq;inrS91tqmE-kH4!x@5bXAN_&P*IhrtNG_{Vz zkm>~o2r1hWB~_^+8Q!x7_^O}_5pM*73j&0KL>4o#=PV!bp>pWrK7Xiwar>nj@C_Qq zD(@Z99P3ZV=>FVQf0E4ky|;4*zR23%(p_)v0Oq(27nQ}pyNZmN@7&*~Mlx5~9oG=aPjG^t`bXJI zpZ+5pm13if9e5wc_=`xHMtf(|j2X}ofydD0Zi?WYXcnb$nuS>p`>UfmJ+zt>cq>F% zw*{vnxDN4Z_&eDelAXGuSiFU@wE~L2Kg?;VOOv8cWppN+&!h)SYtsXvHMT=spV!8o za@34~Gyd6vPyQv3xBuSaAH~9(v~Z$HtO4x=H}xLdeYIz$j*Bhg%|O-`X(RVENQRQa zr!ZWgrtmjV(D>_+{|;&)G3?ALEtYjUKh3+y&LAvi>ds*3$>6fo5BVpSTiR@%LH^-$ivA_=6du%t-RZk>0}?*3dt zcGT*Y=hxw5+f|>V6|vP6-S+nf4nb_ul6xV2&_eb@qnqlaFp|oK*6U|FG{z*?+v2Z?F5}yTzVke<5v>y?pacAXH8Q^+!P>>++eoWT=(XFzM$KlE&w|`b<%VG5A zgHox0?Ux_%h@|CMuT87&N5@WiT_<U`ovYgNXU+6VpaK$N&LJ@-i{& ze&U*SHRH$jkFZf1KkZ(5JmG|g=toSD4eMlpaz5)M{9ky+e;g(LYy44)0XC^_-(3X+ z^0huO0`45DWRSA{%jWNJO8;DCq_>XmR(X%A+}7x7yOz+uZtt6nYXgyB4K?pO2(dQz zy}J_Bb#PEd$cvZnRu9E4<5@CsNLu$1{cho8xekenJI29{GEKNhe(*p)QzkA=@?yQV z27$$ZU@Vgz<5R9wfRaMW-mMil+xBys^`Z2F&|_}dHQw&D5!pL0U-^C@yFV>(D*i9) zh9aWmfqH)GKA@oE!~QhzK|eB5`s$R9ZZJHwYFPhwKO8bc3kcb|J3nHZ-s3&LB&(-#5ochRo{Ci^%vL8 z2mOrrQDv*^zbY-qu3A$6E6H-U!R>tAUJa%W*kQ-=3PN2XT1`A=^<|)8-Z6Zw%Cv6Z zQsM_DMgHnp@JWJ~42ZfCq7EJ;BY~aDA*rqqaNzfr@hKPBcvqU(E8>*N@I5>PllDH! zz{E}8zF_e_`3ATkoHw-Zmhzz!$rl`xgenb%FI!uDMz&pFZb<#!HQLW{jL@p z`#T@+5`prPaJhoArTEAJrH18MhWkU(*IS)Tsn{qIrI|0cZyxD?y2O9w!T#|(lo-%Z zI=}-oS#nt{HQa-V20uv+{EKw>zuoNr$0zaquP4NJA4VX#*9x7R|HoD`j#>gQHs$9* zO3nYjkG%yW5M4kC#JvZ4=RioTJE}P5zy9RkyL;Am0385gDf3I$5CFKoE^qUV%-Px56$3+2QBihaWpy>*BXm-n7zz1%Uxg;0YrYj|%U1z>2)K%= zDP4IKfc^Kra>V>+W{f$wxpM)&uR|os%75$rWT4h?86Y7pj>W&dT`m<`mywa74)OiF z_eZQE4MhOA0%WmCDJWh*kh(zr{C&$%6%_2BUqw>>^w;dsYBoRhFELh#9^&}_I>Hdx z{?iaw@p32jfBn$^{^`H|rd1j$CMMSKyA>={V-bApq2%1ZU%o6({BOVA8rS;X@A;SN zm%?r)JweP-cl_PMLw+8czKHo0JRS2tTk#w!|KsiHO>#^yFU_X~;_p0q|5W3N%m2Bi zj17_upll<3xld9K2jGg4I??zaJ%TGD6u`&D#T5&sBtV^=on38*3;*|Psv|c1T>s5Y zjN(1Y0G9N<|927RclrO(Co@N}!kk@Pa;vKJpx}OOlR+ZAyu55jh3*FYx5fFdXYqgT z&2)7`5$r1rp2i<;QqeeuWB z02m6M3Z)bTH(^2!tEwuqVX^Nwp^PrST-EE7QUDPVNZd=zqK$X?t(d_-NmzI6?oQC( zeDtFU;2#r?%j3yNxqg!{+2HnZ_bWa*c?kPrdMxQ%7`Rr92%w0b8wi9ycy}!am0^Jv zX9oIhC?kR5Oc?5!O@0D;hAO@(XddQ@yH}z zorA~lf=-kYfL^Z|hRW1k+misdUOc&<@sRr{8-}WW9%}yBNQ3Hc9v~0C!hin!xyE#S z57UvaMF#r{C$~!G-E}O6xePWCfB-gxT2=81@+`1g?b+HmfNwk~Rp42mpa0g>V>o56 zwpUm*Pr~2bh2w!T4h|(!I@d51XX;B^(`M%@uBZ&+Yg?>Vs4(Gv`uRv9Dozj?h?>HD z5T{JN;CODf0u%)Kv0|3F1A06t$17c16ozUW+KU^iKo!gj^F3RkFnO7;nfkggJ?^1B zw9&Wd_-qA)-EYn?W+l`~PiLLe#|=f)WsZ01OFHiVaI}Hb*V0<^h`i{aGM{SYam)vP zu5y*989?~ciLWu^7D|P9wVotj&`aUc0C6N4nz)S`0HutVGR}gzAy6=S`MsEk_=@4^ zrMvqx(|X{kEUdsUmISGYGEHp~I4YBmYilEPB3?KmVdEob`^R}*Ko0ZtD<;oR#7bm_ z9LF$2oL&CIG2UwqT|Z7UpKJ6Iuo+B2D}X81>q)QGRHl-X7m8qE6Sr$x*w<^MM;f?k zN*Cx&r?~zQeHDB9a`SuCDd7QvlAQBI8V%7`HP>Ehd85@5m9^^^yJXFk^K;kFwa8p3 zQ)w(uC)6cJM+WJWKOMxP)o-@Ck7+;`~CCY)e zZ#vt`-j`(IXj#PKyVgI#O4K{>z6LrgyYJ>F0T=g+-nsbwhus<_1smPI*A~m6`x6wY zhQJG6o$QQeD@UR?FCRx|haFU5m|Iv_lm$BvP2-fOVG#`&*!mtE#GY!s1CAPuO+O@@}E~f9s=w}j&Hag zn3FI^aa{fct3Q(0nI)iB4x5fcgy}z}V2;EpwI?tVR`n>*-RkS)z}_lI4H|l%?9g7N z6j8x}$|&pFoE+u?-&l)u)uH4ku+Z3!bZ25b&i!;vNSGIR<)j3tu28?2uUeWTW1b#y z;{}=DBrfm@XWgW?q3~7dWq`f!l5nX-#(}oF#Jy2Jzp9bgxGzgF^e5<(I-XUck$m^d z2X3Q7wQR6JyB}~1KgWK$W;9bC%XXr~M0NUCO{MGR0|)!!qJHu_hRD-*LMYdrnMa`D zTDnchq+@pz>(Ztxgbbv~#kC#soGc3TKYkDb>FKE|Tc)GUiO3g5rh};~x&hW!O*Tq#rf77E11Sk~BG|!yW;-+R-sZu&d!m9Q44c&s!@6|;5!yEQJjmB`7bRkA)O(w7=f7z;n-slUNfz5 zO2kr2JLY_E9v1yrd+QT|nw<=Y&gzdePW&=wKyT0w!g7Ucm%K6L7I)j6Iu9B=%lKP% zc?DYmRSxS!-3)Oc$LQ9Xixeo_dEl2ODq|7{ktSfVOs)3Vy@UU3({TwpzZb|bzs6)ea zR9c5FtZ)beJ~KkhuybBX`v+W|?k`(|I7gCvwo>?$PBf8@uGkNQYA~xSO4X(#{CCkS zN7`Sng-ym?6Gn5C;_qhF9p=Qtb3nC=4cfz8$3A*0RczK`N`2SvnUuG<;;YPyF#=Qq zKi2y-(>Itwsx$d8lq!t94^pPrgz(2j=5@_qvflsUCS+PiD0>Lgs-T)bnRsWd<*$i=y7jA z>J+fOS~}FrcAKTAxqkXJX{CW@O3w8e`@1m>*xJMq#%cv`%O4%4LZjM}s^{aX8%Q!w z8vpp3j}JeM5~TbnR*UCxg@y&thd$+j9H$T5^RV+8XIPlHEZ;yZMMt4j8ct&F$FP1` z>I&^oDFXZ4HEt2m7(RWZe+uS0`l6wdxBgvJ?Y#pn^wn|%pV9raKF83OBc{~Sk$IV( zfIDL437!_WDLvbIareixq`w%L`Q+yJ?%aq*ynTto%=vF}2S*MRC2JzQ{ZcEpLh;;8 zy&8__*LyyABr?Ov;`d1-@7#I%ZsYpn!fK=ZsEc$W2q(n+12G2XHz5;aV6j5TX-UB+ zI#vQLN?v6*sdI~v?v4scN}r0`+oC~etICoz9^R>cFMa@i3CEwh+*@=~uRT2xsw-~9 zwr0L2(jW$xUHqt033)aBqO{3X>OjRFT|=|93JS9xh5|-a&oZ%oKU=AffE7W(bt`ft z_rgomY%RU8%5$-}xZlbeHF){6dcrgYG|`^^ia&I+HK`jR`MY;-wTMstf4Fk5wHA&& z9MNaU5|^=GdJ4{9r@{ENm|_6mvA|Mm$OhW&o(_Pemp3k>t*ypJ;+r5|$;5mLVC>+!<^D|L?IPqa7=o9|?WHIXi?gU9(tnFWU%hnn?UD6Os{Lusv9Y2-4`n`ZN69kyN}C+ z`+n+l{!*pc#83~tU-89#aE4Yc$T;4o?E{sXEVvXr-w2Z5(m1Q=xJ};9HjT5KHPw4c zhrxI5TBB++s6r1libeT=7^S$6S;fS|a~l204^QN-{kh5yEP81$o2!O%?#CnqwdC=B zFEx{1Ve}q*YA7z>YVz?Rx9wC_;Uk&@QiAq2^9PYszi!j;zcg0FU7Exp=!b{pCU$p$ zPcLUIe0AVu^O;iUs)*f>j9ssV@6A51+L}mDn5ChYl$TUIP1E+ZCY}`Q!@M2gi|SLv zDsIy6$Y90=;2av->eCF_fG6N~4}Z)W^RVG^v19UTXZEvNB;CD~(6j$uwf z8~1~Yjq59BHo$_nKZwHA(4pQ8S7$s^{lXq%ewi7NyZA{YK|f7%!o)k*E|EyJI+*|} zgTA&K=PMyXUvuK%DIg%M750j5ugd32H&;Pn!syq43$u!n1cYKMCSv5H0q?z|CF!5; z%0=TLP-yGDlNsIflihS3rUz1MvJuj3z`x&Es)&U_M zOa;B@-qL^`-H)r*YufY;OjzpJYF|ufmNbK=C5+9yuRz`NPrvJnbaG&65}DRY>DEPN zu%;0qedP%n^lC{a8%$PsK5STy7#93hznaE{MdK)=MElX~M41gHIWG-jzR)(EoK_z= z&)CIQrB)6jHgC(Xq!(2Q6O-4YnP#l7AI$Js!*s^Amc)>++qgcgV!)e~!zdZ>Z{H2e zKd<6egP2dHQQr;wclA-x9e=$hwgll9ACOiyMbO8{XKxyDD4k?ZC>{{#_vx`F#J=Y* zNV#@BHxry?h0Po;EbH)H3zkk9m!u_qu8L90F4gDolehI__(KwRRjYLA?fu9)58?~X z+*-K-TqmC9I5nLvh4yoM810QH(|?(%cj^B$1xBZzpvg2(?Mx(Q;l_i!?H3VSwC=w; zK(#<*jQAxNd3)lvRiXo>i0R!TdXoB{!`M76X$Psi*C8qMi2X#g!Tx5RQZTN$c%$Rt z=DEKNIRt`Kkof|mnGXXHjEtp>43r&r&2c0`l7R=%A0 z>W}Bqt3YR*2$rcD`;W8JRvgJY*6e`#iD2jPKTDLqt{r8@nW92YV7=d|O8wO;a+(IW zY%4UMLy**Ozqw)u=@7~NF=()@)Vz2Rh(cgq-TO(5O-|0LXJ33l%m4o73OWv=#Zk`mlA#1_zJrG6L z`b-sPw7CC9&z1f2m!SD;cE4j@VXs@wP6D??c%(@)NgDvq}-7Pm1tS)Lrk z=e>I9SGOek^k&6|VOvs6xtGG$DZ2S+J`)|sGq=luL_uXHluH@~v=#K<(3}8Go_oYb zSpQ6t1E%hi*47*Td+j-Yf`=zyGXoCIXHT`dDDoUMt(YFr!cd9Bes&P^cpj6g7bRi= zDwhq<$2qs(Uvv;k$9nmSfp1BFE`8(CccT@s5+a>>Wkt4-?BgYz3k-9;zy2-{S!lU4 z^J{_82aJb7LB1+2uiCNMRNfNMR=KdA6U_uHs@sOPMOC=|?2UHNXRW&Pewdf`+*%Gx zPx0V!Ce;3Zzg z<-bc@qr6}``)RF-p9INOhY!HKTFjW#n--3}jLj>2&k+c`#j;M?ia5orbfiXaj(Vq@i?lDC6b2H zSSM!*)bpltYH0sOCOGo}pq zFj05$U;g3%!Ulx-7Un)`WWW<$~MsyK*DpGx~&9LJTId`^m_5(9B(Cav4I|1IcA zrGX^d#kNb;P%K-R!MaB%FeGLL7Sonto++C%QcRe9I*?aH&nOr(U@v3`kh$87M0Xy5 z@!&e@%A?X5GV|eJVv65_Kh~3@jdAPm^5!7!o-NSdcoh{wu=4$vMx@4j zFlnSV#l(^kg|Jd1E9`nIuhCl8`N<@Qd$4`bw#mpFwKw3)rZ`-u>|I#;xyt&w4D#LSML7HefLviFeQ3 z!o~@0QAaj0bSduPxgb6pk-kd0nrxt#$;x=p827yj* z5=UsKTgbDSy7Ia1?Z&eY?@}g+dt!T)S^hx%^c3Bp0W8a1Z~f z)Eu`i6+Ql8wGt&yP)^|`l^#MsRyeZB)1*^l$T+%%(Eth_FB!=q8(uGCM5^wWhIUwQ z97`)w&r9?CsjqmN0+qp|ba=jKIJN5fD+Ayof6j;?PatiLTLjP#ZxRIow++2n^TSON zElKVCpk{Cb9}1vF_Lkg^wPTJB`2?g z5ruw#j`dskU#X2ig5b{>k;#B@@m^b=u=9Mo0#cm;9Y4 zSPFMRVLSqKAK_v-5fClli?F=b1x|2a3Q#ari%dINZYg31I?pJD zpX*Ul1gb0L+}I@BLN38(51x2aZ`(S&PBlTBLDJe+E+7@Yk`trpye)y)zR8t9PvyD_ zdqKp0=8)KhKL|f>a?O0-x(fN~WN(Eh4)%5Q>lsA@!<$m(?h)m;2tOmprXeMDgZvN0 zdf-)$rvU>TtS&q}oWsa|g#(OQ3U-)F|Md^6fL(=Yp zUa%Riv^L;?s>CbDuZu$G=|BR*O>QM4`2xB*D0Q*5clW6mGbF>PMIoJUSz^Ztak(h9 zLQ0#vDJI;La(@i0HF05P<(*(cUx2w=9(z<22EIYx@5+_E>?|*LSbj)gCAlNJ#dC|C*>Zb6k3Vw>&r z1N%W24Md%mCUP=Ko%kgosF4AB_*c+b4Sbm7p&~T>wS7o!j z!mS5`7^oNXWWA!VVXGZg$&F)aFljh=cEPnKMBPM@0=pgV>F=p`hFTokyMaySU zxwdCL{)Z(9Po($Z8iNY&8eUzx+?_XNn{PdDnjLxBaw=+Hju*utKUIuzkMLLx1+WBi z!zJ7VPv!71H|L&>fTUUdT2^S^_Abby$Ablp@(gLoLq}2tJZhm{11AsG!*owtpluu6 z@gKlhUzQJVW*C(j4rriYvP23xWIkt*Hxx!PxaFS?q)I*3P6^lP?1?gnfGo;R`eTQUIySW= zn<8?!^2`{y&>;#qv9^O{SLWTR`l=rMu{4El!OBk*x-C1Ao^yd{O2~K0N-H%%7G?D{7T7A7+I~n&8KqlP8TnGqZq(Y6TinM{RZKnH5kZID^qaFjs+VF981D= z?Ey$#wNXQb)IniXfi672;`)h@Pv+*tdGI2(5%`v$~P1v zKW^Ujfvi(%j{%uL@M^_*}dJzzC+~5A5cbUfeXw=U}QWu6~hk(u`DXHw@GB0RyZ&f15ZOu)>Bj%)n5f zYhfC>Q?j^Y*n?m4$ak*ED$90;9rn0BlQ0@%hIW2``^9stD^CD5+-DamKnjE~GXkB$ z@JtpcqdK2b9d`KM*HEyC(k-0_A-A8P$_Y_7+Gb0#I`u8UH5lLOch% zBgZBvngL+(_6$3bX1*$jM;&>><^2@Rl%<0ua){b3@1=YTBQgKy7QehzlFd4-yr}Z7 zs#k>sS4s)bDzuD`pj8;hzZnn096@Njn1M+osKd%+7q1p}-}9lsk~I7Yh}Wt3ds1XE z*Tut2L5iLmUxYBp5yu zXDk@2PBS+iCY{ZLN4`GCAJaRhOeKw!Lp%S^J8@q+ zK}>k*td=symavxP-_j)i1Y;Mz%}_o@T*(5IY74Wxc-AwFiD4NIM~T*+9&bH}L8#yI z@+o7IOUPueJ@o)@)WY3GdL1Ct8R&HF|F+7!8yA%wH|=i99dLWb-N0DK6euv2$`{Av zGu4xqv}AlQv%8+3PVSPKRFS~w!y3pC-M(!ZaGT(_*acZ$s^>f7M-Zan$gr>lNIfCzNGto`SoS2-5PoI;%d~ju&Kvk(K_xPM)^A;^$hOvso;j{SM7n= zi+V+#9Fc9=6&NqL` zOrLmQ;_eGdw`B1nFiUh*E^yn-?(~2Ri&iiA!WVw5#PrSc&2d)@G02&00!#ZNOLUof zkqX?Gr}@-U*I28Kvg96Ol>zx-4ji^}^t$RAd^<$%!r8-Rur1}#INPW)>}?@AshMvK zN(x}bPHO=n8H5Z5(H?uXJL3Q(B;Z8v?%R(~v4d}@k{cu}!HtaiW|Bq2wZ**>lIbpj z{)H>}K1Msd2l+do4B`LsX&5EH+|cy3>>73(8+0(f+v_VBrXhGI4(Q3PvY;%=i88ap zOckh1%Q?!YiLrV|7K`?Yh%T;OI1^i4IK8y#XR;|dliGbaqs&3sG>G4EqZGPMS@CtO zm_Usf;J?fP6JTwnji^yFw>z)Uy>meM%=2wDsibon*lDC}8JID$4(Pm>f&DH=8< zROS|aRUed0g0bNd0-veTaD7xHp_k+Ckjk%i)qL2u_Z)q_087X^m5t_PdvUxXm$#j9iF1)@PNh>&*w zepm_yL!HbI9^Oka7nI0>%p&>&lroqF1ec2u-qtxlus;^wLsuMg zQ4b`h5hIbFC9x>*!C|U6PZeI^%V+jyTIX!F=*Jxd$z_6M%E3w1%b=oT@r0mA@46yq~pV}{a(q)jWs3$OsRCYJ{SU0?Vrf?Ks} z+0gHjaxzCpEg2PKwo|?n!E9vuT0g|k#4bejpKQRDS>z&ZH~+HhL~FeWW02uTCjy1_ z_s;#LoB2i9z~YX_PW`HC@?HD({2B7WHZt7JZB#GZk_kq$67_tHd*K$QHbHycP+RII zSoz{n%v-#rb#2f?KS!Phyeg!v;UZO#jV{rG!@~d=lntKBDNeA3b%M-E3hbchlvct+ zyVXb}aC6Fr=!B&s3Ki5qSN{Q!ZSVUkG9Sj79h?jx)&m!L-l7aSh+h~LV0x&+ZIQnO z3Kz4nTNWB&6k0G$)I0Dh%`t66I>8#k&D(U~Gj_OLyijbLaAa&7;yuF=$LRNNVuVTQ z<7(9pyklmT%6yHB2D#_<%cNV%^oDhgnXQjV z{aqWPo1+%&YNu@^4N5@LF#kHJY!eha5J)_shGg8U`N3f`yWzr9*=0$IF_V^zeC%(9 zggWFq3RIp@?Rw^M{a%v>6X=??5qGEX+(`ubwurvbmOU=OkQSIQNp-43I-1A?X8Gi{ zBUwRd9-DrKi#J(Aq0|E2)$WbKMob9J+c$bEDiG60iw4s7k3EZG0EC%9d;9~-%L?Sq z%Tp$moD1WMt@?Zaj^~b&Ibyge@4yg;eH&3v6d|0v3aUn6j54*Y^Mjyjgq!d1x4;8l zR}%2R@1!Wd(rz(k`c@+w_q$e440yhuo-`pRv!YqOGc}@9@!Gmxqwz6HuS|pPvsvh6 z#Rk&~Z=jzW^G7KK)P~E~B-3rqJa2OD$2p2V?iP)nccH*5v0wYnG?pYHM95CTI@FdY z*y@JKYq(tp9)2qyz&!Fau@Oh?z@(wswNK%SZZA{#yI#huQ8V)E1bXMcpGqUYd?gG$4jECHs}b z5+%=C(~r#f1k!1SmXznZgAN>~a|NkKQQjvP7uJvv1>xK+FY}6DzNtNL{%31+tT^{~%J) zkBD6<5B}Qiu3v?T(iC~DTRQ=5RhP^UR%F%UkKi$B(4&W@K^Vp6@-`^{5%K2FwzeOd z>8n8OB5Q{15mWsM6JIWJ5h9*j3)Iy?*BJ(S17YSJmRL>~dYX zc`TmICLk@Bjd;LY8c+ru=_`;O^l6U4hHXw!^T4Xz?R{G_``cRL)fn<N*f;aQ~CP(0lq-4=k=&+~bUxZD8^uxX|g&^o6CMK$jY z%M;@BDm6&E_**dq!n!9}jeD1=Dy2mOa^>y*NsuWNLtB4U=HGX(#Td&xBbr`tg>+^> zC|aHcU~zT;zd;-}o@g&`3|G0OgdVOw>@i&X-mNtdz+5uP*-&UuC~en#aRyp|beVkO z287mKw^ir-u6+`v?lId1p@ws)tNTS)qshnXPGnERH?a!47K4Mor4RB&xYe-3`kZP> zQwQxARpE;=iai!JmAaSIPEn~+6C5FxU0M$7ei}_rLy}E%T=Vkq^2o3Ord)Pmw}ivQ z@Y^CEz*Ea4v?iSEdznQCW6_!Y1kY-DQbSYHQ@QK%F`nrXk7&vT@8D$w>=_y~b1}%@ z?t0A(L4KD-;jc>lS;!~f7Tn$YxSS4VID??d%3zY%zQ1Nbha z^308ZVIGnO3Qa1&ygi;v%J1rR>TKCe2pqSO6e7o~1ImLybc%Oy*-6K_hS%@`yX?wo zz6mfc^b=MPi1O;gbnFz?IX@9!WlekS;JQj#SU(n#dD!CSTn#*k1rVC3M;k6h7@9Jg zvUH{kpL267r*AQkn1+0=cWS#LiZDSu13h^^9Y1|+2gtrlj|L%Mt&5LE0HVm!7-P^M zQ!`5RS`&*i_AS%TMz4duh0U4zN;=2BJH?%ZpeP0GR8G{iz-5>Mv7eG{&`?Vqt`9~D ztW;8iS#ZV=&mJzTu?li=7$rGril8Mun{tg86%|gQ& z*kxU}r}ROMm}F%`dm%UADnalWDw=LV6KF`76$gTy!DDIJv^Ba}_x*4dW9|ppO~kD= zf&_p&TVMj7?fY3M9w;nwZo+}8hrO79s#I`Qm`DS7maZ&` zD;oudX8N`Aaropy_cSQXC?6BDqOZG_3k>7cPC#WN2U*%R0QAb>3#xwg9}~ENq&J8# zxv-_A><>#7>2p*n^&}jnF}=lMtk8zzfAyf$^xn2O)`=Lb(@KRtY=yOTEQ|?6Mr^du zUPO6A3BQj?S8nuSP4GhN#gwE1VAw&qaXE1|4@6%Zq_a#YNt_~O6mEOC`rBXoV zpEy~WbI->xN0)VZ&b#@j{>i(>q$;1Qy^o%+a*BbP3Tsd;W1;QOfuh**e79qhlO^9Z zc2&d)z%bC)e02+t9d8-OB0XgmsNV^BE{F%Lkzz#X^8G3nBul?+@Ldo(YPr7DqK7J= zL`~7%OW5e=Z8K=vvMu9A`k=(x$JM3 z6RAR#B4{|kNm?%qXE2njK(D&&u(kUJc~=3Bdmv6dOds7$x}u${$rP=HKt_sj7 zNs$ydAHll%bD-r@{EV%+-cskwQY9@V2C`LN294gQu)<^IOP~C4G?4Q9YS4iMnmUPZ_5b}Wr7uP~DY!y#pVc`~AO9=E0bK{@d+1i1-i1k*B zVFEM;=)z;o`}?&N87*g;l7Te@DT<_JQDD_%YYm}nbIZ2q2%aJvj@5W8WDJHk$8@~@ppYO3WEVz3IhVpm_S)2WsLU3E<0+_CC_2F}4;Iv?51d7CT5PpaLRb0G zTk0DN4D!J$;C~+;ANwH|GifYA4tUD`FgM=xy_n0dHS6e2vn_~@oI?bt8+xJsX`at<(E@{bl7kRr}y_uldqCNtD@o&`GM zLHH>ZEZk*sd_Ys9pdMQ^``1%Erz9se36P(v{+QqNiMz4QnaQ!D-%~6d`;zS;WTC>k z|0gKXALLLdgY>%rKNP(;rqEv<;(Lq8w^j2AER|Ks@ADMx1rU^&%-P;fdO}DXx z-3Zx-X-&UK5QU@~5hx)<4{eo=EoQaMf#vhmk$?`4IT#oP<0^=N>FugWl6IrRSD&{j zb@^&UF$f1itzfFD9j+~y@35!)UDcaL2yLB?2GAm&%Sqa$`7bzN@f!(1TNQc)Kbw3R z1XDnvZEuh=tOjnUGsM0vpk{nhi#pg0%0 zCG$w|LmLQkClUcoZlPU};(LASICP~Fy(YHk{_pcY{YaUjITD3_)H0TSX|<%1N&zOy zb3Zi}0~t}5!yJ2yGOOj2mrhZq-J8Pm=r^w?PxoLP3D=KC?Vj(9YSw&y9{8k?V)gN9 z{KwcZ$AV$7jp9$f@iS=k3$~_o1umH+aX3Z_M;u6U;DMtCw3`q~KP-b)Rv7O1FLdpy z=)Vm)5-n-~5Hx#o_=8VX_Kma`a&O6TMd57G zsuF1hpSrQ(p2P7ArkL?LAvEuo3Z=!F(7wDq$`Q5kfy5I-5oInTbjlDsfYg!gR-O02&lHN>dIA{fZ1IG^t*DOa!JdZY;uCcEcB_)VPR43GdSxi56 z$$oDO7W9uLDU zNNA|>MJoO0!6bi88ic5qlezVR5F|cy92U_6Q!oV=M6sBz5Ex(WW$9q82=vlaTYXUL zHs~*mFEK;4&pyNLM2jpVM2j&{2UAk561~x7B37i@qG05#yEA>!As!|MN;42>+;aSq zOpp){s#P`%rX(P`51`$A432+a(hVRWm;m{P@=zizL#Rc3_)V~Z(M z1ERb5kd}-4S)V!uMLI7=vXmp~&d($tC#sv+G~>UMW^X+s)SSWlcT#7ti*hgNW><^0 z{Mk8j`f;@Qa>G+=!y4=j+sL&?EJfsCqKe$W=9_o%s&QzISSF+b%A0Bi5(jq-b%qYS zTD=U6%m$Cu`H!Ts1~uOFd#B5zL%E7kR|JD z5MiKm7jl+J!{w>VNSTf|s(%unTO{8#HMoHUgzg|iP-t9UDvc>KS7SUlqEqG%)~YlK zWo(q(k99gUh@zVgfC{o$_BQ_0)=zz*t(0(n!&vvpKMxbJ7XIjH9jGoz^U4sFf z^QMXZjEqMu&DjZ1;5T-;$>gE;piZv?%*1zdiqztT?h%E9wJ_$qQ# z0jlTJ@_+N_wssKyQ=)d~ErA84LOh~HyaUV<_pJ`sMjk6{-FfL3+)C!~Oa+`0vJWCb zcBMQbkq0fV>!W+lOg}3zQEN;i=ZJ_E&;lqH6d7)KXJG@EYyS^vZyiuox2}Cp79b^! zfJh@Pp{R6&Ae|D@NGY-CPDx1>1eKOf>24&YyBnlIV$pm9&wKXwz2`jp+50=^KUlEV zTyxGb#~Am0U)S$O9?zb^ZAM#)^NsqMcKL&a$CO?3d!zEkTqK^RI1~E9Q<#w~TvX&R zBD!q=miin$QC@rS6+oFQ(k^M09{;H6Ej<4=gCj8YcE33QYx@WO8eO>HXKJWbRQ;GY z9Q_k30YlU~uMhC0oYO$l+6r%y>{V%(lfR!0DG8-l++iO3a~6ZB3D}SM`nOu|ot*QQ zp96Gwm*qQ-QSsd+lST*BT|HzxsM)ivl8?TOkiHG0=2{dA29~mDqMsc7!YZ27r@Nl_ zUnY7#ml^3s#ECyC?S0-ZJM-}@csM6t!kf2?IH&woc5KrLekGK{OpX-e$GH0X@ zbXSHztV0Pcz=|P8z;jQMaFFM;(ld}0&4`Vz+?MrYNAa72Dh7eLuWH5n!^T)^QC>t5 zTJK>?KbAW`qV9M(8AJsk%O?qWcBPw&ztay!OW-EAY-qvZ@7QmrDx}!iI^)D$AX0HM zN-CeaJGu>u?2~tKQ<(|($Z;Ky;MIhst;IaH5 zE8pwfu5HT4C2nj(>KP7wbED06vn(I#`*IZLcUPr#Y1SYD7bhC7GHnv8Tl$iuOSCk! zw9V^THG+yqc~OXrncAlfnMCDbi)hbh+R52oFzAlpJK~e7Titg_Nsi~dy?xIU@Z(c% zOH2Tegj|)^TZejho%l<30LR@s4N$$`n!rQ6g?1zshE?>{wv6k%?Fq`5@Y03ZCn-WG zHEhhYaf@UT=a6l!EW(%v6qV9JZp}o6@!NG12BGHwPMEk$V?gEYrQU-+;X;imn8*X4 zMgm%=sgZ$UWDSw;r2%E#u^h30S|Lvoa{qS#HKmxMziNM&35cu5+j92~uFNa&jW>WG zxXe8rUw?A*AugJFJeApNdsUpNmLK>?W6#e8;vPA%*rPvLhzJQDzMlSMcEVEDi5Uwv{|c)nPng|$GK;Nz0TY;>BOM)w4ZgmXZjr)~V8qZ~vky zlf$?^^q|kUa->92u@C}l9$$KfJq7tY>K7uDqP5gkqj{g%VWQ|NxU>}aRQ9S+rvn0S z-(4*4iZuZ~q&pO#K=o6FS=K&clfG=S6vyU84(X@76W!l)ry?@k*2CRj|3lGvJ2rcR z3-9s#WXZXMNeHBBdnw|-N|gG;ErLd*Nl_hxr$$r)xk(Ag=Z+L5+k-YyaonU+ZU?cY z?S|9ec_cv(Ol>2J)H?d4?LWiQi(RbMJSnZjO3eqF)zcQ$r>LF$lrTJKTu|P+z%B_> zRp|uEDEj9gp^devp`1s$2`D4550MV<>5RdVe;kqL?}`YZBLssNsJ|2!dU6Jg6Q+vj z+meL_m}qZ#%OKnfbKrAN z&oBlhye>c!yHEB`0#=FcqoFR+J{4PUheu6Z4E~Fi3h?bk?RM8-lb_C`F*`}DOYs@} zALT6dO%4ga5=wN2c;xmKwD98YKla);`+Fq@_^SkC)CL0Oneo!`4%KE`*j>W1CYQ)} za__B?bZ^b}oZ`EzVa|w()Qw{swS^KjW~7MH-&eL7jscEDOd6Q~9&R^gs2YpG$}LT` z2ThB#GWAY}Kiv^tyaP^cp4Rn|`t>8^*9oc))AhsmEAGSiwj! z=laz5j2fd-2TExuGF%4UMZd=zb-}MBjUw)6`;kI&R5S8^1IR{ixqoJZN@JzI7J_2f zcb`psJ?$?@nB6SmC~?+fxICQF)FUW6wFe4p(f%E8fHkI|CTJ+d7VZJ|f6dJzW6e6! zu=`Q_H*U=n)edB7B;T$bMvy}YHa@0{8ua;BKHq)3tStmeZ+QgSldh_)pJtWU>TPo^ zhL4f$Z`-IsFN27QkphRViC-gx(V_Ip`ye@m;?wj&MfsRJ=i%#WHW<=MN4ic7?8z_@ zOk_oc_Q{AE@5MS5Iugy5YN{|$I0r5Y+dqIWiLuPRLj45CZw^@eeXFa*+u11@BW#1BH>a-XSaZvzc3reF&0F#fD4tVGk=sgC8p5so zm8R2DB)^>4_wq8433_0p)rStA=Z;!{dB{`O$B9di=PUg9Kwl~eKVGy=LIi(?I zXp6!}giP44k&;!QK%x*|9~rqkuV{!f?v4^|V-&=h9FL@4U+hf*fssV5gn=|97`0)& z`tx(KoyoF8`#^*t5V3r!_dL&Ok-sd;co_s^Ogo-&S#y~XxI7IO19Ih!Lt*s|+d*j=#>xyz?tpUjvtjwHeIV%7tfu+*8SnuP|jGh)B@X|nCu3gLZ zu*!@;S`k(&oU!I=m^&B>EW8_i?fkp7OWg{ekH<;!^8S{Lk@MKs!CjHlq>Jbj2rXzI z?atQKsDW{jA}n&k0u8$>?Rcekp(?$jM!5}qgm7q@0rKBdj7BEdLYGG=$AHAyeWa0e zRQ=$P8mv*o>O$lqGXoFRRB3+k0!-kqfYa+?S+)II?_i0Uq6PR(Zsn3G8u*Z1!{8_n z;t<&csDb22C1k^~Th?edmIZs_{PLt337_m@N_oU)=A<5xz+N<=4?0MLZjNR#u=*DyzNrf`5c#+)2_xFi3X=*O?v?+H#*Mrs0cwT$j z=6gaOm6kvOggeioEQ?YFby@^7? zB0E?K(;)4NEymz^QP&!o43cH5xA|LQs2TP9vrj0+uch%Ud@6XMjl;%lb0&l+Og#*e z@F}c2{t^%J+|2mb>JL2x$p1z3^4~Eq()VDT*Mm4d0RaIr`WoWp)-zuw+nV+j)30Ja zsL;dIj6^CSYb@Z5*78;Qq92U(KgA}9z$T#wtg?5vVxps&DD*;zh=}m8{zXdbpI%0h zFN7UEJtJ(l0h9(!HU^mr)yKlCZCv30_u2o)^-w~If{|7WZ$rVKFD^X%X#Q4V_1`by zKVFfx2do@gSl20sW{IghU}C)a!u`4DU;5hr@&5nvg9zq40KWL9rluOactMQnQ_Jv| zRgZuDA~iC)KLsTF2c8s7XmIQCSNZ$@vvc&_kWW@f;DgQRCs$VTWQqMgILPJ3r~Lbh z^MA@S|NHHH1>L}CW@Lb7NJmdk?|=8jARM3c^mGCP%=ryZn!R8DV!rt&l8r~9A_@u- z*6`%4ET&-I45&Acuw(SYKR<*2eop^*MNJVTtHwUv*fR`3zY}ff1k~)*6$u0Y4flU^ z^*g9xU=1ljc`FM1QorJhvj61<{;&Um8V@oxF?pW+{ksxBMEt*h4zYP5;u|=W0l0<# zs{!B9**Sm*qo=2D0%)AhzCOk~|HCUq?faN9Dj|W*SA;qm#zT7hoeXOHs=VpJzkXEy z$*`FJL)1b7x*aGA$ETL*zkJYbUy!=*2Kk3qU`F>l_49)@?PBYp)Q9-n+y^LqMKW&d z2W;A<{Reu(J$(P=y?^~{G9Mn8;qJV;!X~l%j~AOw+{tZ>>+!j1Uqvt&$pG#t?wPu|i{uar3@3E^v^c)2;7T;2?Sg z$xy%Smz7PKpwfnwmv^+A9U9+vz;t}6GU}(s`5US6}<-7TPKo@&O4nCf1 zC%UK!d^`sDcurCHL(6inOE*vrR5W7Ja+Sp4`$Y{#g5k;&A9sd-XU6e;d>=eD6f#J+ zkqj&>vcVEv`Sc^R&p)|rB1p;J$s_=D@@6z|-v*6xcsf-QYXVgH1+zlb|L*4eV>T5T zp#hgp3{GCBaIO}%WaH=r)V@S`;ObFzRQ@q6T&eBY<_A%_ zW$hsdB2$Y09dw^>7z2c4(DUU9{Xbw;n@IbTUs;LSZ`MIy8AialNKb-21&5}VL}7vs z(GI~dHv!FH{~Qer^JuWsch_Of{kIl#-=FkKnFQ^lM&qe2P#)%Ro%KuS9RA>=Z9dPy4y z?^r-pzoEVC-#Td|f)1TOT)llcr1+|}C^mph%34KHVTNu9J4emr(<4?h$ zKPUc#F^UB!NU!TJe#^?&SkF`s=BTs!hFc2wK0W}1k`LhN{?$|Mu)dg0NR9HqyYOY< zruB4I%JOQU+RngarCU#uii!%$lh?1FcN6!tNCIR7)7J{in60hJ!P4hTd%rc!Mz87= z02MObXCg)z-5%rwBi0c#MaJ_ATq*Vc_N#br> zt9iE^-5RG>BPT(&mycDahJ!Vqs=kQZMBTO;Hs{YS*-m+=a;|Y%q&*=MYHEV0lkTP) zA+)N}fHgLZUa(0h+`b6n(7QdJo+2lMrL+b zlP;+1(s-K3%qI-)b*1k^Mz(HCJ4bAjQUnX%OpPR{j<_U}nS z3GMp1FXTO`vN8LZdyPX6Csvh}8%mOJQ;%%UCms#jOYns+NuL+Jo+{zw;Y|vnE8^}CGq<6ipmqR1^gPYJQ);m9#pWc6mENd8TQ(TLIA-s@&bSwO!c z>6+W%#qLWDC$rAr&LfRSv2%%Aj2y9o{u4mg-?NTm+e~f~!74+Xy6%9o9A5t9OSZSG`%r z!s~U%xEB{w>}2LNrRESuI8&hE;}B zqo(UueKY*sEr^J4M=t&D(*cHH^0yoM*!0qV5YrvorF`cucdFi@8n^X{PHi}`Rf9|U zx}%t|?yGB0#3%Q*S#tKP#&3ixRU~>i-VslcY0Q$0-JdsnJkRk`dU5f3jB9W=e_=QZ8$#aw&GQ{%`Dnz73@6}BzDtJ0Fg;+AR(rivK{E6JYN>siN!+N)Lm z>gljdO2U`%kIXyZTGf`40glOy3jF2oxfJ-HM{L;oGa3y62fSd$PAkuYIasr<3&9B+x_PnyZ54u$VA{U%QvmrTVeW=x|vWiDTu9_~qtYYf`!- z58^X|#(0v9j54JMo#Nrur)g#x-5>jYqQ_P(4q~me3Ke0fm^D0-+HsvP+ACkfA)|ha zc7*GF?9MRA)yPYt!w?$#AV#zOVZ+qjY_D^nd)Z<3r@4KK*-G=<({0^-C+9N01W|Oa zNAm7E-afQzI6i=Ub)5M=^_}xqxMW6K{Y1M z#?JnpE|Q&TS{~)!RfYAB;ODlLY)c=-+j#r7vxgZs z7E$j7WIYHvIq3g(w&8fGu+G{Nl#si2O7%~+F(MlnBJD_Qflg2>w+mgBO)G$lCCAgu z?+_`*9Y%tdjj>MHV9l#{LVf6%_Yw^)9k%_bO!sy#iz&atP572vjVBETB3Q0QQzL+Q zLZ-yDh?i874~_JIgk2{~pZcb7_5R(Dx@oTk*Y$w4ZVN^VeM1VcjSOabjYOv{lMZhL z{+JaLNt|#!3UoI24%@k_o?zuIk4Ry}jZ&E@4xu+c8$-@Vuk zbuFc6@Su)Y2s{zI0ZHZdhxY^SO#PYQ(v=iL2dn+;u+^jMg)e;t3Hd0#G#XkZ9*EwA z<$C`1=uIp*Hn~R=x~iPwJ!Z33zOImC=XP1=UA-Kjekbc_tyNfTWKui(K(zhiH7!m5@AAx>iTjgITs{^pv*pM`@jQY zPV^N)Ola+U(k#V%R%~DH-55)0Ec@PP@z&vpE(rJIM@63ALfx3`F)vE?653|8U?h$j zcrf|*>w0{dSI0)^vDH-0?}X5&+qXF`#-&WLP>U|c^=4M8Svg8V{nzvp4+6t#b`392 zCt2BJmLhgi)`lF(oiU*SO#xvMQVnI13vB#KiuL=DgOGEd+xnBL-IVt2Rhf#n)m`IX zrDC)`y~91;MGNsrdGPtEn9s#UXyJw#xtXAgkgd?10XeCA_t9Ya5l-*oSt#~c#8si* z4v~&g3O;l!d?Zoj@@w91${y*T4cyl^j8A`ZNL?nCT95J>!5$F8dH`(MtIiMfwq+gw zcQTkPid+Ti+GXEwc5il_^s)Y%r2I~K#1LQX(hoyr<@fACHpwqc&)&n0dH>LUV?=Hi z5zwSVmWpEf+Ng?ALfrRh%O8$Xp}FLewpqiT+zSZEEbV`Pu)FZfohkWv?YI?ECi*_! z$!KOa($1?in*{?ZtoNwgl;xpt_<6{x ze~DJQo#1gAmxJvT66c^@&8*8R7{;mk*R}BX@mvpO#Bo{Ye$mBoj`z3=Vs$?1O0v#sTJ^~q}Dg%;sAzv$2STKw9n zDp_l%6MbK6v`d@0ZD!=@VEz6*nZsy7?(N5Kz-YUMhY~ffjJWr z?3n8*W9|fYJlGF`73#CLm%E+cx}N-|ifO((u-$lBw)72OPfWt)ESbg-AyNxbjqgT( z@1{CF=v>psY{Lkn&%miQ=U$Mc$Y2-F&|uwfzp%pbDFg+-qv48<9Amk}vv|2UfwG?| zEuy6}3jCk6Rxh9+LG^dAn=RlR8C4~O?&2UFfR-DZyt1QH`JH)a4<(~MCd1jJ_-=VhdeB!3Ocev(mE!gj5XKc&mTV&cM%~W^xObqQVH@9e9Ju9~${LPH=pHz!}7c6wuSoz4>&1qwfFjDx%{O`9M$&Kni6p`l5 zcBK?M&zrjoJ1J!3f`i+AZk9JR@7beC&jX-hx|e;ByN4q^*vyDKg=dRR-N(D;#AZBbs z6%s;<@l5nQPRra%gxU{3+$*S>&c{4;pAmkvR~y>wIBpyab~Zc1-vWrBK#^(;h~~I< zzP2RwL-~(483w?u_K=vCv*0tw_~)k?L&K&ghfBE9nGrQ=;{sfI8k+r?uzTFrA7(QX zv)@EA>N*tn6ruXWvaU6G$wY4vpPr)1#0iMj_#1js&@U&Z)E~lPYjcRpS#{Dl9_x6V zK6x#Gi_zS(ujnO*;o;2Ax+kf>KDA4}ogCN7}LdzoSY)x2RZVn{r=Nj3pdhOkZqtdSG5 z_vT}KSbfznptYYEyy#m%-Is_CHJtD8dkVButm*QVc7ddS{&?{UYiS9}AfNSEa=lQ2 zCaRD0`)ZFLyOSZWY5+koamj^*VTfS`{lS}SJ;u%Gp*uT$*c)RXw_ldS9fd_}jP5{W zO~arc?>F5;!0V%9Q)97^Tf%Nof!b-Oxv~icR;6}o#2a*4Ye`@tJnfC)$PuC-Hx|(&@zSX)KP-8O6^hQCs5~j#U{F1ZOvdH9t}k7iO>%GZ^Og zSm|=iexQBv)w+qEB%Tp2D>k0(z3=DUrW$F{PJ}*;=YOgE5}^*%r6kp}9rYbo5@Hjo#$jm5q^HN0}3_Cy zoceI0-ynDM=_!AyioUsnx0fs$6156$lABS|9?gP~(Y3*kI$WWQog~w~P-4S6Iu8S#%CLpSF=zX2fP&;e#}@>^c|Dw8lbds890sJ6ZPrgH>UjrPX>q zISeH4&R|&SoC)SYtukwpp}>8(18D17m0rGqda;p#IP` z&v>k`qZ10Gb@Q3F7xs#hHGmsd<20eML*Z_J*Ot0#>U{@KsQbMgTlBDN`7e(@X>ag0 zv2EG1#=t}l+?ggFYGgcbS4hR*3-dJ9dE6Im5VArNUi<6{v5h$6+)?vudW-XmKqyTD z#plh{g{-jg!rj-I6jQ(4r7D}5xH_+_Ykwou&n8N=h8UEOo7MliSfTU;qY(+u`+5NI zc0&$}+4PX+8-0<1q|52~7cx|z=X9@7!5h`%MRHJl@Lo~Z5<`@rrCVYG4OkJR5q$gW z7H2QAj|tF$Mc`%aSTHlF}YV!>wP_+V%PlRDYxDBVJ7`Psw-(r;zsh( z6mW$Jl1wL8{s8ibqa*IQm~|P6a)$}bnz%$MmYnVpSxs~iqwp>wXcp1G1S7fIsu~#) zd%W#5c+iOs(TIqh<&&s)S(t4dc)NFKAuHg9`p0k9U4@bOFk+MDseaz68>9UF>xBR4 ziPx+o-BAH8udd|HW1VPTQwMbB*wUzB!|`wvuKnquNLgh1us$zif%Xm8u+nSQ}Ung=s<(R5}wu*R!s=%CVz`xzD*McZT|aNpKkJ6!~~ggXAa`r^3^%?7;`1 zNhXeeMC0dT+on3He4rk)O17RO@337Q8CJFMdYk>}<`0dPs)@qrDum%w%3HMOAhGdT zzDuqsl6%fo7@)sdZT0y|uCt3j64>ZEjbK;re3og&7^qGHtdj+FxAPgq=1h3a_Ok@B zF{`=qdsAiCRdUu1Z)(|zfk=7yQzVP%x?;lxSpiNM&eo)4FW=JRvEg(k%>k}P@krs7 zFR+tAR;kXhIS-EZ;|=yPT~{raq&Q#FR~sc99hv$b>ZZIx4m-o5>;l*1PoC~5TPILq zS<>{RN$rF_hkjYMujzZTeN0T$+nK;d{2o%^({rPm8LA4IespZ@x;cZpl0_-iAx(c+ zz1AdUGRvs{i-Rk!+2El}$ZD7f<=AE%zgVwvMwnp2O>k*h9P7$!qi=5wd+M%ViMz})yj`^OwyLCiT9w+xL+@xxL(jWpx`ceXnO%)p*m-xlv!MLv#ni4R(~wy`fW)z} zm(2M#d3lly}#-F=F2&(BvkJjlQyhB z@jIyfb|$#8GA7o*$OF9D0=rY$0}Ct_mOo@ZKQew%wTXh0TUj_MCUP!I)|d6T0q;IS z$iyJ6rJuG^e7NfI&D68$(p6G&X#Xu6O_j$?OwH}Map*|k(*oA5<6Rd`(`I>}*Q2fv z%MzHTfDSA%;lf4pf+X8344HIID(jrNxl%R~gqLG;*vhvqohQ?zI9UN{r+(aLE;POY zv7ohC9NHUucGNYOxpXGly6U+Uiy4PvhCJMm%&pVA3;pRtJwZDc z%?_mZ%Um+#glyEyE~d?IRVoxLt$kvcA%FfhXW@%9{k=K>6yL+zltA@?SfPR(X57WxkS z)xeZV6U!bf+i!Zg0^vb;_>I!mRfoxFx6UWqe z;S0=!!Mi&$H_?;h*f;BXU7>hHHgUDMoJUvVfdel$(tK;@&@%HAN=Zy~B&rvVjjlZr zafwL7Wf&x4W^Ph+d%Vl@$jiqAV*$BkyJ!mm>|BZhE)`p3;(U6s@=MyUgkyiOLK1TT z1gAzn8$wK~SXkxZ@_CKJ{%X%Mum};9U2a~m#?3U={xT+RKprIr%kmtTmd)dNW5nVjf$Lt;FHh2y zKAy{0^bCSiv%?3jJa-m#zC6x6vBN$47;=+BZHO~QQLUW)d9YbyZyMve@G+f*>FJU__;yzTtoZ47#`@~l#2X-VaGc_y9p94UE#&N_i% zf=wfK{6v;EJzB~{2ydg`Kg4=Gr^g+?ZjKHW zc~{VQQbz5Uqh!57pQlubx#baBW0Rm|8ss_~Vyu!tD>XFfKIuZrl z4+RBxitynVQx!HziM>g}4fC=x$-(~6_m_S3zt`95_ni{#YGl5hi83w3upjButG&sK zpc<_D+8C#?dZnVWRWKD(`91mL2Ek=dC8=mMaICz~YO&-e+x129!HTWVB!}90zqZyl zqZTF0^kLe%?p}#sR5osx9hBs+9KW=|KQyUa5c3K3X?(prU$3C+#3!GJhR>&>M9J@@ zGwNMD@O;4Hg%2`~%Fr_|z{t69X6UwCL3wK1b-V6)@VCMjJ1I`&XXoEVM8eG{(tHWj zV^v{|re`HDA@ujuC^Eqwt_MsNRij_%RJ{USN zLi$ocf-_N-dS>((tK|3UR-YD<_HkgGh-7di64a zVWj!Feo9#E!wgY_B-x&}7caTrWJRnyPom;=x7R*Zx=wD7&eyIfI@^J3+Q(&0AE>l| z@GT=p=qj$%W=e%JTSs+Qh1%JS?wv%+lkU~7jsY7!Yj`5`BEGOKJlD9HJ;*6p3w8?Al5N4!eui0y?~B}IJsvH?N=l#_>KUMEKr8HI2oujmbIXN)n3G|zayG3JEPZT z@z?67N+NVpdm7Ls&AYO-aI%he6353nCCTEg`=919yLxj}5ps7AB7}7i8zbEw(Gw+R zfPnZizHbLZz~{|uZB-IF9MCPbQ9koKTlW|ND}3*3B8ZQP2Wb7H{Lqykmn(yDSmS}c z_*YDIC|K?7s%UR=y`W>4o;wy^yW{piyY2mAR3E1t*5JCmsBRpAQa8sA>2?dl)o9y& z9j~q5rhLp+&1Kgq?-Vz3qGoXv@OL=ZcR9Uh+z%-BF@?A-Ps4~0CU8wSsSNp*T+(aA za|&zNh~iw zWO6VwT9X)QADMD^3SasciFtjUHP6rh9%OV5H+k!VW#PCT_jvV5!e~EF-9)z~AR-A5 zuNwgOtkqWIxQ~~Mbb6O=*{Zly^jox9W2xIO#9~>u77Z1pWT8sWbEnQ2*4W`(jlRC^ zAJ)|4lmaeFaLes;>zXikJ_7Jvzi$ig#d^gxsHMBhbzJt%+&br?{6e>46=W?~7S*L^ zn(=;-LQFZ0+8=780CS?Q*?r+4TIfNXaFU#wg53JjgVmx-4sP#nx(f0yS92cMRjHrJ z^HX~Th+xA~VzA8CCGm8IE&H1p`!)PR*I9lTms@IWkG#s3k$T;#t_e>;^|8-X{9s?S zmgdy*sajW$8OWu z(O{IDLO^&g1e9{_oATSLRN*^&)WO5e4@{*dSJvFpemHi%+5)~W>mfvcOSje|o!tmzv(7J_W8Bl82Uu-P?w_--Q4+9w!4JeM zQGN8*7+R~IMcqPEx4(1%kyr~ox*LA}@Hnd3I01s_<5*CA&f0=Ui=c&3n^vWl&`iqL z0<@*4tyG*sW1pkf&1!0y^jRyOwW7&X zT2%V0tdYlTxDStqRGVMV&ZJMjO+UJvI>S!l!&!iH)@6%$>9$=2w}5Q7f$nBVj@MUl zvZKVp6O`_a7a@>ggTdN;Su#mPHNh7cq2F5gnit>z|%y zE7UL#0DU8m#ixUYv6l4aMPTiXw36@8RX#ub6U5TvCqsJ|1Hr&pj_Z<`w`TtVE-WHE zhdID(^nUctO#(YH=4rfKiGWl^z@^C!d?C6+r4(D+{ z{&QcdE>uFOKt;g}e$sM8nY}PwbXk!wSXs7fXj2mCcqFdoe7CUA$zAOEX>ic>O70ou zG%-hpKPGY?)*Z`*#If?}gFW~?92Zv|7;#M^96&&b{7a}|xOeU`wckERdJw_ELu1Wq zXWwD*;Rw^P{%2x^bo$2EyfMGvv@|#PJ9lxEouVj)!Afb-R^w25WQYyvqikYpU`O+C8a9!|!j2 z@mRDD&OFN{Dlz4q3@Sp!@v~Pu6Y{rh@Gl|t*FfjF9?904(ZW4ix`2gVPcO{|rUr$rIO$g5ZzIK>@S^Qd7|;E3N4}VEI#f>U%RiCO)$OwfO*P}Qv1RM1F*!o;p+%Ra zE6joXj|9*QkKx^R>}NW!5wh?W?>w_X|5W`{@5$+K^DcP%)9;DWVTV+FV(H$(4|oe2 z6!eF_KhU=Q%s0A{I}G|yR%#o+EEi9+^_Oh$fgc}m)T?-25RbH@ZJ6e(r2eRv;R%BC zBOB?-P_$b$5dqk18(zrW{fsH!{Ut@=*d31ZR{L=TKM?uznnWBEL1G;kB#osT?daRu zPY(DS;Otu$m$=zudDwfwY#9K)hUatawa;s&8!bt73RE{~F=WR0PG4Nye?Dez>fxDq z7IFmo@mPOCKNPIIS`6Y2hJzU^@kQjh@9pWs!1~FTAzJnuZvD?JNdST{-+xm>-!X>h zXOcz*#d*Xo+B4{+lWgu%s12u-QQL6(f%0`ABG$i*&BK|i*)8}}u10oNJJ%stKRvgo zhg*ecIVq{Z(ZmGk7=Aq3Vm$#KtQVAd^EJDEQvy5s_{YvmBcXF6Fyj)+lLbm7+C|Kf z&0nDGTr`tZ1U1im_|fNW^KdCzFNEW-v-offd`>a}VDs>5p=o4oz5}_981}VL*#Ua` z!cRM_%b$KC2f{$=rB!4Uz#cekR6dT!9*FmQAyVk1>~Uq>K? z#J18EGc;t4G!J?fP~!?;eAjCux!LbYhk&e_fVbLKP`EVztIT6Q{Vs1zYevT5G7cg% z5dpbJxLxzsO8F|N*Ijvvc$kY#wQSJV@dp{+Y?X^<(E_Vnh8Gss&(km@iRuoXUW&AM zXJ2Qgm3KBgonz!_+MYbfR4^+O72JD>#q zbkyW94H0fTeFH?$;&^3C>A=q*RinrPibYDj^HqiyP%v5`+~$$5m*!3rnnRAH0BDw1 ziiPhYqM={)P%Pe0gwOJ5x(7pGKEA=cO76>XM4}m%1}9xqKS#eu<{~F!Dl=62BQ8Tr zS~3u=R}W0GSR^c2s={tDC2LLeYj0w#3Gja+;aNY|Ln;cVnBfzoQ;(4)jL=u11ru56 z`gfU+m97V-Yc%`n8w)N#&~k+P=J#^vw;#SvQ?}O;$0%nCe#Ou4K&d!OP_P9ZUyFkg zGH#AlEX5WY3cfH4%^eA1IDT0q6{tzwU8xv^o~1^#mJ6pGiQz-H2+HpnihR7~7;Ud| z>0;#1ohcV$NJNqKriUL|DXT`~_Fkp0Ii)6ATg+-Xnhj4;a zSU1&!uOxj{SeuJ_cI)p(&c1|SyaTL*T*k5_0f6G@TgEge1G#6x26@T7e8 zHRw+!PEKRpW;3ZCXn1xrdJJQV3be$SCb%(^M`SyMP}D1JTXw+SC9fLrfql3e5S zG<;is7ig8NkJu4bqt+D9190%r!Evs~SwE9W=ncoIQd z#@Z|kWszi&cxZ6J8VxV?pO(-UEp6S=xKNyQ^3WTzU}-tEwF#+lB(tu$-~XR1fL~un z1OeG99F8z{pMEsPttwSITT?qOg{7fpKzNp*$ZJ0OPPWXcUg9DV2xMP~jhMw4hP)XN3gL`W|lQAk)y02f!pBgW_iQ z?Mzw;PP9gmUQhV|9hrGk6WSt}NM3`-3fWyw%joQ`T?)@+x0QF3 zA&hlF)UAbZ0-;93AC)fxRj~a-q~DuUp4=ihL;XV4^|ZDN1d!-!844VSgI{Z(rQeez zWfVborVMwV&m(EA1EK9BMC`j*;tBRQ84F}6@6l=Fp#HQFuFcN~@8Q$KD*&y6S8~YH zt%_TIP)jifU(}qA^4HE(g(Bb)e?#?+GoyW3ZV6l4tJ(P-;>dXoNWDONL8f|t*8M(; z&oT0Ek>)a&doQ@CCj+RFlvjOK_H}solgZXlC8(X^mDh>5S>DTe$A}Fa=8K`m7{|+e z-i(kQUMS$oP7=q5>N8OueU27s!|@pK_})zD_M$sO<|Ji$dHUf({(3}kANu|I$7K@f zCz5&YHogQoC$025jwI~5DJZ=4o3HH9p+b%3)}gM6U+=q~I1X)TAp<8FQ(jj(HUS)Ih_|+Y6-kx;{O78AGh!6@P8X?^jy8|^dA9%);+pc^m zi$MRG`+FIvLlPeNk2N)?WspBo3HcPw%4ifr;4#6RvwgIW2niao^;g2MxKGnBNecS# zF$^(+y+fQx{D(bv4{QK^uD|{|CO|8>CO<`%Y_$7wxjFG5WdSyuT(}*cQ=9du9>GtP{akus9 z^{%EJ8At4^mpLOAsR$H5!8Be4Y3L-adyUJWtc@1_^I!E z

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⪼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 z]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

U*Pu^t)kUB>k|I`7Rp_DuZ( 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�ES?5BlzsX;KACwgDds=jw2D!TbkKmXYyU8?9s0R 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∾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 Date: Sat, 8 Feb 2020 05:06:30 +0000 Subject: [PATCH 04/85] fix(deps): update dependency @cypress/browserify-preprocessor to v2.1.3 --- package-lock.json | 1602 +++++++++++++++++++++++++++++++++++++-------- package.json | 2 +- 2 files changed, 1324 insertions(+), 280 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2d336b377..dd3e69162 100644 --- a/package-lock.json +++ b/package-lock.json @@ -221,26 +221,192 @@ } }, "@babel/helper-create-class-features-plugin": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.4.4.tgz", - "integrity": "sha512-UbBHIa2qeAGgyiNR9RszVF7bUHEdgS4JAUNT8SiqrAN6YJVxlOxeLr5pBzb5kan302dejJ9nla4RyKcR1XT6XA==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.8.3.tgz", + "integrity": "sha512-qmp4pD7zeTxsv0JNecSBsEmG1ei2MqwJq4YQcK3ZWm/0t07QstWfvuV/vm3Qt5xNMFETn2SZqpMx2MQzbtq+KA==", + "requires": { + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-member-expression-to-functions": "^7.8.3", + "@babel/helper-optimise-call-expression": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "requires": { + "@babel/highlight": "^7.8.3" + } + }, + "@babel/helper-function-name": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", + "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", + "requires": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", + "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz", + "integrity": "sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ==", + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", + "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==" + }, + "@babel/helper-split-export-declaration": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", + "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==" + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.3.tgz", + "integrity": "sha512-Gcsm1OHCUr9o9TcJln57xhWHtdXbA2pgQ58S0Lxlks0WMGNXuki4+GLfX0p+L2ZkINUGZvfkz8rzoqJQSthI+Q==", "requires": { - "@babel/helper-function-name": "^7.1.0", - "@babel/helper-member-expression-to-functions": "^7.0.0", - "@babel/helper-optimise-call-expression": "^7.0.0", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-replace-supers": "^7.4.4", - "@babel/helper-split-export-declaration": "^7.4.4" + "@babel/helper-regex": "^7.8.3", + "regexpu-core": "^4.6.0" + }, + "dependencies": { + "@babel/helper-regex": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.8.3.tgz", + "integrity": "sha512-BWt0QtYv/cg/NecOAZMdcn/waj/5P26DR4mVLXfFtDokSR6fyuG0Pj+e2FqtSME+MqED1khnSMulkmGl8qWiUQ==", + "requires": { + "lodash": "^4.17.13" + } + } } }, "@babel/helper-define-map": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.4.4.tgz", - "integrity": "sha512-IX3Ln8gLhZpSuqHJSnTNBWGDE9kdkTEWl21A/K7PQ00tseBwbqCHTvNLHSBd9M0R5rER4h5Rsvj9vw0R5SieBg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.8.3.tgz", + "integrity": "sha512-PoeBYtxoZGtct3md6xZOCWPcKuMuk3IHhgxsRRNtnNShebf4C8YonTSblsK4tvDbm+eJAw2HAPOfCr+Q/YRG/g==", "requires": { - "@babel/helper-function-name": "^7.1.0", - "@babel/types": "^7.4.4", - "lodash": "^4.17.11" + "@babel/helper-function-name": "^7.8.3", + "@babel/types": "^7.8.3", + "lodash": "^4.17.13" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "requires": { + "@babel/highlight": "^7.8.3" + } + }, + "@babel/helper-function-name": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", + "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", + "requires": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", + "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==" + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-explode-assignable-expression": { @@ -279,11 +445,23 @@ } }, "@babel/helper-member-expression-to-functions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0.tgz", - "integrity": "sha512-avo+lm/QmZlv27Zsi0xEor2fKcqWG56D5ae9dzklpIaY7cQMK5N8VSpaNVPPagiqmy7LrEjK1IWdGMOqPu5csg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz", + "integrity": "sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA==", "requires": { - "@babel/types": "^7.0.0" + "@babel/types": "^7.8.3" + }, + "dependencies": { + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-module-imports": { @@ -311,6 +489,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz", "integrity": "sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g==", + "dev": true, "requires": { "@babel/types": "^7.0.0" } @@ -341,14 +520,120 @@ } }, "@babel/helper-replace-supers": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.4.4.tgz", - "integrity": "sha512-04xGEnd+s01nY1l15EuMS1rfKktNF+1CkKmHoErDppjAAZL+IUBZpzT748x262HF7fibaQPhbvWUl5HeSt1EXg==", - "requires": { - "@babel/helper-member-expression-to-functions": "^7.0.0", - "@babel/helper-optimise-call-expression": "^7.0.0", - "@babel/traverse": "^7.4.4", - "@babel/types": "^7.4.4" + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.3.tgz", + "integrity": "sha512-xOUssL6ho41U81etpLoT2RTdvdus4VfHamCuAm4AHxGr+0it5fnwoVdwUJ7GFEqCsQYzJUhcbsN9wB9apcYKFA==", + "requires": { + "@babel/helper-member-expression-to-functions": "^7.8.3", + "@babel/helper-optimise-call-expression": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "requires": { + "@babel/highlight": "^7.8.3" + } + }, + "@babel/generator": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", + "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "requires": { + "@babel/types": "^7.8.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", + "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", + "requires": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", + "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz", + "integrity": "sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ==", + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", + "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==" + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/traverse": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", + "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.4", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.4", + "@babel/types": "^7.8.3", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-simple-access": { @@ -380,13 +665,111 @@ } }, "@babel/helpers": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.4.4.tgz", - "integrity": "sha512-igczbR/0SeuPR8RFfC7tGrbdTbFL3QTvH6D+Z6zNxnTe//GyqmtHmDkzrqDmyZ3eSwPqB/LhyKoU5DXsp+Vp2A==", + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.8.4.tgz", + "integrity": "sha512-VPbe7wcQ4chu4TDQjimHv/5tj73qz88o12EPkO2ValS2QiQS/1F2SsjyIGNnAD0vF/nZS6Cf9i+vW6HIlnaR8w==", "requires": { - "@babel/template": "^7.4.4", - "@babel/traverse": "^7.4.4", - "@babel/types": "^7.4.4" + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.4", + "@babel/types": "^7.8.3" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "requires": { + "@babel/highlight": "^7.8.3" + } + }, + "@babel/generator": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", + "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "requires": { + "@babel/types": "^7.8.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", + "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", + "requires": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", + "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", + "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==" + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/traverse": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", + "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.4", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.4", + "@babel/types": "^7.8.3", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/highlight": { @@ -462,13 +845,19 @@ } }, "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.4.4.tgz", - "integrity": "sha512-j1NwnOqMG9mFUOH58JTFsA/+ZYzQLUZ/drqWUqxCYLGeu2JFZL8YrNC9hBxKmWtAuOCHPcRpgv7fhap09Fb4kA==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.3.tgz", + "integrity": "sha512-1/1/rEZv2XGweRwwSkLpY+s60za9OZ1hJs4YDqFHCw0kYWYwL5IFljVY1MYBL+weT1l9pokDO2uhSTLVxzoHkQ==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-regex": "^7.4.4", - "regexpu-core": "^4.5.4" + "@babel/helper-create-regexp-features-plugin": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", + "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==" + } } }, "@babel/plugin-syntax-async-generators": { @@ -538,13 +927,155 @@ } }, "@babel/plugin-transform-async-to-generator": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.4.4.tgz", - "integrity": "sha512-YiqW2Li8TXmzgbXw+STsSqPBPFnGviiaSp6CYOq55X8GQ2SGVLrXB6pNid8HkqkZAzOH6knbai3snhP7v0fNwA==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.8.3.tgz", + "integrity": "sha512-imt9tFLD9ogt56Dd5CI/6XgpukMwd/fLGSrix2httihVe7LOGVPhyhMh1BU5kDM7iHD08i8uUtmV2sWaBFlHVQ==", "requires": { - "@babel/helper-module-imports": "^7.0.0", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-remap-async-to-generator": "^7.1.0" + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-remap-async-to-generator": "^7.8.3" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "requires": { + "@babel/highlight": "^7.8.3" + } + }, + "@babel/generator": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", + "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "requires": { + "@babel/types": "^7.8.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz", + "integrity": "sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw==", + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-function-name": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", + "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", + "requires": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", + "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-module-imports": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz", + "integrity": "sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg==", + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", + "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==" + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.8.3.tgz", + "integrity": "sha512-kgwDmw4fCg7AVgS4DukQR/roGp+jP+XluJE5hsRZwxCYGg+Rv9wSGErDWhlI90FODdYfd4xG4AQRiMDjjN0GzA==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/helper-wrap-function": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", + "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-wrap-function": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz", + "integrity": "sha512-LACJrbUET9cQDzb6kG7EeD7+7doC3JNvUgTEQOx2qaO1fKlzE/Bf05qs9w1oXQMmXlPO65lC3Tq9S6gZpTErEQ==", + "requires": { + "@babel/helper-function-name": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==" + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/traverse": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", + "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.4", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.4", + "@babel/types": "^7.8.3", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/plugin-transform-block-scoped-functions": { @@ -556,27 +1087,126 @@ } }, "@babel/plugin-transform-block-scoping": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.4.4.tgz", - "integrity": "sha512-jkTUyWZcTrwxu5DD4rWz6rDB5Cjdmgz6z7M7RLXOJyCUkFBawssDGcGh8M/0FTSB87avyJI1HsTwUXp9nKA1PA==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.8.3.tgz", + "integrity": "sha512-pGnYfm7RNRgYRi7bids5bHluENHqJhrV4bCZRwc5GamaWIIs07N4rZECcmJL6ZClwjDz1GbdMZFtPs27hTB06w==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "lodash": "^4.17.11" + "@babel/helper-plugin-utils": "^7.8.3", + "lodash": "^4.17.13" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", + "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==" + } } }, "@babel/plugin-transform-classes": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.4.4.tgz", - "integrity": "sha512-/e44eFLImEGIpL9qPxSRat13I5QNRgBLu2hOQJCF7VLy/otSM/sypV1+XaIw5+502RX/+6YaSAPmldk+nhHDPw==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.0.0", - "@babel/helper-define-map": "^7.4.4", - "@babel/helper-function-name": "^7.1.0", - "@babel/helper-optimise-call-expression": "^7.0.0", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-replace-supers": "^7.4.4", - "@babel/helper-split-export-declaration": "^7.4.4", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.8.3.tgz", + "integrity": "sha512-SjT0cwFJ+7Rbr1vQsvphAHwUHvSUPmMjMU/0P59G8U2HLFqSa082JO7zkbDNWs9kH/IUqpHI6xWNesGf8haF1w==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/helper-define-map": "^7.8.3", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-optimise-call-expression": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", "globals": "^11.1.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "requires": { + "@babel/highlight": "^7.8.3" + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz", + "integrity": "sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw==", + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-function-name": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", + "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", + "requires": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", + "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz", + "integrity": "sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ==", + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", + "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==" + }, + "@babel/helper-split-export-declaration": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", + "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==" + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/plugin-transform-computed-properties": { @@ -588,29 +1218,49 @@ } }, "@babel/plugin-transform-destructuring": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.4.4.tgz", - "integrity": "sha512-/aOx+nW0w8eHiEHm+BTERB2oJn5D127iye/SUQl7NjHy0lf+j7h4MKMMSOwdazGq9OxgiNADncE+SRJkCxjZpQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.8.3.tgz", + "integrity": "sha512-H4X646nCkiEcHZUZaRkhE2XVsoz0J/1x3VVujnn96pSoGCtKPA99ZZA+va+gK+92Zycd6OBKCD8tDb/731bhgQ==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", + "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==" + } } }, "@babel/plugin-transform-dotall-regex": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.4.4.tgz", - "integrity": "sha512-P05YEhRc2h53lZDjRPk/OektxCVevFzZs2Gfjd545Wde3k+yFDbXORgl2e0xpbq8mLcKJ7Idss4fAg0zORN/zg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz", + "integrity": "sha512-kLs1j9Nn4MQoBYdRXH6AeaXMbEJFaFu/v1nQkvib6QzTj8MZI5OQzqmD83/2jEM1z0DLilra5aWO5YpyC0ALIw==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-regex": "^7.4.4", - "regexpu-core": "^4.5.4" + "@babel/helper-create-regexp-features-plugin": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", + "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==" + } } }, "@babel/plugin-transform-duplicate-keys": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.2.0.tgz", - "integrity": "sha512-q+yuxW4DsTjNceUiTzK0L+AfQ0zD9rWaTLiUqHA8p0gxx7lu1EylenfzjeIWNkPy6e/0VG/Wjw9uf9LueQwLOw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.8.3.tgz", + "integrity": "sha512-s8dHiBUbcbSgipS4SMFuWGqCvyge5V2ZeAWzR6INTVC3Ltjig/Vw1G2Gztv0vU/hRG9X8IvKvYdoksnUfgXOEQ==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", + "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==" + } } }, "@babel/plugin-transform-exponentiation-operator": { @@ -666,12 +1316,101 @@ } }, "@babel/plugin-transform-modules-amd": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.2.0.tgz", - "integrity": "sha512-mK2A8ucqz1qhrdqjS9VMIDfIvvT2thrEsIQzbaTdc5QFzhDjQv2CkJJ5f6BXIkgbmaoax3zBr2RyvV/8zeoUZw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.8.3.tgz", + "integrity": "sha512-MadJiU3rLKclzT5kBH4yxdry96odTUwuqrZM+GllFI/VhxfPz+k9MshJM+MwhfkCdxxclSbSBbUGciBngR+kEQ==", "requires": { - "@babel/helper-module-transforms": "^7.1.0", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "babel-plugin-dynamic-import-node": "^2.3.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "requires": { + "@babel/highlight": "^7.8.3" + } + }, + "@babel/helper-module-imports": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz", + "integrity": "sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg==", + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-module-transforms": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.8.3.tgz", + "integrity": "sha512-C7NG6B7vfBa/pwCOshpMbOYUmrYQDfCpVL/JCRu0ek8B5p8kue1+BCXpg2vOYs7w5ACB9GTOBYQ5U6NwrMg+3Q==", + "requires": { + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-simple-access": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3", + "lodash": "^4.17.13" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", + "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==" + }, + "@babel/helper-simple-access": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz", + "integrity": "sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw==", + "requires": { + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", + "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==" + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/plugin-transform-modules-commonjs": { @@ -687,12 +1426,110 @@ } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.4.4.tgz", - "integrity": "sha512-MSiModfILQc3/oqnG7NrP1jHaSPryO6tA2kOMmAQApz5dayPxWiHqmq4sWH2xF5LcQK56LlbKByCd8Aah/OIkQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.8.3.tgz", + "integrity": "sha512-8cESMCJjmArMYqa9AO5YuMEkE4ds28tMpZcGZB/jl3n0ZzlsxOAi3mC+SKypTfT8gjMupCnd3YiXCkMjj2jfOg==", "requires": { - "@babel/helper-hoist-variables": "^7.4.4", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-hoist-variables": "^7.8.3", + "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "babel-plugin-dynamic-import-node": "^2.3.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "requires": { + "@babel/highlight": "^7.8.3" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.8.3.tgz", + "integrity": "sha512-ky1JLOjcDUtSc+xkt0xhYff7Z6ILTAHKmZLHPxAhOP0Nd77O+3nCsd6uSVYur6nJnCI029CrNbYlc0LoPfAPQg==", + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-module-imports": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz", + "integrity": "sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg==", + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-module-transforms": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.8.3.tgz", + "integrity": "sha512-C7NG6B7vfBa/pwCOshpMbOYUmrYQDfCpVL/JCRu0ek8B5p8kue1+BCXpg2vOYs7w5ACB9GTOBYQ5U6NwrMg+3Q==", + "requires": { + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-simple-access": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3", + "lodash": "^4.17.13" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", + "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==" + }, + "@babel/helper-simple-access": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz", + "integrity": "sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw==", + "requires": { + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", + "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==" + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/plugin-transform-modules-umd": { @@ -708,7 +1545,6 @@ "version": "7.6.2", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.6.2.tgz", "integrity": "sha512-xBdB+XOs+lgbZc2/4F5BVDVcDNS4tcSKQc96KmlqLEAwz6tpYPEvPdmDfvVG0Ssn8lAhronaRs6Z6KSexIpK5g==", - "dev": true, "requires": { "regexpu-core": "^4.6.0" }, @@ -717,7 +1553,6 @@ "version": "4.6.0", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.6.0.tgz", "integrity": "sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg==", - "dev": true, "requires": { "regenerate": "^1.4.0", "regenerate-unicode-properties": "^8.1.0", @@ -738,12 +1573,19 @@ } }, "@babel/plugin-transform-object-super": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.2.0.tgz", - "integrity": "sha512-VMyhPYZISFZAqAPVkiYb7dUe2AsVi2/wCT5+wZdsNO31FojQJa9ns40hzZ6U9f50Jlq4w6qwzdBB2uwqZ00ebg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.8.3.tgz", + "integrity": "sha512-57FXk+gItG/GejofIyLIgBKTas4+pEU47IXKDBWFTxdPd7F80H8zybyAY7UoblVfBhBGs2EKM+bJUu2+iUYPDQ==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-replace-supers": "^7.1.0" + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.3" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", + "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==" + } } }, "@babel/plugin-transform-parameters": { @@ -765,11 +1607,18 @@ } }, "@babel/plugin-transform-react-display-name": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.2.0.tgz", - "integrity": "sha512-Htf/tPa5haZvRMiNSQSFifK12gtr/8vwfr+A9y69uF0QcU77AVu4K7MiHEkTxF7lQoHOL0F9ErqgfNEAKgXj7A==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.8.3.tgz", + "integrity": "sha512-3Jy/PCw8Fe6uBKtEgz3M82ljt+lTg+xJaM4og+eyu83qLT87ZUSckn0wy7r31jflURWLO83TW6Ylf7lyXj3m5A==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", + "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==" + } } }, "@babel/plugin-transform-react-jsx": { @@ -783,28 +1632,57 @@ } }, "@babel/plugin-transform-react-jsx-self": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.2.0.tgz", - "integrity": "sha512-v6S5L/myicZEy+jr6ielB0OR8h+EH/1QFx/YJ7c7Ua+7lqsjj/vW6fD5FR9hB/6y7mGbfT4vAURn3xqBxsUcdg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.8.3.tgz", + "integrity": "sha512-01OT7s5oa0XTLf2I8XGsL8+KqV9lx3EZV+jxn/L2LQ97CGKila2YMroTkCEIE0HV/FF7CMSRsIAybopdN9NTdg==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-jsx": "^7.2.0" + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-jsx": "^7.8.3" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", + "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==" + }, + "@babel/plugin-syntax-jsx": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.8.3.tgz", + "integrity": "sha512-WxdW9xyLgBdefoo0Ynn3MRSkhe5tFVxxKNVdnZSh318WrG2e2jH+E9wd/++JsqcLJZPfz87njQJ8j2Upjm0M0A==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + } } }, "@babel/plugin-transform-react-jsx-source": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.2.0.tgz", - "integrity": "sha512-A32OkKTp4i5U6aE88GwwcuV4HAprUgHcTq0sSafLxjr6AW0QahrCRCjxogkbbcdtpbXkuTOlgpjophCxb6sh5g==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.8.3.tgz", + "integrity": "sha512-PLMgdMGuVDtRS/SzjNEQYUT8f4z1xb2BAT54vM1X5efkVuYBf5WyGUMbpmARcfq3NaglIwz08UVQK4HHHbC6ag==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-jsx": "^7.2.0" + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-jsx": "^7.8.3" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", + "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==" + }, + "@babel/plugin-syntax-jsx": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.8.3.tgz", + "integrity": "sha512-WxdW9xyLgBdefoo0Ynn3MRSkhe5tFVxxKNVdnZSh318WrG2e2jH+E9wd/++JsqcLJZPfz87njQJ8j2Upjm0M0A==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + } } }, "@babel/plugin-transform-regenerator": { "version": "7.4.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.4.5.tgz", "integrity": "sha512-gBKRh5qAaCWntnd09S8QC7r3auLCqq5DI6O0DlfoyDjslSBVqBibrMdsqO+Uhmx3+BlOmE/Kw1HFxmGbv0N9dA==", - "dev": true, "requires": { "regenerator-transform": "^0.14.0" } @@ -837,11 +1715,18 @@ } }, "@babel/plugin-transform-spread": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.2.2.tgz", - "integrity": "sha512-KWfky/58vubwtS0hLqEnrWJjsMGaOeSBn90Ezn5Jeg9Z8KKHmELbP1yGylMlm5N6TPKeY9A2+UaSYLdxahg01w==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.8.3.tgz", + "integrity": "sha512-CkuTU9mbmAoFOI1tklFWYYbzX5qCIZVXPVy0jpXgGwkplCndQAa58s2jr66fTeQnA64bDox0HL4U56CFYoyC7g==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", + "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==" + } } }, "@babel/plugin-transform-sticky-regex": { @@ -871,13 +1756,19 @@ } }, "@babel/plugin-transform-unicode-regex": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.4.4.tgz", - "integrity": "sha512-il+/XdNw01i93+M9J9u4T7/e/Ue/vWfNZE4IRUQjplu2Mqb/AFTDimkw2tdEdSH50wuQXZAbXSql0UphQke+vA==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.8.3.tgz", + "integrity": "sha512-+ufgJjYdmWfSQ+6NS9VGUR2ns8cjJjYbrbi11mZBTaWm+Fui/ncTLFF28Ei1okavY+xkojGr1eJxNsWYeA5aZw==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-regex": "^7.4.4", - "regexpu-core": "^4.5.4" + "@babel/helper-create-regexp-features-plugin": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", + "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==" + } } }, "@babel/preset-env": { @@ -1251,18 +2142,18 @@ } }, "@cypress/browserify-preprocessor": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@cypress/browserify-preprocessor/-/browserify-preprocessor-2.1.1.tgz", - "integrity": "sha512-S+0bzZbRsiFbrLkEygu5D0958z4ejio7hWxnO5MoSqD7SmZOmGRpjuZ9RaGcDmL6RWnklNjn8DkpP2s368qCKA==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@cypress/browserify-preprocessor/-/browserify-preprocessor-2.1.3.tgz", + "integrity": "sha512-vZskc/EKejnmdm4fMGB1Fm39WelsF4HJHeI5q8I0LvGnrdvxSiCbn27TbhCM5Enq6Fkinf3f7oiHS/m2OUgzdA==", "requires": { "@babel/core": "7.4.5", "@babel/plugin-proposal-class-properties": "7.3.0", "@babel/plugin-proposal-object-rest-spread": "7.3.2", + "@babel/plugin-transform-modules-commonjs": "7.8.3", "@babel/plugin-transform-runtime": "7.2.0", "@babel/preset-env": "7.4.5", "@babel/preset-react": "7.0.0", "@babel/runtime": "7.3.1", - "babel-plugin-add-module-exports": "1.0.0", "babelify": "10.0.0", "bluebird": "3.5.3", "browserify": "16.2.3", @@ -1295,10 +2186,202 @@ "source-map": "^0.5.0" } }, + "@babel/helper-function-name": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", + "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", + "requires": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "requires": { + "@babel/highlight": "^7.8.3" + } + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-get-function-arity": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", + "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", + "requires": { + "@babel/types": "^7.8.3" + }, + "dependencies": { + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-module-imports": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz", + "integrity": "sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg==", + "requires": { + "@babel/types": "^7.8.3" + }, + "dependencies": { + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-module-transforms": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.8.3.tgz", + "integrity": "sha512-C7NG6B7vfBa/pwCOshpMbOYUmrYQDfCpVL/JCRu0ek8B5p8kue1+BCXpg2vOYs7w5ACB9GTOBYQ5U6NwrMg+3Q==", + "requires": { + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-simple-access": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3", + "lodash": "^4.17.13" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "requires": { + "@babel/highlight": "^7.8.3" + } + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-simple-access": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz", + "integrity": "sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw==", + "requires": { + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "requires": { + "@babel/highlight": "^7.8.3" + } + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", + "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", + "requires": { + "@babel/types": "^7.8.3" + }, + "dependencies": { + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, "@babel/parser": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.5.5.tgz", - "integrity": "sha512-E5BN68cqR7dhKan1SfqgPGhQ178bkVKpXTPEXnFJBrEt8/DKRZlybmy+IgYLTeN7tp1R5Ccmbm2rBk17sHYU3g==" + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==" }, "@babel/plugin-proposal-object-rest-spread": { "version": "7.3.2", @@ -1310,29 +2393,21 @@ } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.4.4.tgz", - "integrity": "sha512-4sfBOJt58sEo9a2BQXnZq+Q3ZTSAUXyK3E30o36BOGnJ+tvJ6YSxF0PG6kERvbeISgProodWuI9UVG3/FMY6iw==", - "requires": { - "@babel/helper-module-transforms": "^7.4.4", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-simple-access": "^7.1.0" - } - }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.4.5.tgz", - "integrity": "sha512-z7+2IsWafTBbjNsOxU/Iv5CvTJlr5w4+HGu1HovKYTtgJ362f7kBcQglkfmlspKKZ3bgrbSGvLfNx++ZJgCWsg==", - "requires": { - "regexp-tree": "^0.1.6" - } - }, - "@babel/plugin-transform-regenerator": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.4.5.tgz", - "integrity": "sha512-gBKRh5qAaCWntnd09S8QC7r3auLCqq5DI6O0DlfoyDjslSBVqBibrMdsqO+Uhmx3+BlOmE/Kw1HFxmGbv0N9dA==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.8.3.tgz", + "integrity": "sha512-JpdMEfA15HZ/1gNuB9XEDlZM1h/gF/YOH7zaZzQu2xCFRfwc01NXBMHHSTT6hRjlXJJs5x/bfODM3LiCk94Sxg==", "requires": { - "regenerator-transform": "^0.14.0" + "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-simple-access": "^7.8.3", + "babel-plugin-dynamic-import-node": "^2.3.0" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", + "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==" + } } }, "@babel/preset-env": { @@ -1391,12 +2466,27 @@ }, "dependencies": { "@babel/plugin-proposal-object-rest-spread": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.4.4.tgz", - "integrity": "sha512-dMBG6cSPBbHeEBdFXeQ2QLc5gUpg4Vkaz8octD4aoW/ISO+jBOcsuxYL7bsb5WSu8RLP6boxrBIALEHgoHtO9g==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-8qvuPwU/xxUCt78HocNlv0mXXo0wdh9VT1R04WU8HGOfaOob26pF+9P5/lYjN/q7DHOX1bvX60hnhOvuQUJdbA==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-object-rest-spread": "^7.2.0" + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", + "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==" + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + } } } } @@ -1410,45 +2500,44 @@ } }, "@babel/traverse": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.5.5.tgz", - "integrity": "sha512-MqB0782whsfffYfSjH4TM+LMjrJnhCNEDMDIjeTpl+ASaUvxcjoiVCo/sM1GhS1pHOXYfWVCYneLjMckuUxDaQ==", + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", + "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", "requires": { - "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.5.5", - "@babel/helper-function-name": "^7.1.0", - "@babel/helper-split-export-declaration": "^7.4.4", - "@babel/parser": "^7.5.5", - "@babel/types": "^7.5.5", + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.4", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.4", + "@babel/types": "^7.8.3", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.13" }, "dependencies": { "@babel/code-frame": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", - "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", "requires": { - "@babel/highlight": "^7.0.0" + "@babel/highlight": "^7.8.3" } }, "@babel/generator": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.5.5.tgz", - "integrity": "sha512-ETI/4vyTSxTzGnU2c49XHv2zhExkv9JHLTwDAFz85kmcwuShvYG2H08FwgIguQf4JC75CBnXAUM5PqeF4fj0nQ==", + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", + "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", "requires": { - "@babel/types": "^7.5.5", + "@babel/types": "^7.8.3", "jsesc": "^2.5.1", "lodash": "^4.17.13", - "source-map": "^0.5.0", - "trim-right": "^1.0.1" + "source-map": "^0.5.0" } }, "@babel/types": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.5.5.tgz", - "integrity": "sha512-s63F9nJioLqOlW3UkyMd+BYhXt44YuaFm/VV0VwuteqjYwRrObkU7ra9pY4wAJR3oXi8hJrMcrcJdO/HH33vtw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", "requires": { "esutils": "^2.0.2", "lodash": "^4.17.13", @@ -1473,28 +2562,12 @@ } }, "json5": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz", - "integrity": "sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz", + "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==", "requires": { "minimist": "^1.2.0" } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "regenerator-transform": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.0.tgz", - "integrity": "sha512-rtOelq4Cawlbmq9xuMR5gdFmv7ku/sFoB7sRiywx7aq53bc52b4j6zvH7Te1Vt/X2YveDKnCGUbioieU7FEL3w==", - "requires": { - "private": "^0.1.6" - } } } }, @@ -2346,11 +3419,6 @@ "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", "dev": true }, - "acorn-dynamic-import": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz", - "integrity": "sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw==" - }, "acorn-globals": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.4.tgz", @@ -2370,27 +3438,37 @@ } }, "acorn-node": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.7.0.tgz", - "integrity": "sha512-XhahLSsCB6X6CJbe+uNu3Mn9sJBNFxtBN9NLgAOQovfS6Kh0lDUtmlclhjn9CvEK7A7YyRU13PXlNcpSiLI9Yw==", + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", + "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", "requires": { - "acorn": "^6.1.1", - "acorn-dynamic-import": "^4.0.0", - "acorn-walk": "^6.1.1", - "xtend": "^4.0.1" + "acorn": "^7.0.0", + "acorn-walk": "^7.0.0", + "xtend": "^4.0.2" }, "dependencies": { "acorn": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.1.1.tgz", - "integrity": "sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA==" + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.0.tgz", + "integrity": "sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ==" + }, + "acorn-walk": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.0.0.tgz", + "integrity": "sha512-7Bv1We7ZGuU79zZbb6rRqcpxo3OY+zrdtloZWoyD8fmGX+FeXRjE+iuGkZjSXLVovLzrsvMGMy0EkwA0E0umxg==" + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" } } }, "acorn-walk": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.1.1.tgz", - "integrity": "sha512-OtUw6JUTgxA2QoqqmrmQ7F2NYqiBPi/L2jqHyFtllhOUvXYQXf0Z1CYUinIfyT4bTCGmrA7gX9FvHA81uzCoVw==" + "integrity": "sha512-OtUw6JUTgxA2QoqqmrmQ7F2NYqiBPi/L2jqHyFtllhOUvXYQXf0Z1CYUinIfyT4bTCGmrA7gX9FvHA81uzCoVw==", + "dev": true }, "agent-base": { "version": "4.3.0", @@ -2546,11 +3624,6 @@ "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=", "dev": true }, - "array-filter": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz", - "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=" - }, "array-find-index": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", @@ -2563,16 +3636,6 @@ "integrity": "sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4=", "dev": true }, - "array-map": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz", - "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=" - }, - "array-reduce": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz", - "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=" - }, "array-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", @@ -2693,19 +3756,10 @@ "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", "dev": true }, - "babel-plugin-add-module-exports": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-add-module-exports/-/babel-plugin-add-module-exports-1.0.0.tgz", - "integrity": "sha512-m0sMxPL4FaN2K69GQgaRJa4Ny15qKSdoknIcpN+gz+NaJlAW9pge/povs13tPYsKDboflrEQC+/3kfIsONBTaw==", - "requires": { - "chokidar": "^2.0.4" - } - }, "babel-plugin-dynamic-import-node": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz", "integrity": "sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ==", - "dev": true, "requires": { "object.assign": "^4.1.0" } @@ -3029,9 +4083,9 @@ }, "dependencies": { "buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", - "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", + "version": "5.4.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.4.3.tgz", + "integrity": "sha512-zvj65TkFeIt3i6aj5bIvJDzjjQQGs4o/sNoezg1F1kYap9Nu2jcUdpwzRSJTHMMzG0H7bZkn4rNQpImhuxWX2A==", "requires": { "base64-js": "^1.0.2", "ieee754": "^1.1.4" @@ -3067,11 +4121,6 @@ "requires": { "inherits": "2.0.3" } - }, - "vm-browserify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.0.tgz", - "integrity": "sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw==" } } }, @@ -4453,7 +5502,6 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, "requires": { "object-keys": "^1.0.12" } @@ -4519,12 +5567,12 @@ "dev": true }, "deps-sort": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.0.tgz", - "integrity": "sha1-CRckkC6EZYJg65EHSMzNGvbiH7U=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.1.tgz", + "integrity": "sha512-1orqXQr5po+3KI6kQb9A4jnXT1PBwggGl2d7Sq2xsnOeI9GPcE/tGcF9UiSZtZBM7MukY4cAh7MemS6tZYipfw==", "requires": { "JSONStream": "^1.0.3", - "shasum": "^1.0.0", + "shasum-object": "^1.0.0", "subarg": "^1.0.0", "through2": "^2.0.0" } @@ -5322,6 +6370,11 @@ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, + "fast-safe-stringify": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", + "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==" + }, "fastparse": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", @@ -6306,8 +7359,7 @@ "has-symbols": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", - "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", - "dev": true + "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=" }, "has-value": { "version": "1.0.0", @@ -7571,7 +8623,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, "requires": { "graceful-fs": "^4.1.6" } @@ -8264,16 +9315,16 @@ "dev": true }, "module-deps": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.2.1.tgz", - "integrity": "sha512-UnEn6Ah36Tu4jFiBbJVUtt0h+iXqxpLqDvPS8nllbw5RZFmNJ1+Mz5BjYnM9ieH80zyxHkARGLnMIHlPK5bu6A==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.2.2.tgz", + "integrity": "sha512-a9y6yDv5u5I4A+IPHTnqFxcaKr4p50/zxTjcQJaX2ws9tN/W6J6YXnEKhqRyPhl494dkcxx951onSKVezmI+3w==", "requires": { "JSONStream": "^1.0.3", "browser-resolve": "^1.7.0", "cached-path-relative": "^1.0.2", "concat-stream": "~1.6.0", "defined": "^1.0.0", - "detective": "^5.0.2", + "detective": "^5.2.0", "duplexer2": "^0.1.2", "inherits": "^2.0.1", "parents": "^1.0.0", @@ -12279,8 +13330,7 @@ "object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" }, "object-visit": { "version": "1.0.1", @@ -12294,7 +13344,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", - "dev": true, "requires": { "define-properties": "^1.1.2", "function-bind": "^1.1.1", @@ -12691,9 +13740,9 @@ "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" }, "path-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", - "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=" + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==" }, "path-dirname": { "version": "1.0.2", @@ -13685,7 +14734,6 @@ "version": "0.14.1", "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.1.tgz", "integrity": "sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ==", - "dev": true, "requires": { "private": "^0.1.6" } @@ -13699,18 +14747,13 @@ "safe-regex": "^1.1.0" } }, - "regexp-tree": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.6.tgz", - "integrity": "sha512-LFrA98Dw/heXqDojz7qKFdygZmFoiVlvE1Zp7Cq2cvF+ZA+03Gmhy0k0PQlsC1jvHPiTUSs+pDHEuSWv6+6D7w==" - }, "regexpu-core": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.5.4.tgz", - "integrity": "sha512-BtizvGtFQKGPUcTy56o3nk1bGRp4SZOTYrDtGNlqCQufptV5IkkLN6Emw+yunAJjzf+C9FQFtvq7IoA3+oMYHQ==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.6.0.tgz", + "integrity": "sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg==", "requires": { "regenerate": "^1.4.0", - "regenerate-unicode-properties": "^8.0.2", + "regenerate-unicode-properties": "^8.1.0", "regjsgen": "^0.5.0", "regjsparser": "^0.6.0", "unicode-match-property-ecmascript": "^1.0.4", @@ -14516,6 +15559,14 @@ "sha.js": "~2.4.4" } }, + "shasum-object": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shasum-object/-/shasum-object-1.0.0.tgz", + "integrity": "sha512-Iqo5rp/3xVi6M4YheapzZhhGPVs0yZwHj7wvwQ1B9z8H6zk+FEnI7y3Teq7qwnekfEhu8WmG2z0z4iWZaxLWVg==", + "requires": { + "fast-safe-stringify": "^2.0.7" + } + }, "shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", @@ -14532,15 +15583,9 @@ "dev": true }, "shell-quote": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz", - "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=", - "requires": { - "array-filter": "~0.0.0", - "array-map": "~0.0.0", - "array-reduce": "~0.0.0", - "jsonify": "~0.0.0" - } + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz", + "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==" }, "signal-exit": { "version": "3.0.2", @@ -15949,8 +16994,7 @@ "vm-browserify": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.0.tgz", - "integrity": "sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw==", - "dev": true + "integrity": "sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw==" }, "w3c-hr-time": { "version": "1.0.1", diff --git a/package.json b/package.json index 9c3d208fe..581650516 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,7 @@ }, "private": false, "dependencies": { - "@cypress/browserify-preprocessor": "2.1.1", + "@cypress/browserify-preprocessor": "2.1.3", "debug": "4.1.1", "execa": "4.0.0" }, From 209156ecef53911e584b46211ea74116b7004ab0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 10 Feb 2020 11:47:15 +0630 Subject: [PATCH 05/85] chore(deps): update dependency cypress to v4 (#131) Co-authored-by: WhiteSource Renovate --- package-lock.json | 673 +++++++++++++++++++++++++++++----------------- package.json | 2 +- 2 files changed, 429 insertions(+), 246 deletions(-) diff --git a/package-lock.json b/package-lock.json index dd3e69162..e1621ca3b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3003,6 +3003,15 @@ "physical-cpu-count": "^2.0.0" } }, + "@samverschueren/stream-to-observable": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz", + "integrity": "sha512-MI4Xx6LHs4Webyvi6EbspgyAb4D2Q2VtnCQ1blOJcoLS6mVa8lNN2rkIy1CVxfTUpoyIbCTkXES1rLXztFD1lg==", + "dev": true, + "requires": { + "any-observable": "^0.3.0" + } + }, "@semantic-release/commit-analyzer": { "version": "6.3.3", "resolved": "https://registry.npmjs.org/@semantic-release/commit-analyzer/-/commit-analyzer-6.3.3.tgz", @@ -3516,9 +3525,9 @@ "dev": true }, "ansi-escapes": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", - "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", "dev": true }, "ansi-regex": { @@ -3548,6 +3557,12 @@ "integrity": "sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk=", "dev": true }, + "any-observable": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/any-observable/-/any-observable-0.3.0.tgz", + "integrity": "sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog==", + "dev": true + }, "anymatch": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", @@ -3708,13 +3723,10 @@ "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" }, "async": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", - "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", - "dev": true, - "requires": { - "lodash": "^4.17.10" - } + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/async/-/async-3.1.1.tgz", + "integrity": "sha512-X5Dj8hK1pJNC2Wzo2Rcp9FBVdJMGRR/S7V+lH46s8GVFhtbo5O4Le5GECCF/8PISVdkUA6mMPvgz7qTTD1rf1g==", + "dev": true }, "async-each": { "version": "1.0.3", @@ -3918,9 +3930,9 @@ "dev": true }, "bluebird": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz", - "integrity": "sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw=", + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", "dev": true }, "bn.js": { @@ -4272,13 +4284,10 @@ "integrity": "sha512-5r2GqsoEb4qMTTN9J+WzXfjov+hjxT+j3u5K+kIVNIwAd99DLCJE9pBIMP1qVeybV6JiijL385Oz0DcYxfbOIg==" }, "cachedir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-1.3.0.tgz", - "integrity": "sha512-O1ji32oyON9laVPJL1IZ5bmwd2cB46VfpxkDequezH+15FDzzVddEyrGEeX4WusDSqKxdyFdDQDEG1yo1GoWkg==", - "dev": true, - "requires": { - "os-homedir": "^1.0.1" - } + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.3.0.tgz", + "integrity": "sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==", + "dev": true }, "caching-transform": { "version": "4.0.0", @@ -4426,9 +4435,9 @@ } }, "ci-info": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", - "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", "dev": true }, "cipher-base": { @@ -4476,12 +4485,6 @@ "restore-cursor": "^1.0.1" } }, - "cli-spinners": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-0.1.2.tgz", - "integrity": "sha1-u3ZNiOGF+54eaiofGXcjGPYF4xw=", - "dev": true - }, "cli-table": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.1.tgz", @@ -5278,81 +5281,251 @@ } }, "cypress": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-3.8.3.tgz", - "integrity": "sha512-I9L/d+ilTPPA4vq3NC1OPKmw7jJIpMKNdyfR8t1EXYzYCjyqbc59migOm1YSse/VRbISLJ+QGb5k4Y3bz2lkYw==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-4.0.1.tgz", + "integrity": "sha512-P+cSwc5yE+1hIkWwJzpsiSQthKmzkFeFz2ySejSrJJ6FiXoL8pp0vr1cyWp+75KT4nqL9IYt1GMrHp+mVmvocA==", "dev": true, "requires": { "@cypress/listr-verbose-renderer": "0.4.1", "@cypress/xvfb": "1.2.4", "@types/sizzle": "2.3.2", "arch": "2.1.1", - "bluebird": "3.5.0", - "cachedir": "1.3.0", - "chalk": "2.4.2", + "bluebird": "3.7.2", + "cachedir": "2.3.0", + "chalk": "3.0.0", "check-more-types": "2.24.0", - "commander": "2.15.1", + "commander": "4.1.0", "common-tags": "1.8.0", - "debug": "3.2.6", + "debug": "4.1.1", "eventemitter2": "4.1.2", - "execa": "0.10.0", + "execa": "3.3.0", "executable": "4.1.1", "extract-zip": "1.6.7", - "fs-extra": "5.0.0", - "getos": "3.1.1", - "is-ci": "1.2.1", + "fs-extra": "8.1.0", + "getos": "3.1.4", + "is-ci": "2.0.0", "is-installed-globally": "0.1.0", "lazy-ass": "1.6.0", - "listr": "0.12.0", + "listr": "0.14.3", "lodash": "4.17.15", - "log-symbols": "2.2.0", + "log-symbols": "3.0.0", "minimist": "1.2.0", "moment": "2.24.0", - "ramda": "0.24.1", + "ramda": "0.26.1", "request": "2.88.0", "request-progress": "3.0.0", - "supports-color": "5.5.0", + "supports-color": "7.1.0", "tmp": "0.1.0", - "untildify": "3.0.3", + "untildify": "4.0.0", "url": "0.11.0", "yauzl": "2.10.0" }, "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", "dev": true, "requires": { - "ms": "^2.1.1" + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "commander": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.0.tgz", + "integrity": "sha512-NIQrwvv9V39FHgGFm36+U9SMQzbiHvU79k+iADraJTpmrFFfx7Ds0IvDoAdZsDrknlkRk14OYoWXb57uTh7/sw==", + "dev": true + }, + "cross-spawn": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.1.tgz", + "integrity": "sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" } }, "execa": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz", - "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-3.3.0.tgz", + "integrity": "sha512-j5Vit5WZR/cbHlqU97+qcnw9WHRCIL4V1SVe75VcHcD1JRBdt8fv0zw89b7CQHQdUHTt2VjuhcF5ibAgVOxqpg==", "dev": true, "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "p-finally": "^2.0.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" } }, - "get-stream": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + }, + "log-symbols": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", + "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2" + }, + "dependencies": { + "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" + } + } + } + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "onetime": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", + "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "p-finally": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz", + "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==", "dev": true }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } } } }, @@ -6574,14 +6747,22 @@ "dev": true }, "fs-extra": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", - "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "dev": true, "requires": { - "graceful-fs": "^4.1.2", + "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", "universalify": "^0.1.0" + }, + "dependencies": { + "graceful-fs": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", + "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", + "dev": true + } } }, "fs.realpath": { @@ -7112,12 +7293,12 @@ "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" }, "getos": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/getos/-/getos-3.1.1.tgz", - "integrity": "sha512-oUP1rnEhAr97rkitiszGP9EgDVYnmchgFzfqRzSkgtfv7ai6tEi7Ko8GgjNXts7VLWEqrTWyhsOKLe5C5b/Zkg==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/getos/-/getos-3.1.4.tgz", + "integrity": "sha512-UORPzguEB/7UG5hqiZai8f0vQ7hzynMQyJLxStoQ8dPGAcmgsfXOPA4iE/fGtweHYkK+z4zc9V0g+CIFRf5HYw==", "dev": true, "requires": { - "async": "2.6.1" + "async": "^3.1.0" } }, "getpass": { @@ -7730,13 +7911,10 @@ "dev": true }, "indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", - "dev": true, - "requires": { - "repeating": "^2.0.0" - } + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", + "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", + "dev": true }, "indexes-of": { "version": "1.0.1", @@ -7865,12 +8043,12 @@ "dev": true }, "is-ci": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", - "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", "dev": true, "requires": { - "ci-info": "^1.5.0" + "ci-info": "^2.0.0" } }, "is-color-stop": { @@ -7944,15 +8122,6 @@ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" }, - "is-finite": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, "is-fullwidth-code-point": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", @@ -8013,6 +8182,15 @@ "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", "dev": true }, + "is-observable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-1.1.0.tgz", + "integrity": "sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==", + "dev": true, + "requires": { + "symbol-observable": "^1.1.0" + } + }, "is-path-inside": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", @@ -8686,57 +8864,20 @@ "dev": true }, "listr": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/listr/-/listr-0.12.0.tgz", - "integrity": "sha1-a84sD1YD+klYDqF81qAMwOX6RRo=", + "version": "0.14.3", + "resolved": "https://registry.npmjs.org/listr/-/listr-0.14.3.tgz", + "integrity": "sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA==", "dev": true, "requires": { - "chalk": "^1.1.3", - "cli-truncate": "^0.2.1", - "figures": "^1.7.0", - "indent-string": "^2.1.0", + "@samverschueren/stream-to-observable": "^0.3.0", + "is-observable": "^1.1.0", "is-promise": "^2.1.0", "is-stream": "^1.1.0", "listr-silent-renderer": "^1.1.1", - "listr-update-renderer": "^0.2.0", - "listr-verbose-renderer": "^0.4.0", - "log-symbols": "^1.0.2", - "log-update": "^1.0.2", - "ora": "^0.2.3", - "p-map": "^1.1.1", - "rxjs": "^5.0.0-beta.11", - "stream-to-observable": "^0.1.0", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "log-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", - "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", - "dev": true, - "requires": { - "chalk": "^1.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } + "listr-update-renderer": "^0.5.0", + "listr-verbose-renderer": "^0.5.0", + "p-map": "^2.0.0", + "rxjs": "^6.3.3" } }, "listr-silent-renderer": { @@ -8746,9 +8887,9 @@ "dev": true }, "listr-update-renderer": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/listr-update-renderer/-/listr-update-renderer-0.2.0.tgz", - "integrity": "sha1-yoDhd5tOcCZoB+ju0a1qvjmFUPk=", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz", + "integrity": "sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA==", "dev": true, "requires": { "chalk": "^1.1.3", @@ -8757,7 +8898,7 @@ "figures": "^1.7.0", "indent-string": "^3.0.0", "log-symbols": "^1.0.2", - "log-update": "^1.0.2", + "log-update": "^2.3.0", "strip-ansi": "^3.0.1" }, "dependencies": { @@ -8774,12 +8915,6 @@ "supports-color": "^2.0.0" } }, - "indent-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", - "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", - "dev": true - }, "log-symbols": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", @@ -8798,35 +8933,59 @@ } }, "listr-verbose-renderer": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz", - "integrity": "sha1-ggb0z21S3cWCfl/RSYng6WWTOjU=", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz", + "integrity": "sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw==", "dev": true, "requires": { - "chalk": "^1.1.3", - "cli-cursor": "^1.0.2", + "chalk": "^2.4.1", + "cli-cursor": "^2.1.0", "date-fns": "^1.27.2", - "figures": "^1.7.0" + "figures": "^2.0.0" }, "dependencies": { - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "dev": true, "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" + "restore-cursor": "^2.0.0" } }, - "supports-color": { + "figures": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", "dev": true + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } } } }, @@ -8960,13 +9119,91 @@ } }, "log-update": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-1.0.2.tgz", - "integrity": "sha1-GZKfZMQJPS0ucHWh2tivWcKWuNE=", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-2.3.0.tgz", + "integrity": "sha1-iDKP19HOeTiykoN0bwsbwSayRwg=", "dev": true, "requires": { - "ansi-escapes": "^1.0.0", - "cli-cursor": "^1.0.2" + "ansi-escapes": "^3.0.0", + "cli-cursor": "^2.0.0", + "wrap-ansi": "^3.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "wrap-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-3.0.1.tgz", + "integrity": "sha1-KIoE2H7aXChuBg3+jxNc6NAH+Lo=", + "dev": true, + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0" + } + } } }, "loose-envify": { @@ -13459,50 +13696,11 @@ } } }, - "ora": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/ora/-/ora-0.2.3.tgz", - "integrity": "sha1-N1J9Igrc1Tw5tzVx11QVbV22V6Q=", - "dev": true, - "requires": { - "chalk": "^1.1.1", - "cli-cursor": "^1.0.2", - "cli-spinners": "^0.1.2", - "object-assign": "^4.0.1" - }, - "dependencies": { - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, "os-browserify": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true - }, "os-name": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/os-name/-/os-name-3.1.0.tgz", @@ -13554,9 +13752,9 @@ } }, "p-map": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", - "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", "dev": true }, "p-reduce": { @@ -14602,9 +14800,9 @@ } }, "ramda": { - "version": "0.24.1", - "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.24.1.tgz", - "integrity": "sha1-w7d1UZfzW43DUCIoJixMkd22uFc=", + "version": "0.26.1", + "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.26.1.tgz", + "integrity": "sha512-hLWjpy7EnsDBb0p+Z3B7rPi3GDeRG5ZtiI33kJhTt+ORCd38AbAIjB/9zRIUoeTbE/AVX5ZkU7m6bznsvrf8eQ==", "dev": true }, "randombytes": { @@ -14814,15 +15012,6 @@ "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" }, - "repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "dev": true, - "requires": { - "is-finite": "^1.0.0" - } - }, "request": { "version": "2.88.0", "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", @@ -14975,12 +15164,12 @@ "dev": true }, "rxjs": { - "version": "5.5.12", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.12.tgz", - "integrity": "sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw==", + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz", + "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==", "dev": true, "requires": { - "symbol-observable": "1.0.1" + "tslib": "^1.9.0" } }, "safe-buffer": { @@ -16146,12 +16335,6 @@ "readable-stream": "^2.0.2" } }, - "stream-to-observable": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/stream-to-observable/-/stream-to-observable-0.1.0.tgz", - "integrity": "sha1-Rb8dny19wJvtgfHDB8Qw5ouEz/4=", - "dev": true - }, "string-width": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", @@ -16309,9 +16492,9 @@ } }, "symbol-observable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz", - "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", "dev": true }, "symbol-tree": { @@ -16871,9 +17054,9 @@ } }, "untildify": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/untildify/-/untildify-3.0.3.tgz", - "integrity": "sha512-iSk/J8efr8uPT/Z4eSUywnqyrQU7DSdMfdqK4iWEaUVVmcP5JcnpRqmVMwcwcnmI1ATFNgC5V90u09tBynNFKA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", "dev": true }, "upath": { diff --git a/package.json b/package.json index 581650516..1b1473be5 100644 --- a/package.json +++ b/package.json @@ -52,7 +52,7 @@ "devDependencies": { "@babel/core": "7.8.4", "babel-plugin-istanbul": "6.0.0", - "cypress": "3.8.3", + "cypress": "4.0.1", "istanbul-lib-coverage": "3.0.0", "lodash": "4.17.15", "nyc": "15.0.0", From 2fd71bb13a7a13c0334b709b09d22b6bde739b0d Mon Sep 17 00:00:00 2001 From: Gleb Bahmutov Date: Mon, 10 Feb 2020 21:05:42 -0500 Subject: [PATCH 06/85] feat: warn if missing code coverage information (#128) * feat: warn if missing code coverage information * add note to plugin's log messages --- support.js | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/support.js b/support.js index 70ad012ec..a7baddc13 100644 --- a/support.js +++ b/support.js @@ -5,13 +5,22 @@ * via "cy.task". */ const sendCoverage = (coverage, pathname = '/') => { - cy.log(`Saving code coverage **${pathname}**`) + logMessage(`Saving code coverage for **${pathname}**`) // stringify coverage object for speed cy.task('combineCoverage', JSON.stringify(coverage), { log: false }) } +/** + * Consistently logs the given string to the Command Log + * so the user knows the log message is coming from this plugin. + * @param {string} s Message to log. + */ +const logMessage = s => { + cy.log(`${s} \`[@cypress/code-coverage]\``) +} + // to disable code coverage commands and save time // pass environment variable coverage=false // cypress run --env coverage=false @@ -21,6 +30,10 @@ if (Cypress.env('coverage') === false) { } else { let windowCoverageObjects + const hasE2ECoverage = () => Boolean(windowCoverageObjects.length) + + const hasUnitTestCoverage = () => Boolean(window.__coverage__) + before(() => { // we need to reset the coverage when running // in the interactive mode, otherwise the counters will @@ -53,9 +66,26 @@ if (Cypress.env('coverage') === false) { windowCoverageObjects.forEach(cover => { sendCoverage(cover.coverage, cover.pathname) }) + + if (!hasE2ECoverage()) { + if (hasUnitTestCoverage()) { + logMessage(`👉 Only found unit test code coverage.`) + } else { + logMessage(` + ⚠️ Could not find any coverage information in your application + by looking at the window coverage object. + Did you forget to instrument your application? + See [code-coverage#instrument-your-application](https://github.com/cypress-io/code-coverage#instrument-your-application) + `) + } + } }) after(() => { + // I wish I could fail the tests if there is no code coverage information + // but throwing an error here does not fail the test run due to + // https://github.com/cypress-io/cypress/issues/2296 + // there might be server-side code coverage information // we should grab it once after all tests finish const baseUrl = Cypress.config('baseUrl') || cy.state('window').origin From 19699d149e5fb928dde33db2828f8b348c9f2fe8 Mon Sep 17 00:00:00 2001 From: Gleb Bahmutov Date: Mon, 10 Feb 2020 21:21:13 -0500 Subject: [PATCH 07/85] link TS React CRA example --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9a636d76e..ff8cc90c0 100644 --- a/README.md +++ b/README.md @@ -290,6 +290,7 @@ npm run dev:no:coverage - [rootstrap/react-redux-base](https://github.com/rootstrap/react-redux-base) shows an example with a realistic Webpack config. Instruments the source code using `babel-plugin-istanbul` during tests. - [skylock/cypress-angular-coverage-example](https://github.com/skylock/cypress-angular-coverage-example) shows Angular 8 + TypeScript application with instrumentation done using [istanbul-instrumenter-loader](https://github.com/webpack-contrib/istanbul-instrumenter-loader). - [bahmutov/testing-react](https://github.com/bahmutov/testing-react) shows how to get code coverage for a React application created using [CRA v3](https://github.com/facebook/create-react-app) without ejecting `react-scripts`. +- [bahmutov/cra-ts-code-coverage-example](https://github.com/bahmutov/cra-ts-code-coverage-example) instruments TypeScript React application on the fly without ejecting `react-scripts`. - [bahmutov/next-and-cypress-example](https://github.com/bahmutov/next-and-cypress-example) shows how to get backend and frontend coverage for a [Next.js](https://nextjs.org) project. Uses [middleware/nextjs.js](middleware/nextjs.js). - [akoidan/vue-webpack-typescript](https://github.com/akoidan/vue-webpack-typescript) Pure webpack config with vue + typescript with codecov reports. This setup uses babel-loader with TS checker as a separate thread. - [bahmutov/code-coverage-subfolder-example](https://github.com/bahmutov/code-coverage-subfolder-example) shows how to instrument `app` folder using `nyc instrument` as a separate step before running E2E tests From c6e8f3eb454a2f8f4bc4aefd961ea9a12e144f6c Mon Sep 17 00:00:00 2001 From: Gleb Bahmutov Date: Tue, 11 Feb 2020 09:02:07 -0500 Subject: [PATCH 08/85] Backend code coverage tests, refactor (#133) * chore: refactor code * add test express with code coverage * start backend test * npm publish after coverage jobs * use npx * last coverage threshold --- .circleci/config.yml | 50 +++++- cypress-backend.json | 9 ++ cypress/test-backend/spec.js | 5 + package-lock.json | 285 +++++++++++++++++++++++++++++++++++ package.json | 6 +- support.js | 16 +- test-backend/index.html | 3 + test-backend/index.js | 21 +++ 8 files changed, 385 insertions(+), 10 deletions(-) create mode 100644 cypress-backend.json create mode 100644 cypress/test-backend/spec.js create mode 100644 test-backend/index.html create mode 100644 test-backend/index.js diff --git a/.circleci/config.yml b/.circleci/config.yml index 6ecd54516..8d523b0a0 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,10 +1,28 @@ version: 2.1 orbs: - cypress: cypress-io/cypress@1.13.0 + cypress: cypress-io/cypress@1.13.0 # used to run e2e tests + node: circleci/node@1.1.6 # used to publish new NPM version + +jobs: + publish: + executor: + name: node/default + tag: '12' + steps: + - checkout + - node/with-cache: + steps: + - run: npm ci + - run: npm run semantic-release + workflows: build: jobs: + - cypress/install - cypress/run: + name: frontend coverage + requires: + - cypress/install # we need to start the web application start: npm start # there are no jobs to follow this one @@ -23,5 +41,31 @@ workflows: - run: npx nyc report --check-coverage true --lines 100 --include cypress/about.js # make sure unit tests are covered - run: npx nyc report --check-coverage true --lines 100 --include cypress/unit.js - # publish new version if necessary - - run: npm run semantic-release + + - cypress/run: + name: backend coverage + requires: + - cypress/install + + start: npm run start:test:backend + command: npx cypress run --config-file cypress-backend.json + + # there are no jobs to follow this one + # so no need to save the workspace files (saves time) + no-workspace: true + post-steps: + # store the created coverage report folder + # you can click on it in the CircleCI UI + # to see live static HTML site + - store_artifacts: + path: coverage + # print code coverage summary to the terminal + # and make sure there the coverage is above certain limit + - run: npx nyc report --check-coverage true --lines 85 + # and look at the server index file - should be fully covered + - run: npx nyc report --check-coverage true --lines 100 --include test-backend/index.js + + - publish: + requires: + - frontend coverage + - backend coverage diff --git a/cypress-backend.json b/cypress-backend.json new file mode 100644 index 000000000..7906b6c8f --- /dev/null +++ b/cypress-backend.json @@ -0,0 +1,9 @@ +{ + "baseUrl": "http://localhost:3003", + "integrationFolder": "cypress/test-backend", + "env": { + "codeCoverage": { + "url": "http://localhost:3003/__coverage__" + } + } +} diff --git a/cypress/test-backend/spec.js b/cypress/test-backend/spec.js new file mode 100644 index 000000000..208cce44f --- /dev/null +++ b/cypress/test-backend/spec.js @@ -0,0 +1,5 @@ +/// +it('has backend code coverage', () => { + cy.visit('/') + cy.request('/hello') +}) diff --git a/package-lock.json b/package-lock.json index e1621ca3b..a5d5c5c48 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3422,6 +3422,16 @@ "integrity": "sha512-2scffjvioEmNz0OyDSLGWDfKCVwaKc6l9Pm9kOIREU13ClXZvHpg/nRL5xyjSSSLhOnXqft2HpsAzNEEA8cFFg==", "dev": true }, + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "dev": true, + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, "acorn": { "version": "5.7.3", "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", @@ -3645,6 +3655,12 @@ "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", "dev": true }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "dev": true + }, "array-ify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", @@ -3940,6 +3956,54 @@ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" }, + "body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "dev": true, + "requires": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + } + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "dev": true + } + } + }, "boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", @@ -4262,6 +4326,12 @@ "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" }, + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "dev": true + }, "cache-base": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", @@ -4745,6 +4815,21 @@ "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" }, + "content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "dev": true, + "requires": { + "safe-buffer": "5.1.2" + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "dev": true + }, "conventional-changelog-angular": { "version": "5.0.6", "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.6.tgz", @@ -4861,6 +4946,18 @@ "safe-buffer": "~5.1.1" } }, + "cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", + "dev": true + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "dev": true + }, "copy-descriptor": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", @@ -6369,6 +6466,61 @@ } } }, + "express": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "dev": true, + "requires": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "dev": true + } + } + }, "extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", @@ -6609,6 +6761,32 @@ } } }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, "find-cache-dir": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.2.0.tgz", @@ -6710,6 +6888,12 @@ "mime-types": "^2.1.12" } }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", + "dev": true + }, "fragment-cache": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", @@ -7993,6 +8177,12 @@ "loose-envify": "^1.0.0" } }, + "ipaddr.js": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", + "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==", + "dev": true + }, "is-absolute-url": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", @@ -9325,6 +9515,12 @@ "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", "dev": true }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "dev": true + }, "meow": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/meow/-/meow-5.0.0.tgz", @@ -9412,6 +9608,12 @@ } } }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "dev": true + }, "merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", @@ -9423,6 +9625,12 @@ "integrity": "sha512-gdUU1Fwj5ep4kplwcmftruWofEFt6lfpkkr3h860CXbAB9c3hGb55EOL2ali0Td5oebvW0E1+3Sr+Ur7XfKpRA==", "dev": true }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "dev": true + }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", @@ -9608,6 +9816,12 @@ "to-regex": "^3.0.1" } }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "dev": true + }, "neo-async": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz", @@ -13980,6 +14194,12 @@ "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz", "integrity": "sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I=" }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "dev": true + }, "path-type": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", @@ -14717,6 +14937,16 @@ "fromentries": "^1.2.0" } }, + "proxy-addr": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz", + "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==", + "dev": true, + "requires": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.0" + } + }, "ps-tree": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/ps-tree/-/ps-tree-1.2.0.tgz", @@ -14828,6 +15058,33 @@ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", "dev": true }, + "raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "dev": true, + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "dependencies": { + "http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + } + } + } + }, "rc": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", @@ -16790,6 +17047,16 @@ "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", "dev": true }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, "typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", @@ -17011,6 +17278,12 @@ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true + }, "unquote": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", @@ -17129,6 +17402,12 @@ "object.getownpropertydescriptors": "^2.0.3" } }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true + }, "uuid": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", @@ -17151,6 +17430,12 @@ "spdx-expression-parse": "^3.0.0" } }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true + }, "vendors": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.3.tgz", diff --git a/package.json b/package.json index 1b1473be5..419e81b29 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,10 @@ "test:ci": "start-test 1234", "report:coverage": "nyc report --reporter=html", "dev:no:coverage": "start-test 1234 'cypress open --env coverage=false'", - "format": "prettier --write '*.js'" + "format": "prettier --write '*.js'", + "start:test:backend": "nyc --silent node test-backend", + "cy:backend": "cypress open --config-file cypress-backend.json", + "dev:backend": "start-test start:test:backend 3003 cy:backend" }, "peerDependencies": { "cypress": "*", @@ -53,6 +56,7 @@ "@babel/core": "7.8.4", "babel-plugin-istanbul": "6.0.0", "cypress": "4.0.1", + "express": "4.17.1", "istanbul-lib-coverage": "3.0.0", "lodash": "4.17.15", "nyc": "15.0.0", diff --git a/support.js b/support.js index a7baddc13..20247a4d5 100644 --- a/support.js +++ b/support.js @@ -81,7 +81,7 @@ if (Cypress.env('coverage') === false) { } }) - after(() => { + after(function collectBackendCoverage() { // I wish I could fail the tests if there is no code coverage information // but throwing an error here does not fail the test run due to // https://github.com/cypress-io/cypress/issues/2296 @@ -114,7 +114,9 @@ if (Cypress.env('coverage') === false) { sendCoverage(coverage, 'backend') }) } + }) + after(function mergeUnitTestCoverage() { // collect and merge frontend coverage const specFolder = Cypress.config('integrationFolder') const supportFolder = Cypress.config('supportFolder') @@ -127,14 +129,16 @@ if (Cypress.env('coverage') === false) { if (unitTestCoverage) { // remove coverage for the spec files themselves, // only keep "external" application source file coverage - const coverage = Cypress._.omitBy( - window.__coverage__, - (fileCoverage, filename) => - filename.startsWith(specFolder) || filename.startsWith(supportFolder) - ) + + // does this handle unset support file? + const isTestFile = (fileCoverage, filename) => + filename.startsWith(specFolder) || filename.startsWith(supportFolder) + const coverage = Cypress._.omitBy(window.__coverage__, isTestFile) sendCoverage(coverage, 'unit') } + }) + after(function generateReport() { // when all tests finish, lets generate the coverage report cy.task('coverageReport') }) diff --git a/test-backend/index.html b/test-backend/index.html new file mode 100644 index 000000000..0953706ba --- /dev/null +++ b/test-backend/index.html @@ -0,0 +1,3 @@ + + test backend + diff --git a/test-backend/index.js b/test-backend/index.js new file mode 100644 index 000000000..542860a93 --- /dev/null +++ b/test-backend/index.js @@ -0,0 +1,21 @@ +const express = require('express') +const app = express() +const port = 3003 + +// if there is code coverage information +// then expose an endpoint that returns it +/* istanbul ignore next */ +if (global.__coverage__) { + console.log('have code coverage, will add middleware for express') + console.log(`to fetch: GET :${port}/__coverage__`) + require('../middleware/express')(app) +} + +app.use(express.static(__dirname)) + +app.get('/hello', (req, res) => { + console.log('sending hello world') + res.send('Hello World!') +}) + +app.listen(port, () => console.log(`Example app listening on port ${port}!`)) From 0c3376d85044e1b5e759232425c626af8580f443 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 11 Feb 2020 09:46:55 -0500 Subject: [PATCH 09/85] chore(deps): update dependency semantic-release to v17 (#119) Co-authored-by: WhiteSource Renovate Co-authored-by: Gleb Bahmutov --- package-lock.json | 1591 ++++++++++++++++++--------------------------- package.json | 2 +- 2 files changed, 640 insertions(+), 953 deletions(-) diff --git a/package-lock.json b/package-lock.json index a5d5c5c48..951fc927e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2781,10 +2781,19 @@ "fastq": "^1.6.0" } }, + "@octokit/auth-token": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.4.0.tgz", + "integrity": "sha512-eoOVMjILna7FVQf96iWc3+ZtE/ZT6y8ob8ZzcqKY1ibSQCnu4O/B7pJvzMx5cyZ/RjAff6DAdEb0O0Cjcxidkg==", + "dev": true, + "requires": { + "@octokit/types": "^2.0.0" + } + }, "@octokit/endpoint": { - "version": "5.5.1", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-5.5.1.tgz", - "integrity": "sha512-nBFhRUb5YzVTCX/iAK1MgQ4uWo89Gu0TH00qQHoYRCsE12dWcG1OiLd7v2EIo2+tpUKPMOQ62QFy9hy9Vg2ULg==", + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-5.5.2.tgz", + "integrity": "sha512-ICDcRA0C2vtTZZGud1nXRrBLXZqFayodXAKZfo3dkdcLNqcHsgaz3YSTupbURusYeucSVRjjG+RTcQhx6HPPcg==", "dev": true, "requires": { "@octokit/types": "^2.0.0", @@ -2809,6 +2818,31 @@ } } }, + "@octokit/plugin-paginate-rest": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-1.1.2.tgz", + "integrity": "sha512-jbsSoi5Q1pj63sC16XIUboklNw+8tL9VOnJsWycWYR78TKss5PVpIPb1TUUcMQ+bBh7cY579cVAWmf5qG+dw+Q==", + "dev": true, + "requires": { + "@octokit/types": "^2.0.1" + } + }, + "@octokit/plugin-request-log": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.0.tgz", + "integrity": "sha512-ywoxP68aOT3zHCLgWZgwUJatiENeHE7xJzYjfz8WI0goynp96wETBF+d95b8g/uL4QmS6owPVlaxiz3wyMAzcw==", + "dev": true + }, + "@octokit/plugin-rest-endpoint-methods": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-2.4.0.tgz", + "integrity": "sha512-EZi/AWhtkdfAYi01obpX0DF7U6b1VRr30QNQ5xSFPITMdLSfhcBqjamE3F+sKcxPbD7eZuMHu3Qkk2V+JGxBDQ==", + "dev": true, + "requires": { + "@octokit/types": "^2.0.1", + "deprecation": "^2.3.1" + } + }, "@octokit/request": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.3.1.tgz", @@ -2843,9 +2877,9 @@ } }, "@octokit/request-error": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-1.2.0.tgz", - "integrity": "sha512-DNBhROBYjjV/I9n7A8kVkmQNkqFAMem90dSxqvPq57e2hBr7mNTX98y3R2zDpqMQHVRpBDjsvsfIGgBzy+4PAg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-1.2.1.tgz", + "integrity": "sha512-+6yDyk1EES6WK+l3viRDElw96MvwfJxCt45GvmjDUKWjYIb3PJZQkq3i46TwGwoPD4h8NmTrENmtyA1FwbmhRA==", "dev": true, "requires": { "@octokit/types": "^2.0.0", @@ -2854,11 +2888,15 @@ } }, "@octokit/rest": { - "version": "16.35.2", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-16.35.2.tgz", - "integrity": "sha512-iijaNZpn9hBpUdh8YdXqNiWazmq4R1vCUsmxpBB0kCQ0asHZpCx+HNs22eiHuwYKRhO31ZSAGBJLi0c+3XHaKQ==", + "version": "16.43.1", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-16.43.1.tgz", + "integrity": "sha512-gfFKwRT/wFxq5qlNjnW2dh+qh74XgTQ2B179UX5K1HYCluioWj8Ndbgqw2PVqa1NnVJkGHp2ovMpVn/DImlmkw==", "dev": true, "requires": { + "@octokit/auth-token": "^2.4.0", + "@octokit/plugin-paginate-rest": "^1.1.1", + "@octokit/plugin-request-log": "^1.0.0", + "@octokit/plugin-rest-endpoint-methods": "2.4.0", "@octokit/request": "^5.2.0", "@octokit/request-error": "^1.0.2", "atob-lite": "^2.0.0", @@ -2874,9 +2912,9 @@ } }, "@octokit/types": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-2.0.2.tgz", - "integrity": "sha512-StASIL2lgT3TRjxv17z9pAqbnI7HGu9DrJlg3sEBFfCLaMEqp+O3IQPUF6EZtQ4xkAu2ml6kMBBCtGxjvmtmuQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-2.1.1.tgz", + "integrity": "sha512-89LOYH+d/vsbDX785NOfLxTW88GjNd0lWRz1DVPVsZgg9Yett5O+3MOvwo7iHgvUwbFz0mf/yPIjBkUbs4kxoQ==", "dev": true, "requires": { "@types/node": ">= 8" @@ -3013,9 +3051,9 @@ } }, "@semantic-release/commit-analyzer": { - "version": "6.3.3", - "resolved": "https://registry.npmjs.org/@semantic-release/commit-analyzer/-/commit-analyzer-6.3.3.tgz", - "integrity": "sha512-Pyv1ZL2u5AIOY4YbxFCAB5J1PEh5yON8ylbfiPiriDGGW6Uu1U3Y8lysMtWu+FUD5x7tSnyIzhqx0+fxPxqbgw==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@semantic-release/commit-analyzer/-/commit-analyzer-8.0.1.tgz", + "integrity": "sha512-5bJma/oB7B4MtwUkZC2Bf7O1MHfi4gWe4mA+MIQ3lsEV0b422Bvl1z5HRpplDnMLHH3EXMoRdEng6Ds5wUqA3A==", "dev": true, "requires": { "conventional-changelog-angular": "^5.0.0", @@ -3023,7 +3061,53 @@ "conventional-commits-parser": "^3.0.7", "debug": "^4.0.0", "import-from": "^3.0.0", - "lodash": "^4.17.4" + "lodash": "^4.17.4", + "micromatch": "^4.0.2" + }, + "dependencies": { + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + } } }, "@semantic-release/error": { @@ -3033,22 +3117,22 @@ "dev": true }, "@semantic-release/github": { - "version": "5.5.5", - "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-5.5.5.tgz", - "integrity": "sha512-Wo9OIULMRydbq+HpFh9yiLvra1XyEULPro9Tp4T5MQJ0WZyAQ3YQm74IdT8Pe/UmVDq2nfpT1oHrWkwOc4loHg==", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-7.0.3.tgz", + "integrity": "sha512-4Y2nqruKHsdoayq/H/lMWudONXHLbYtSBDZPktoTrvdJZNQkLhjnxCwDUTKo8G29aI81RuoYKUHv6GSgyJDtGQ==", "dev": true, "requires": { - "@octokit/rest": "^16.27.0", + "@octokit/rest": "^16.43.0", "@semantic-release/error": "^2.2.0", "aggregate-error": "^3.0.0", "bottleneck": "^2.18.1", "debug": "^4.0.0", "dir-glob": "^3.0.0", "fs-extra": "^8.0.0", - "globby": "^10.0.0", - "http-proxy-agent": "^2.1.0", - "https-proxy-agent": "^3.0.0", - "issue-parser": "^5.0.0", + "globby": "^11.0.0", + "http-proxy-agent": "^4.0.0", + "https-proxy-agent": "^5.0.0", + "issue-parser": "^6.0.0", "lodash": "^4.17.4", "mime": "^2.4.3", "p-filter": "^2.0.0", @@ -3082,54 +3166,26 @@ } }, "@semantic-release/npm": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-5.3.4.tgz", - "integrity": "sha512-XjITNRA/oOpJ7BfHk/WaOHs1WniYBszTde/bwADjjk1Luacpxg87jbDQVVt/oA3Zlx+MelxACRIEuRiPC5gu8g==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-7.0.2.tgz", + "integrity": "sha512-lugR8jvP81tDb5lmmRL7khntSIew9jsGrNac4ec381mU+CsuBbaKgpvOMEYys0QC0CXrN4yU8Ltpq+RQD5Mc+g==", "dev": true, "requires": { "@semantic-release/error": "^2.2.0", "aggregate-error": "^3.0.0", - "execa": "^3.2.0", + "execa": "^4.0.0", "fs-extra": "^8.0.0", "lodash": "^4.17.15", "nerf-dart": "^1.0.0", - "normalize-url": "^4.0.0", + "normalize-url": "^5.0.0", "npm": "^6.10.3", "rc": "^1.2.8", "read-pkg": "^5.0.0", "registry-auth-token": "^4.0.0", + "semver": "^7.1.2", "tempy": "^0.3.0" }, "dependencies": { - "cross-spawn": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.1.tgz", - "integrity": "sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "execa": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-3.4.0.tgz", - "integrity": "sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "p-finally": "^2.0.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - } - }, "fs-extra": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", @@ -3147,40 +3203,10 @@ "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", "dev": true }, - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", - "dev": true - }, "normalize-url": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", - "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", - "dev": true - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - }, - "onetime": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", - "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "p-finally": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz", - "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-5.0.0.tgz", + "integrity": "sha512-bAEm2fx8Dq/a35Z6PIRkkBBJvR56BbEJvhpNtvCZ4W9FyORSna77fn+xtYFjqk5JpBS+fMnAOG/wFgkQBmB7hw==", "dev": true }, "parse-json": { @@ -3195,12 +3221,6 @@ "lines-and-columns": "^1.1.6" } }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, "read-pkg": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", @@ -3213,36 +3233,18 @@ "type-fest": "^0.6.0" } }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "semver": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.2.tgz", + "integrity": "sha512-BJs9T/H8sEVHbeigqzIEo57Iu/3DG6c4QoqTfbQB3BPA4zgzAomh/Fk9E7QtjWQ8mx2dgA9YCfSF4y9k9bHNpQ==", "dev": true - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } } } }, "@semantic-release/release-notes-generator": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-7.3.5.tgz", - "integrity": "sha512-LGjgPBGjjmjap/76O0Md3wc04Y7IlLnzZceLsAkcYRwGQdRPTTFUJKqDQTuieWTs7zfHzQoZqsqPfFxEN+g2+Q==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-9.0.0.tgz", + "integrity": "sha512-fhMUC5gAYZ1tNUDarB85PdY2xQtrPJH1wkXfvLJuhNa3BLn2geMRwdX+BtyHUloQj5KXVB8OXIq5xXz0IGvhYA==", "dev": true, "requires": { "conventional-changelog-angular": "^5.0.0", @@ -3255,91 +3257,6 @@ "into-stream": "^5.0.0", "lodash": "^4.17.4", "read-pkg-up": "^7.0.0" - }, - "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "parse-json": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz", - "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1", - "lines-and-columns": "^1.1.6" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "dev": true, - "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "dependencies": { - "type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true - } - } - }, - "read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "requires": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - } - }, - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - } } }, "@types/color-name": { @@ -3348,33 +3265,10 @@ "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", "dev": true }, - "@types/events": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", - "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==", - "dev": true - }, - "@types/glob": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz", - "integrity": "sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==", - "dev": true, - "requires": { - "@types/events": "*", - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "@types/minimatch": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", - "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", - "dev": true - }, "@types/node": { - "version": "12.12.21", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.21.tgz", - "integrity": "sha512-8sRGhbpU+ck1n0PGAUgVrWrWdjSW2aqNeyC15W88GRsMpSwzv6RJGlLhE7s2RhVSOdyDmxbqlWSeThq4/7xqlA==", + "version": "13.7.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-13.7.0.tgz", + "integrity": "sha512-GnZbirvmqZUzMgkFn70c74OQpTTUcCzlhQliTzYjQMqg+hVKcDnxdL19Ne3UdYzdMA/+W3eb646FWn/ZaT1NfQ==", "dev": true }, "@types/normalize-package-data": { @@ -3490,12 +3384,12 @@ "dev": true }, "agent-base": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", - "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.0.tgz", + "integrity": "sha512-j1Q7cSCqN+AwrmDd+pzgqc0/NpC655x2bUf5ZjRIO77DcNBFmh+OgRNzF6OKdCC9RSCb19fGd99+bhXFdkRNqw==", "dev": true, "requires": { - "es6-promisify": "^5.0.0" + "debug": "4" } }, "aggregate-error": { @@ -4858,30 +4752,12 @@ "through2": "^3.0.0" }, "dependencies": { - "handlebars": { - "version": "4.5.3", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.5.3.tgz", - "integrity": "sha512-3yPecJoJHK/4c6aZhSvxOyG4vJKDshV36VHp0iVCDVh7o9w2vwi3NSnL2MMPj3YdduqaBcu7cGbggJQM0br9xA==", - "dev": true, - "requires": { - "neo-async": "^2.6.0", - "optimist": "^0.6.1", - "source-map": "^0.6.1", - "uglify-js": "^3.1.4" - } - }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, "split": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", @@ -6052,117 +5928,26 @@ }, "end-of-stream": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", - "requires": { - "once": "^1.4.0" - } - }, - "entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", - "dev": true - }, - "env-ci": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-4.5.2.tgz", - "integrity": "sha512-lS+edpNp2+QXEPkx6raEMIjKxKKWnJ4+VWzovYJ2NLYiJAYenSAXotFfVdgaFxdbVnvAbUI8epQDa1u12ERxfQ==", - "dev": true, - "requires": { - "execa": "^3.2.0", - "java-properties": "^1.0.0" - }, - "dependencies": { - "cross-spawn": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.1.tgz", - "integrity": "sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "execa": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-3.4.0.tgz", - "integrity": "sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "p-finally": "^2.0.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - } - }, - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", - "dev": true - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - }, - "onetime": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", - "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "p-finally": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz", - "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "requires": { + "once": "^1.4.0" + } + }, + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", + "dev": true + }, + "env-ci": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-5.0.1.tgz", + "integrity": "sha512-xXgohoOAFFF1Y3EdsSKP7olyH/DLS6ZD3aglV6mDFAXBqBXLJSsZLrOZdYfDs5mOmgNaP3YYynObzwF3QkC24g==", + "dev": true, + "requires": { + "execa": "^4.0.0", + "java-properties": "^1.0.0" } }, "envinfo": { @@ -6223,21 +6008,6 @@ "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", "dev": true }, - "es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", - "dev": true - }, - "es6-promisify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", - "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", - "dev": true, - "requires": { - "es6-promise": "^4.0.3" - } - }, "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", @@ -6798,6 +6568,15 @@ "pkg-dir": "^4.1.0" } }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, "find-versions": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-3.2.0.tgz", @@ -7572,18 +7351,16 @@ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" }, "globby": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.1.tgz", - "integrity": "sha512-sSs4inE1FB2YQiymcmTv6NWENryABjUNPeWhOvmn4SjtKybglsyPZxFB3U1/+L1bYi0rNZDqCLlHyLYDl1Pq5A==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.0.tgz", + "integrity": "sha512-iuehFnR3xu5wBBtm4xi0dMe92Ob87ufyu/dHwpDYfbcpYpIbrO5OnS8M1vWvrBhSGEJ3/Ecj7gnX76P8YxpPEg==", "dev": true, "requires": { - "@types/glob": "^7.1.1", "array-union": "^2.1.0", "dir-glob": "^3.0.1", - "fast-glob": "^3.0.3", - "glob": "^7.1.3", - "ignore": "^5.1.1", - "merge2": "^1.2.3", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", "slash": "^3.0.0" }, "dependencies": { @@ -7613,14 +7390,6 @@ "glob-parent": "^5.1.0", "merge2": "^1.3.0", "micromatch": "^4.0.2" - }, - "dependencies": { - "merge2": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.3.0.tgz", - "integrity": "sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw==", - "dev": true - } } }, "fill-range": { @@ -7647,6 +7416,12 @@ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, + "merge2": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.3.0.tgz", + "integrity": "sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw==", + "dev": true + }, "micromatch": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", @@ -7683,6 +7458,26 @@ "unicode-trie": "^0.3.1" } }, + "handlebars": { + "version": "4.7.3", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.3.tgz", + "integrity": "sha512-SRGwSYuNfx8DwHD/6InAPzD6RgeruWLT+B8e8a7gGs8FWgHzlExpTFMEq2IA6QpAfOClpKHy6+8IqTjeBCu6Kg==", + "dev": true, + "requires": { + "neo-async": "^2.6.0", + "optimist": "^0.6.1", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, "har-schema": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", @@ -7820,10 +7615,13 @@ "dev": true }, "hosted-git-info": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", - "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", - "dev": true + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.2.tgz", + "integrity": "sha512-ezZMWtHXm7Eb7Rq4Mwnx2vs79WUx2QmRg3+ZqeGroKzfDO+EprOcgRPYghsOP9JuYBfK18VojmRTGCg8Ma+ktw==", + "dev": true, + "requires": { + "lru-cache": "^5.1.1" + } }, "hsl-regex": { "version": "1.0.0", @@ -7959,24 +7757,13 @@ } }, "http-proxy-agent": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", - "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.0.tgz", + "integrity": "sha512-GX0FA6+IcDf4Oxc/FBWgYj4zKgo/DnZrksaG9jyuQLExs6xlX+uI5lcA8ymM3JaZTRrF/4s2UX19wJolyo7OBA==", "dev": true, "requires": { - "agent-base": "4", - "debug": "3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } + "agent-base": "6", + "debug": "4" } }, "http-signature": { @@ -7996,30 +7783,13 @@ "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" }, "https-proxy-agent": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-3.0.1.tgz", - "integrity": "sha512-+ML2Rbh6DAuee7d07tYGEKOEi2voWPUGan+ExdPbPW6Z3svq+JCqr0v8WmKPOkz1vOVykPCBSuobe7G8GJUtVg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", "dev": true, "requires": { - "agent-base": "^4.3.0", - "debug": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } + "agent-base": "6", + "debug": "4" } }, "human-signals": { @@ -8078,14 +7848,6 @@ "dev": true, "requires": { "resolve-from": "^5.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - } } }, "imurmurhash": { @@ -8159,14 +7921,6 @@ "requires": { "from2": "^2.3.0", "p-is-promise": "^3.0.0" - }, - "dependencies": { - "p-is-promise": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-3.0.0.tgz", - "integrity": "sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==", - "dev": true - } } }, "invariant": { @@ -8503,9 +8257,9 @@ "dev": true }, "issue-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/issue-parser/-/issue-parser-5.0.0.tgz", - "integrity": "sha512-q/16W7EPHRL0FKVz9NU++TUsoygXGj6JOi88oulyAcQG+IEZ0T6teVdE+VLbe19OfL/tbV8Wi3Dfo0HedeHW0Q==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/issue-parser/-/issue-parser-6.0.0.tgz", + "integrity": "sha512-zKa/Dxq2lGsBIXQ7CUZWTHfvxPC2ej0KfO7fIPqLlHB9J2hJ7rGhZ5rilhuufylr4RXYPzJUeFjKxz305OsNlA==", "dev": true, "requires": { "lodash.capitalize": "^4.2.1", @@ -9199,6 +8953,16 @@ } } }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, "lodash": { "version": "4.17.15", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", @@ -9414,6 +9178,15 @@ "signal-exit": "^3.0.0" } }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, "macos-release": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.3.0.tgz", @@ -9472,29 +9245,88 @@ } }, "marked": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-0.7.0.tgz", - "integrity": "sha512-c+yYdCZJQrsRjTPhUx7VKkApw9bwDkNbHUKo1ovgcfDjb2kc8rLuRbIFyXL5WOEUwzSSKo3IXpph2K6DqB/KZg==", + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.8.0.tgz", + "integrity": "sha512-MyUe+T/Pw4TZufHkzAfDj6HarCBWia2y27/bhuYkTaiUnfDYFnCP3KUN+9oM7Wi6JA2rymtVYbQu3spE0GCmxQ==", "dev": true }, "marked-terminal": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-3.3.0.tgz", - "integrity": "sha512-+IUQJ5VlZoAFsM5MHNT7g3RHSkA3eETqhRCdXv4niUMAKHQ7lb1yvAcuGPmm4soxhmtX13u4Li6ZToXtvSEH+A==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-4.0.0.tgz", + "integrity": "sha512-mzU3VD7aVz12FfGoKFAceijehA6Ocjfg3rVimvJbFAB/NOYCsuzRVtq3PSFdPmWI5mhdGeEh3/aMJ5DSxAz94Q==", "dev": true, "requires": { - "ansi-escapes": "^3.1.0", + "ansi-escapes": "^4.3.0", "cardinal": "^2.1.1", - "chalk": "^2.4.1", + "chalk": "^3.0.0", "cli-table": "^0.3.1", - "node-emoji": "^1.4.1", - "supports-hyperlinks": "^1.0.1" + "node-emoji": "^1.10.0", + "supports-hyperlinks": "^2.0.0" }, "dependencies": { "ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.0.tgz", + "integrity": "sha512-EiYhwo0v255HUL6eDyuLrXEkTi7WwVCLAw+SeOQ7M7qdun1z1pum4DEm/nuqIVbPvi9RPPc9k9LbyBv6H0DwVg==", + "dev": true, + "requires": { + "type-fest": "^0.8.1" + } + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true } } @@ -9544,49 +9376,6 @@ "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", "dev": true }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, "read-pkg-up": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", @@ -9945,6 +9734,14 @@ "resolve": "^1.10.0", "semver": "2 || 3 || 4 || 5", "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "hosted-git-info": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.5.tgz", + "integrity": "sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg==", + "dev": true + } } }, "normalize-path": { @@ -9959,9 +9756,9 @@ "dev": true }, "npm": { - "version": "6.13.4", - "resolved": "https://registry.npmjs.org/npm/-/npm-6.13.4.tgz", - "integrity": "sha512-vTcUL4SCg3AzwInWTbqg1OIaOXlzKSS8Mb8kc5avwrJpcvevDA5J9BhYSuei+fNs3pwOp4lzA5x2FVDXACvoXA==", + "version": "6.13.7", + "resolved": "https://registry.npmjs.org/npm/-/npm-6.13.7.tgz", + "integrity": "sha512-X967EKTT407CvgrWFjXusnPh0VLERcmR9hZFSVgkEquOomZkvpwLJ5zrQ3qrG9SpPLKJE4bPLUu76exKQ4a3Cg==", "dev": true, "requires": { "JSONStream": "^1.3.5", @@ -9970,7 +9767,7 @@ "ansistyles": "~0.1.3", "aproba": "^2.0.0", "archy": "~1.0.0", - "bin-links": "^1.1.6", + "bin-links": "^1.1.7", "bluebird": "^3.5.5", "byte-size": "^5.0.1", "cacache": "^12.0.3", @@ -10013,7 +9810,7 @@ "libnpmorg": "^1.0.1", "libnpmsearch": "^2.0.2", "libnpmteam": "^1.0.2", - "libnpx": "^10.2.0", + "libnpx": "^10.2.2", "lock-verify": "^2.1.0", "lockfile": "^1.0.4", "lodash._baseindexof": "*", @@ -10032,7 +9829,7 @@ "mississippi": "^3.0.0", "mkdirp": "~0.5.1", "move-concurrently": "^1.0.1", - "node-gyp": "^5.0.5", + "node-gyp": "^5.0.7", "nopt": "~4.0.1", "normalize-package-data": "^2.5.0", "npm-audit-report": "^1.3.2", @@ -10049,7 +9846,7 @@ "once": "~1.4.0", "opener": "^1.5.1", "osenv": "^0.1.5", - "pacote": "^9.5.11", + "pacote": "^9.5.12", "path-is-inside": "~1.0.2", "promise-inflight": "~1.0.1", "qrcode-terminal": "^0.12.0", @@ -10252,7 +10049,7 @@ } }, "bin-links": { - "version": "1.1.6", + "version": "1.1.7", "bundled": true, "dev": true, "requires": { @@ -10805,7 +10602,7 @@ } }, "env-paths": { - "version": "1.0.0", + "version": "2.2.0", "bundled": true, "dev": true }, @@ -11149,7 +10946,7 @@ } }, "get-caller-file": { - "version": "1.0.2", + "version": "1.0.3", "bundled": true, "dev": true }, @@ -11374,7 +11171,7 @@ } }, "invert-kv": { - "version": "1.0.0", + "version": "2.0.0", "bundled": true, "dev": true }, @@ -11563,11 +11360,11 @@ "dev": true }, "lcid": { - "version": "1.0.0", + "version": "2.0.0", "bundled": true, "dev": true, "requires": { - "invert-kv": "^1.0.0" + "invert-kv": "^2.0.0" } }, "libcipm": { @@ -11740,7 +11537,7 @@ } }, "libnpx": { - "version": "10.2.0", + "version": "10.2.2", "bundled": true, "dev": true, "requires": { @@ -11891,17 +11688,34 @@ "ssri": "^6.0.0" } }, + "map-age-cleaner": { + "version": "0.1.3", + "bundled": true, + "dev": true, + "requires": { + "p-defer": "^1.0.0" + } + }, "meant": { "version": "1.0.1", "bundled": true, "dev": true }, "mem": { - "version": "1.1.0", + "version": "4.3.0", "bundled": true, "dev": true, "requires": { - "mimic-fn": "^1.0.0" + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^2.0.0", + "p-is-promise": "^2.0.0" + }, + "dependencies": { + "mimic-fn": { + "version": "2.1.0", + "bundled": true, + "dev": true + } } }, "mime-db": { @@ -11917,11 +11731,6 @@ "mime-db": "~1.35.0" } }, - "mimic-fn": { - "version": "1.2.0", - "bundled": true, - "dev": true - }, "minimatch": { "version": "3.0.4", "bundled": true, @@ -12009,6 +11818,11 @@ "bundled": true, "dev": true }, + "nice-try": { + "version": "1.0.5", + "bundled": true, + "dev": true + }, "node-fetch-npm": { "version": "2.0.2", "bundled": true, @@ -12020,36 +11834,21 @@ } }, "node-gyp": { - "version": "5.0.5", + "version": "5.0.7", "bundled": true, "dev": true, "requires": { - "env-paths": "^1.0.0", - "glob": "^7.0.3", - "graceful-fs": "^4.1.2", - "mkdirp": "^0.5.0", - "nopt": "2 || 3", - "npmlog": "0 || 1 || 2 || 3 || 4", - "request": "^2.87.0", - "rimraf": "2", - "semver": "~5.3.0", + "env-paths": "^2.2.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.2", + "mkdirp": "^0.5.1", + "nopt": "^4.0.1", + "npmlog": "^4.1.2", + "request": "^2.88.0", + "rimraf": "^2.6.3", + "semver": "^5.7.1", "tar": "^4.4.12", - "which": "1" - }, - "dependencies": { - "nopt": { - "version": "3.0.6", - "bundled": true, - "dev": true, - "requires": { - "abbrev": "1" - } - }, - "semver": { - "version": "5.3.0", - "bundled": true, - "dev": true - } + "which": "^1.3.1" } }, "nopt": { @@ -12270,13 +12069,41 @@ "dev": true }, "os-locale": { - "version": "2.1.0", + "version": "3.1.0", "bundled": true, "dev": true, "requires": { - "execa": "^0.7.0", - "lcid": "^1.0.0", - "mem": "^1.1.0" + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "6.0.5", + "bundled": true, + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "execa": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + } } }, "os-tmpdir": { @@ -12293,11 +12120,21 @@ "os-tmpdir": "^1.0.0" } }, + "p-defer": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, "p-finally": { "version": "1.0.0", "bundled": true, "dev": true }, + "p-is-promise": { + "version": "2.1.0", + "bundled": true, + "dev": true + }, "p-limit": { "version": "1.2.0", "bundled": true, @@ -12331,7 +12168,7 @@ } }, "pacote": { - "version": "9.5.11", + "version": "9.5.12", "bundled": true, "dev": true, "requires": { @@ -13414,7 +13251,7 @@ "dev": true }, "yargs": { - "version": "11.0.0", + "version": "11.1.1", "bundled": true, "dev": true, "requires": { @@ -13422,7 +13259,7 @@ "decamelize": "^1.1.1", "find-up": "^2.1.0", "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", + "os-locale": "^3.1.0", "require-directory": "^2.1.1", "require-main-filename": "^1.0.1", "set-blocking": "^2.0.0", @@ -13933,6 +13770,12 @@ "shell-quote": "^1.4.2" } }, + "p-each-series": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.1.0.tgz", + "integrity": "sha512-ZuRs1miPT4HrjFa+9fRfOFXxGJfORgelKV9f9nNOWw2gl6gVsRaVDOQP0+MI0G0wGKns1Yacsu0GjOFbTK0JFQ==", + "dev": true + }, "p-filter": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-2.1.0.tgz", @@ -13956,6 +13799,12 @@ "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", "dev": true }, + "p-is-promise": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-3.0.0.tgz", + "integrity": "sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==", + "dev": true + }, "p-limit": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", @@ -13965,6 +13814,32 @@ "p-try": "^2.0.0" } }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + }, + "dependencies": { + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + } + } + }, "p-map": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", @@ -14257,9 +14132,9 @@ "dev": true }, "picomatch": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.1.1.tgz", - "integrity": "sha512-OYMyqkKzK7blWO/+XZYP6w8hH0LDvkBvdvKukti+7kqYFCiEAk+gI3DWnryapc0Dau05ugGTy0foQ6mqn4AHYA==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.1.tgz", + "integrity": "sha512-ISBaA8xQNmwELC7eOjqFKMESB2VIqt4PPDD0nsS95b/9dZXvVKOlz9keMSnoGGKcOHXfTvDD6WMaRoSc9UuhRA==", "dev": true }, "pify": { @@ -14276,51 +14151,6 @@ "requires": { "find-up": "^2.0.0", "load-json-file": "^4.0.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - } } }, "pkg-dir": { @@ -15116,6 +14946,91 @@ "path-type": "^3.0.0" } }, + "read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "requires": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "parse-json": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz", + "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1", + "lines-and-columns": "^1.1.6" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true + } + } + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true + } + } + }, "readable-stream": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", @@ -15216,13 +15131,12 @@ } }, "registry-auth-token": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.0.0.tgz", - "integrity": "sha512-lpQkHxd9UL6tb3k/aHAVfnVtn+Bcs9ob5InuFLLEDqSqeq+AljB8GZW9xY0x7F+xYwEcjKe07nyoxzEYz6yvkw==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.1.1.tgz", + "integrity": "sha512-9bKS7nTl9+/A1s7tnPeGrUpRcVY+LUh7bfFgzpndALdPfXQBfQV77rQVtqgUV3ti4vc/Ik81Ex8UJDWDQ12zQA==", "dev": true, "requires": { - "rc": "^1.2.8", - "safe-buffer": "^5.0.1" + "rc": "^1.2.8" } }, "regjsgen": { @@ -15464,21 +15378,21 @@ } }, "semantic-release": { - "version": "15.14.0", - "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-15.14.0.tgz", - "integrity": "sha512-Cn43W35AOLY0RMcDbtwhJODJmWg6YCs1+R5jRQsTmmkEGzkV4B2F/QXkjVZpl4UbH91r93GGH0xhoq9kh7I5PA==", + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-17.0.2.tgz", + "integrity": "sha512-f2466mNS/TpY32Jvoqgu3ricIDX/TRZXuthcyJo3ZIfdI14uMfiOu5R2dFKnPwgJh4wa9/2ckL44AFmIXAhiyg==", "dev": true, "requires": { - "@semantic-release/commit-analyzer": "^6.1.0", + "@semantic-release/commit-analyzer": "^8.0.0", "@semantic-release/error": "^2.2.0", - "@semantic-release/github": "^5.1.0", - "@semantic-release/npm": "^5.0.5", - "@semantic-release/release-notes-generator": "^7.1.2", + "@semantic-release/github": "^7.0.0", + "@semantic-release/npm": "^7.0.0", + "@semantic-release/release-notes-generator": "^9.0.0", "aggregate-error": "^3.0.0", "cosmiconfig": "^6.0.0", "debug": "^4.0.0", - "env-ci": "^4.0.0", - "execa": "^3.2.0", + "env-ci": "^5.0.0", + "execa": "^4.0.0", "figures": "^3.0.0", "find-versions": "^3.0.0", "get-stream": "^5.0.0", @@ -15486,105 +15400,39 @@ "hook-std": "^2.0.0", "hosted-git-info": "^3.0.0", "lodash": "^4.17.15", - "marked": "^0.7.0", - "marked-terminal": "^3.2.0", - "p-locate": "^4.0.0", + "marked": "^0.8.0", + "marked-terminal": "^4.0.0", + "micromatch": "^4.0.2", + "p-each-series": "^2.1.0", "p-reduce": "^2.0.0", "read-pkg-up": "^7.0.0", "resolve-from": "^5.0.0", - "semver": "^6.0.0", + "semver": "^7.1.1", + "semver-diff": "^3.1.1", "signale": "^1.2.1", "yargs": "^15.0.1" }, "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "ansi-styles": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.0.tgz", - "integrity": "sha512-7kFQgnEaMdRtwf6uSfUnVr9gSGC7faurn+J/Mv90/W+iTtN0405/nLdopfMWwchyxhbGYl6TC4Sccn9TUkGAgg==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, "requires": { - "color-name": "~1.1.4" + "fill-range": "^7.0.1" } }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "cosmiconfig": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", - "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", - "dev": true, - "requires": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.7.2" - } - }, - "cross-spawn": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.1.tgz", - "integrity": "sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "execa": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-3.4.0.tgz", - "integrity": "sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", "dev": true, "requires": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "p-finally": "^2.0.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" } }, "figures": { @@ -15596,23 +15444,13 @@ "escape-string-regexp": "^1.0.5" } }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "hosted-git-info": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.2.tgz", - "integrity": "sha512-ezZMWtHXm7Eb7Rq4Mwnx2vs79WUx2QmRg3+ZqeGroKzfDO+EprOcgRPYghsOP9JuYBfK18VojmRTGCg8Ma+ktw==", + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, "requires": { - "lru-cache": "^5.1.1" + "to-regex-range": "^5.0.1" } }, "import-fresh": { @@ -15633,67 +15471,20 @@ } } }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", - "dev": true - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "requires": { - "yallist": "^3.0.2" - } - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - }, - "onetime": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", - "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "p-finally": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz", - "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==", + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", "dev": true, "requires": { - "p-limit": "^2.2.0" + "braces": "^3.0.1", + "picomatch": "^2.0.5" } }, "parse-json": { @@ -15708,161 +15499,25 @@ "lines-and-columns": "^1.1.6" } }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, "path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true }, - "read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "dev": true, - "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "dependencies": { - "type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true - } - } - }, - "read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "requires": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - } - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - }, "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "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" - } - }, - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.2.tgz", + "integrity": "sha512-BJs9T/H8sEVHbeigqzIEo57Iu/3DG6c4QoqTfbQB3BPA4zgzAomh/Fk9E7QtjWQ8mx2dgA9YCfSF4y9k9bHNpQ==", "dev": true }, - "yargs": { - "version": "15.0.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.0.2.tgz", - "integrity": "sha512-GH/X/hYt+x5hOat4LMnCqMd8r5Cv78heOMIJn1hr7QPPBqfeC6p89Y78+WB9yGDvfpCvgasfmWLzNzEioOUD9Q==", - "dev": true, - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^16.1.0" - } - }, - "yargs-parser": { - "version": "16.1.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-16.1.0.tgz", - "integrity": "sha512-H/V41UNZQPkUMIT5h5hiwg4QKIY1RPvoBV4XcjUbRM8Bk2oKqqyZ0DIEbTFZB0XjbtSPG8SAa/0DxCQmiRgzKg==", + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" + "is-number": "^7.0.0" } } } @@ -15872,6 +15527,23 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==" }, + "semver-diff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", + "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", + "dev": true, + "requires": { + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, "semver-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-2.0.0.tgz", @@ -16306,9 +15978,9 @@ } }, "spdx-license-ids": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.4.tgz", - "integrity": "sha512-7j8LYJLeY/Yb6ACbQ7F76qy5jHkp0U6jgBfJsk97bwWlVUnUWsAgpyaCvo17h0/RQGnQ036tVDomiwoI4pDkQA==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", + "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", "dev": true }, "split": { @@ -16710,20 +16382,29 @@ } }, "supports-hyperlinks": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-1.0.1.tgz", - "integrity": "sha512-HHi5kVSefKaJkGYXbDuKbUGRVxqnWGn3J2e39CYcNJEfWciGq2zYtOhXLTlvrOZW1QU7VX67w7fMmWafHX9Pfw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz", + "integrity": "sha512-zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA==", "dev": true, "requires": { - "has-flag": "^2.0.0", - "supports-color": "^5.0.0" + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" }, "dependencies": { "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, @@ -17072,20 +16753,20 @@ } }, "uglify-js": { - "version": "3.5.12", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.5.12.tgz", - "integrity": "sha512-KeQesOpPiZNgVwJj8Ge3P4JYbQHUdZzpx6Fahy6eKAYRSV4zhVmLXoC+JtOeYxcHCHTve8RG1ZGdTvpeOUM26Q==", + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.7.7.tgz", + "integrity": "sha512-FeSU+hi7ULYy6mn8PKio/tXsdSXN35lm4KgV2asx00kzrLU9Pi3oAslcJT70Jdj7PHX29gGUPOT6+lXGBbemhA==", "dev": true, "optional": true, "requires": { - "commander": "~2.20.0", + "commander": "~2.20.3", "source-map": "~0.6.1" }, "dependencies": { "commander": { - "version": "2.20.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", - "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==", + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true, "optional": true }, @@ -17759,6 +17440,12 @@ "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", "dev": true }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, "yaml": { "version": "1.7.2", "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.7.2.tgz", @@ -17769,9 +17456,9 @@ }, "dependencies": { "@babel/runtime": { - "version": "7.7.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.7.7.tgz", - "integrity": "sha512-uCnC2JEVAu8AKB5do1WRIsvrdJ0flYx/A/9f/6chdacnEZ7LmavjdsDXr5ksYBegxtuTPR5Va9/+13QF/kFkCA==", + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.8.4.tgz", + "integrity": "sha512-neAp3zt80trRVBI1x0azq6c57aNBqYZH8KhMm3TaB7wEI5Q4A2SHfBHE8w9gOhI/lrqxtEbXZgQIrHP+wvSGwQ==", "dev": true, "requires": { "regenerator-runtime": "^0.13.2" diff --git a/package.json b/package.json index 419e81b29..489be05cb 100644 --- a/package.json +++ b/package.json @@ -62,7 +62,7 @@ "nyc": "15.0.0", "parcel-bundler": "1.12.4", "prettier": "1.19.1", - "semantic-release": "15.14.0", + "semantic-release": "17.0.2", "start-server-and-test": "1.10.8" } } From e136a162b94ae30278170662e90654ad13b8dff2 Mon Sep 17 00:00:00 2001 From: Gleb Bahmutov Date: Tue, 11 Feb 2020 11:42:15 -0500 Subject: [PATCH 10/85] fix: increase report timeout to 3 minutes (#135) --- support.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/support.js b/support.js index 20247a4d5..03b45a030 100644 --- a/support.js +++ b/support.js @@ -140,6 +140,8 @@ if (Cypress.env('coverage') === false) { after(function generateReport() { // when all tests finish, lets generate the coverage report - cy.task('coverageReport') + cy.task('coverageReport', { + timeout: Cypress.moment.duration(3, 'minutes').asMilliseconds() + }) }) } From d4f1d755ec1fd693c766b30a5dbd45f7db0f5e2f Mon Sep 17 00:00:00 2001 From: Gleb Bahmutov Date: Wed, 12 Feb 2020 09:23:14 -0500 Subject: [PATCH 11/85] chore: validate urls in Markdown files (#136) * validate urls in Markdown files * only run npm publish job on master branch * simpler find command * move branches to workflow section * for the right job --- .circleci/config.yml | 9 ++++- README.md | 10 ++++- package-lock.json | 93 ++++++++++++++++++++++++++++++++++++++++++++ package.json | 4 +- 4 files changed, 113 insertions(+), 3 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 8d523b0a0..df823255e 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,3 +1,4 @@ +# https://circleci.com/docs/2.0/configuration-reference/ version: 2.1 orbs: cypress: cypress-io/cypress@1.13.0 # used to run e2e tests @@ -18,7 +19,9 @@ jobs: workflows: build: jobs: - - cypress/install + - cypress/install: + post-steps: + - run: npm run check:markdown - cypress/run: name: frontend coverage requires: @@ -66,6 +69,10 @@ workflows: - run: npx nyc report --check-coverage true --lines 100 --include test-backend/index.js - publish: + filters: + branches: + only: + - master requires: - frontend coverage - backend coverage diff --git a/README.md b/README.md index ff8cc90c0..dbd31b2f9 100644 --- a/README.md +++ b/README.md @@ -319,9 +319,17 @@ npx nyc report --check-coverage true --lines 100 --include cypress/about.js npx nyc report --check-coverage true --lines 100 --include cypress/unit.js ``` +### Markdown + +You can validate links in Markdown files in this directory by executing (Linux + Mac only) script + +```shell +npm run check:markdown +``` + ## License -This project is licensed under the terms of the [MIT license](/LICENSE.md). +This project is licensed under the terms of the [MIT license](LICENSE.md). [renovate-badge]: https://img.shields.io/badge/renovate-app-blue.svg [renovate-app]: https://renovateapp.com/ diff --git a/package-lock.json b/package-lock.json index 951fc927e..596c84eff 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8173,6 +8173,23 @@ "has": "^1.0.1" } }, + "is-relative-url": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-relative-url/-/is-relative-url-3.0.0.tgz", + "integrity": "sha512-U1iSYRlY2GIMGuZx7gezlB5dp1Kheaym7zKzO1PV06mOihiWTXejLwm4poEJysPyXF+HtK/BEd0DVlcCh30pEA==", + "dev": true, + "requires": { + "is-absolute-url": "^3.0.0" + }, + "dependencies": { + "is-absolute-url": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", + "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", + "dev": true + } + } + }, "is-resolvable": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", @@ -8240,6 +8257,15 @@ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, + "isemail": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/isemail/-/isemail-3.2.0.tgz", + "integrity": "sha512-zKqkK+O+dGqevc93KNsbZ/TqTUFd46MwWjYOoMrjIMZ51eU7DtQG3Wmd9SQQT7i7RVnuTPEiYEWHU3MSbxC1Tg==", + "dev": true, + "requires": { + "punycode": "2.x.x" + } + }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", @@ -8807,6 +8833,26 @@ "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", "dev": true }, + "link-check": { + "version": "4.4.7", + "resolved": "https://registry.npmjs.org/link-check/-/link-check-4.4.7.tgz", + "integrity": "sha512-E5MJf3+4OiHJzqDw9CQpOeJT3yOoKUxLHVaPPzNPXvaYPJ20C5MRzk1lPoojWnf5xwoRZjK+ydzfq2kPTwJr/g==", + "dev": true, + "requires": { + "is-relative-url": "^3.0.0", + "isemail": "^3.2.0", + "ms": "^2.1.2", + "request": "^2.88.0" + }, + "dependencies": { + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, "listr": { "version": "0.14.3", "resolved": "https://registry.npmjs.org/listr/-/listr-0.14.3.tgz", @@ -9244,6 +9290,47 @@ "object-visit": "^1.0.0" } }, + "markdown-link-check": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/markdown-link-check/-/markdown-link-check-3.8.0.tgz", + "integrity": "sha512-tpBlUsnJfJ5xMHAjBC/10s8Un/WT/FmF+xXaZjeaegESmjcPlEcxZ+UuCtxArETovLS5gZ8lZXzdhgslHziLsg==", + "dev": true, + "requires": { + "async": "^3.1.0", + "chalk": "^2.4.2", + "commander": "^3.0.2", + "link-check": "^4.4.6", + "lodash": "^4.17.15", + "markdown-link-extractor": "^1.2.2", + "progress": "^2.0.3", + "request": "^2.88.0" + }, + "dependencies": { + "commander": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", + "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==", + "dev": true + } + } + }, + "markdown-link-extractor": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/markdown-link-extractor/-/markdown-link-extractor-1.2.2.tgz", + "integrity": "sha512-VYDUhlC70hKl0coCY6dXyJ4OCRAX5dTh0/oSTdidhYS7dYIJ9kYAez6KR0vc3HWySMuo564J1rN0NOAPBDI0iA==", + "dev": true, + "requires": { + "marked": "^0.7.0" + }, + "dependencies": { + "marked": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.7.0.tgz", + "integrity": "sha512-c+yYdCZJQrsRjTPhUx7VKkApw9bwDkNbHUKo1ovgcfDjb2kc8rLuRbIFyXL5WOEUwzSSKo3IXpph2K6DqB/KZg==", + "dev": true + } + } + }, "marked": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/marked/-/marked-0.8.0.tgz", @@ -14767,6 +14854,12 @@ "fromentries": "^1.2.0" } }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true + }, "proxy-addr": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz", diff --git a/package.json b/package.json index 489be05cb..323dea579 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,8 @@ "format": "prettier --write '*.js'", "start:test:backend": "nyc --silent node test-backend", "cy:backend": "cypress open --config-file cypress-backend.json", - "dev:backend": "start-test start:test:backend 3003 cy:backend" + "dev:backend": "start-test start:test:backend 3003 cy:backend", + "check:markdown": "find *.md -exec npx markdown-link-check {} \\;" }, "peerDependencies": { "cypress": "*", @@ -59,6 +60,7 @@ "express": "4.17.1", "istanbul-lib-coverage": "3.0.0", "lodash": "4.17.15", + "markdown-link-check": "3.8.0", "nyc": "15.0.0", "parcel-bundler": "1.12.4", "prettier": "1.19.1", From 9195cd9f988c0bc70c1696260efecaab56436a1d Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sat, 15 Feb 2020 05:06:14 +0000 Subject: [PATCH 12/85] chore(deps): update dependency cypress to v4.0.2 --- package-lock.json | 6 +++--- package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 596c84eff..81cf8e001 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5254,9 +5254,9 @@ } }, "cypress": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-4.0.1.tgz", - "integrity": "sha512-P+cSwc5yE+1hIkWwJzpsiSQthKmzkFeFz2ySejSrJJ6FiXoL8pp0vr1cyWp+75KT4nqL9IYt1GMrHp+mVmvocA==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-4.0.2.tgz", + "integrity": "sha512-WRzxOoSd+TxyXKa7Zi9orz3ii5VW7yhhVYstCU+EpOKfPan9x5Ww2Clucmy4H/W0GHUYAo7GYFZRD33ZCSNBQA==", "dev": true, "requires": { "@cypress/listr-verbose-renderer": "0.4.1", diff --git a/package.json b/package.json index 323dea579..a52bea95a 100644 --- a/package.json +++ b/package.json @@ -56,7 +56,7 @@ "devDependencies": { "@babel/core": "7.8.4", "babel-plugin-istanbul": "6.0.0", - "cypress": "4.0.1", + "cypress": "4.0.2", "express": "4.17.1", "istanbul-lib-coverage": "3.0.0", "lodash": "4.17.15", From 5c1bcdb15d98e3dca3035d837854e656a1991ef2 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sat, 15 Feb 2020 06:07:04 +0000 Subject: [PATCH 13/85] chore(deps): update dependency semantic-release to v17.0.3 --- package-lock.json | 133 ++++++++++++++++------------------------------ package.json | 2 +- 2 files changed, 46 insertions(+), 89 deletions(-) diff --git a/package-lock.json b/package-lock.json index 81cf8e001..c94bc00e2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3140,23 +3140,6 @@ "url-join": "^4.0.0" }, "dependencies": { - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "graceful-fs": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", - "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", - "dev": true - }, "mime": { "version": "2.4.4", "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", @@ -3166,9 +3149,9 @@ } }, "@semantic-release/npm": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-7.0.2.tgz", - "integrity": "sha512-lugR8jvP81tDb5lmmRL7khntSIew9jsGrNac4ec381mU+CsuBbaKgpvOMEYys0QC0CXrN4yU8Ltpq+RQD5Mc+g==", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-7.0.3.tgz", + "integrity": "sha512-3wOXMtAdJkaAnW5183iSmWSimtUmOx7m6g/DWPYRs2Gq6iyB+ztMmhgwbn6luNcM9t6pGbgHvRPEXpWkygMxCA==", "dev": true, "requires": { "@semantic-release/error": "^2.2.0", @@ -3183,26 +3166,9 @@ "read-pkg": "^5.0.0", "registry-auth-token": "^4.0.0", "semver": "^7.1.2", - "tempy": "^0.3.0" + "tempy": "^0.4.0" }, "dependencies": { - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "graceful-fs": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", - "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", - "dev": true - }, "normalize-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-5.0.0.tgz", @@ -3234,9 +3200,9 @@ } }, "semver": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.2.tgz", - "integrity": "sha512-BJs9T/H8sEVHbeigqzIEo57Iu/3DG6c4QoqTfbQB3BPA4zgzAomh/Fk9E7QtjWQ8mx2dgA9YCfSF4y9k9bHNpQ==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.3.tgz", + "integrity": "sha512-ekM0zfiA9SCBlsKa2X1hxyxiI4L3B6EbVJkkdgQXnSEEaHlGdvyodMruTiulSRWMMB4NeIuYNMC9rTKTz97GxA==", "dev": true } } @@ -3259,6 +3225,12 @@ "read-pkg-up": "^7.0.0" } }, + "@tootallnate/once": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.0.0.tgz", + "integrity": "sha512-KYyTT/T6ALPkIRd2Ge080X/BsXvy9O0hcWTtMWkPvwAwF99+vn6Dv4GzrFT/Nn1LePr+FFDbRXXlqmsy9lw2zA==", + "dev": true + }, "@types/color-name": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", @@ -3266,9 +3238,9 @@ "dev": true }, "@types/node": { - "version": "13.7.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-13.7.0.tgz", - "integrity": "sha512-GnZbirvmqZUzMgkFn70c74OQpTTUcCzlhQliTzYjQMqg+hVKcDnxdL19Ne3UdYzdMA/+W3eb646FWn/ZaT1NfQ==", + "version": "13.7.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-13.7.1.tgz", + "integrity": "sha512-Zq8gcQGmn4txQEJeiXo/KiLpon8TzAl0kmKH4zdWctPj05nWwp1ClMdAVEloqrQKfaC48PNLdgN/aVaLqUrluA==", "dev": true }, "@types/normalize-package-data": { @@ -4950,9 +4922,9 @@ } }, "crypto-random-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", - "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", "dev": true }, "css-color-names": { @@ -7757,11 +7729,12 @@ } }, "http-proxy-agent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.0.tgz", - "integrity": "sha512-GX0FA6+IcDf4Oxc/FBWgYj4zKgo/DnZrksaG9jyuQLExs6xlX+uI5lcA8ymM3JaZTRrF/4s2UX19wJolyo7OBA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", "dev": true, "requires": { + "@tootallnate/once": "1", "agent-base": "6", "debug": "4" } @@ -13870,14 +13843,6 @@ "dev": true, "requires": { "p-map": "^2.0.0" - }, - "dependencies": { - "p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", - "dev": true - } } }, "p-finally": { @@ -15156,14 +15121,6 @@ "requires": { "indent-string": "^3.0.0", "strip-indent": "^2.0.0" - }, - "dependencies": { - "indent-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", - "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", - "dev": true - } } }, "redeyed": { @@ -15471,9 +15428,9 @@ } }, "semantic-release": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-17.0.2.tgz", - "integrity": "sha512-f2466mNS/TpY32Jvoqgu3ricIDX/TRZXuthcyJo3ZIfdI14uMfiOu5R2dFKnPwgJh4wa9/2ckL44AFmIXAhiyg==", + "version": "17.0.3", + "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-17.0.3.tgz", + "integrity": "sha512-hOwW6rfC8oRFyIamsW1LACIG6epVGND9ZxFOilKcM72ZgqMAxS+jN2996gCYBJmMizpYRu7orNaEkbd98ppRTg==", "dev": true, "requires": { "@semantic-release/commit-analyzer": "^8.0.0", @@ -15599,9 +15556,9 @@ "dev": true }, "semver": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.2.tgz", - "integrity": "sha512-BJs9T/H8sEVHbeigqzIEo57Iu/3DG6c4QoqTfbQB3BPA4zgzAomh/Fk9E7QtjWQ8mx2dgA9YCfSF4y9k9bHNpQ==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.3.tgz", + "integrity": "sha512-ekM0zfiA9SCBlsKa2X1hxyxiI4L3B6EbVJkkdgQXnSEEaHlGdvyodMruTiulSRWMMB4NeIuYNMC9rTKTz97GxA==", "dev": true }, "to-regex-range": { @@ -16543,26 +16500,26 @@ } }, "temp-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz", - "integrity": "sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", + "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", "dev": true }, "tempy": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.3.0.tgz", - "integrity": "sha512-WrH/pui8YCwmeiAoxV+lpRH9HpRtgBhSR2ViBPgpGb/wnYDzp21R4MN45fsCGvLROvY67o3byhJRYRONJyImVQ==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.4.0.tgz", + "integrity": "sha512-mKnScm8aXv+cG6l1Nzp6mERGgC4UblbPnSDeQp83JgZ7xqDcnl+7u3+6zXnf1UE7YluDUTEIna1iKYwCSaOk9g==", "dev": true, "requires": { - "temp-dir": "^1.0.0", - "type-fest": "^0.3.1", - "unique-string": "^1.0.0" + "temp-dir": "^2.0.0", + "type-fest": "^0.10.0", + "unique-string": "^2.0.0" }, "dependencies": { "type-fest": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", - "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.10.0.tgz", + "integrity": "sha512-EUV9jo4sffrwlg8s0zDhP0T2WD3pru5Xi0+HTE3zTUmBaZNhfkite9PdSJwdXLwPVW0jnAHT56pZHIOYckPEiw==", "dev": true } } @@ -17030,12 +16987,12 @@ "dev": true }, "unique-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", - "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", "dev": true, "requires": { - "crypto-random-string": "^1.0.0" + "crypto-random-string": "^2.0.0" } }, "universal-user-agent": { diff --git a/package.json b/package.json index a52bea95a..dfad9d3e5 100644 --- a/package.json +++ b/package.json @@ -64,7 +64,7 @@ "nyc": "15.0.0", "parcel-bundler": "1.12.4", "prettier": "1.19.1", - "semantic-release": "17.0.2", + "semantic-release": "17.0.3", "start-server-and-test": "1.10.8" } } From 0b6c48416d4b2b0e8a214bee53dc7594b5554d55 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sat, 15 Feb 2020 07:06:02 +0000 Subject: [PATCH 14/85] fix(deps): update dependency @cypress/browserify-preprocessor to v2.1.4 --- package-lock.json | 143 +++++----------------------------------------- package.json | 2 +- 2 files changed, 16 insertions(+), 129 deletions(-) diff --git a/package-lock.json b/package-lock.json index c94bc00e2..ab916b5d6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1417,7 +1417,6 @@ "version": "7.6.0", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.6.0.tgz", "integrity": "sha512-Ma93Ix95PNSEngqomy5LSBMAQvYKVe3dy+JlVJSHEXZR5ASL9lQBedMiCyVtmTLraIDVRE3ZjTZvmXXD2Ozw3g==", - "dev": true, "requires": { "@babel/helper-module-transforms": "^7.4.4", "@babel/helper-plugin-utils": "^7.0.0", @@ -2142,18 +2141,18 @@ } }, "@cypress/browserify-preprocessor": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@cypress/browserify-preprocessor/-/browserify-preprocessor-2.1.3.tgz", - "integrity": "sha512-vZskc/EKejnmdm4fMGB1Fm39WelsF4HJHeI5q8I0LvGnrdvxSiCbn27TbhCM5Enq6Fkinf3f7oiHS/m2OUgzdA==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@cypress/browserify-preprocessor/-/browserify-preprocessor-2.1.4.tgz", + "integrity": "sha512-149D1E2UzY7kCjnXDofx61MeJ6HQczj5XCAPjRUPpYr/A7T/O4C0IlTLZYV2xxnDD68d71NfT/cT8s0sfi27RQ==", "requires": { "@babel/core": "7.4.5", "@babel/plugin-proposal-class-properties": "7.3.0", "@babel/plugin-proposal-object-rest-spread": "7.3.2", - "@babel/plugin-transform-modules-commonjs": "7.8.3", "@babel/plugin-transform-runtime": "7.2.0", "@babel/preset-env": "7.4.5", "@babel/preset-react": "7.0.0", "@babel/runtime": "7.3.1", + "babel-plugin-add-module-exports": "1.0.2", "babelify": "10.0.0", "bluebird": "3.5.3", "browserify": "16.2.3", @@ -2246,108 +2245,6 @@ } } }, - "@babel/helper-module-imports": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz", - "integrity": "sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg==", - "requires": { - "@babel/types": "^7.8.3" - }, - "dependencies": { - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-module-transforms": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.8.3.tgz", - "integrity": "sha512-C7NG6B7vfBa/pwCOshpMbOYUmrYQDfCpVL/JCRu0ek8B5p8kue1+BCXpg2vOYs7w5ACB9GTOBYQ5U6NwrMg+3Q==", - "requires": { - "@babel/helper-module-imports": "^7.8.3", - "@babel/helper-simple-access": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3", - "lodash": "^4.17.13" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", - "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", - "requires": { - "@babel/highlight": "^7.8.3" - } - }, - "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-simple-access": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz", - "integrity": "sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw==", - "requires": { - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", - "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", - "requires": { - "@babel/highlight": "^7.8.3" - } - }, - "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - } - } - }, "@babel/helper-split-export-declaration": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", @@ -2392,24 +2289,6 @@ "@babel/plugin-syntax-object-rest-spread": "^7.2.0" } }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.8.3.tgz", - "integrity": "sha512-JpdMEfA15HZ/1gNuB9XEDlZM1h/gF/YOH7zaZzQu2xCFRfwc01NXBMHHSTT6hRjlXJJs5x/bfODM3LiCk94Sxg==", - "requires": { - "@babel/helper-module-transforms": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-simple-access": "^7.8.3", - "babel-plugin-dynamic-import-node": "^2.3.0" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==" - } - } - }, "@babel/preset-env": { "version": "7.4.5", "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.4.5.tgz", @@ -3338,9 +3217,9 @@ "integrity": "sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ==" }, "acorn-walk": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.0.0.tgz", - "integrity": "sha512-7Bv1We7ZGuU79zZbb6rRqcpxo3OY+zrdtloZWoyD8fmGX+FeXRjE+iuGkZjSXLVovLzrsvMGMy0EkwA0E0umxg==" + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.1.1.tgz", + "integrity": "sha512-wdlPY2tm/9XBr7QkKlq0WQVgiuGTX6YWPyRyBviSoScBuLfTVQhvwg6wJ369GJ/1nPfTLMfnrFIfjqVg6d+jQQ==" }, "xtend": { "version": "4.0.2", @@ -3650,6 +3529,14 @@ "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", "dev": true }, + "babel-plugin-add-module-exports": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/babel-plugin-add-module-exports/-/babel-plugin-add-module-exports-1.0.2.tgz", + "integrity": "sha512-4paN7RivvU3Rzju1vGSHWPjO8Y0rI6droWvSFKI6dvEQ4mvoV0zGojnlzVRfI6N8zISo6VERXt3coIuVmzuvNg==", + "requires": { + "chokidar": "^2.0.4" + } + }, "babel-plugin-dynamic-import-node": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz", diff --git a/package.json b/package.json index dfad9d3e5..8798fe83b 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,7 @@ }, "private": false, "dependencies": { - "@cypress/browserify-preprocessor": "2.1.3", + "@cypress/browserify-preprocessor": "2.1.4", "debug": "4.1.1", "execa": "4.0.0" }, From fffd0d81a6ac9c438f972fe808a462a4227bb89d Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sat, 22 Feb 2020 05:06:28 +0000 Subject: [PATCH 15/85] chore(deps): update dependency semantic-release to v17.0.4 --- package-lock.json | 171 ++++++++++++++++++++++------------------------ package.json | 2 +- 2 files changed, 84 insertions(+), 89 deletions(-) diff --git a/package-lock.json b/package-lock.json index ab916b5d6..0493a1fc3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2669,15 +2669,29 @@ "@octokit/types": "^2.0.0" } }, + "@octokit/core": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-2.4.2.tgz", + "integrity": "sha512-fUx/Qt774cgiPhb3HRKfdl6iufVL/ltECkwkCg373I4lIPYvAPY4cbidVZqyVqHI+ThAIlFlTW8FT4QHChv3Sg==", + "dev": true, + "requires": { + "@octokit/auth-token": "^2.4.0", + "@octokit/graphql": "^4.3.1", + "@octokit/request": "^5.3.1", + "@octokit/types": "^2.0.0", + "before-after-hook": "^2.1.0", + "universal-user-agent": "^5.0.0" + } + }, "@octokit/endpoint": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-5.5.2.tgz", - "integrity": "sha512-ICDcRA0C2vtTZZGud1nXRrBLXZqFayodXAKZfo3dkdcLNqcHsgaz3YSTupbURusYeucSVRjjG+RTcQhx6HPPcg==", + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-5.5.3.tgz", + "integrity": "sha512-EzKwkwcxeegYYah5ukEeAI/gYRLv2Y9U5PpIsseGSFDk+G3RbipQGBs8GuYS1TLCtQaqoO66+aQGtITPalxsNQ==", "dev": true, "requires": { "@octokit/types": "^2.0.0", "is-plain-object": "^3.0.0", - "universal-user-agent": "^4.0.0" + "universal-user-agent": "^5.0.0" }, "dependencies": { "is-plain-object": { @@ -2697,10 +2711,32 @@ } } }, + "@octokit/graphql": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.3.1.tgz", + "integrity": "sha512-hCdTjfvrK+ilU2keAdqNBWOk+gm1kai1ZcdjRfB30oA3/T6n53UVJb7w0L5cR3/rhU91xT3HSqCd+qbvH06yxA==", + "dev": true, + "requires": { + "@octokit/request": "^5.3.0", + "@octokit/types": "^2.0.0", + "universal-user-agent": "^4.0.0" + }, + "dependencies": { + "universal-user-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-4.0.1.tgz", + "integrity": "sha512-LnST3ebHwVL2aNe4mejI9IQh2HfZ1RLo8Io2HugSif8ekzD1TlWpHpColOB/eh8JHMLkGH3Akqf040I+4ylNxg==", + "dev": true, + "requires": { + "os-name": "^3.1.0" + } + } + } + }, "@octokit/plugin-paginate-rest": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-1.1.2.tgz", - "integrity": "sha512-jbsSoi5Q1pj63sC16XIUboklNw+8tL9VOnJsWycWYR78TKss5PVpIPb1TUUcMQ+bBh7cY579cVAWmf5qG+dw+Q==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.0.1.tgz", + "integrity": "sha512-xtW3AQoGDD0un/AkPjIndTdFO+O/My0I15TArvrbJirBCV91R1ElrE3gRcsUJENP3t/vveiQ9C6XQjo9sS2xQg==", "dev": true, "requires": { "@octokit/types": "^2.0.1" @@ -2713,9 +2749,9 @@ "dev": true }, "@octokit/plugin-rest-endpoint-methods": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-2.4.0.tgz", - "integrity": "sha512-EZi/AWhtkdfAYi01obpX0DF7U6b1VRr30QNQ5xSFPITMdLSfhcBqjamE3F+sKcxPbD7eZuMHu3Qkk2V+JGxBDQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-3.2.0.tgz", + "integrity": "sha512-k+RLsegQn4s0wvAFYuk3R18FVKRg3ktvzIGW6MkmrSiSXBwYfaEsv4CuPysyef0DL+74DRj/X9MLJYlbleUO+Q==", "dev": true, "requires": { "@octokit/types": "^2.0.1", @@ -2723,9 +2759,9 @@ } }, "@octokit/request": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.3.1.tgz", - "integrity": "sha512-5/X0AL1ZgoU32fAepTfEoggFinO3rxsMLtzhlUX+RctLrusn/CApJuGFCd0v7GMFhF+8UiCsTTfsu7Fh1HnEJg==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.3.2.tgz", + "integrity": "sha512-7NPJpg19wVQy1cs2xqXjjRq/RmtSomja/VSWnptfYwuBxLdbYh2UjhGi0Wx7B1v5Iw5GKhfFDQL7jM7SSp7K2g==", "dev": true, "requires": { "@octokit/endpoint": "^5.5.0", @@ -2735,7 +2771,7 @@ "is-plain-object": "^3.0.0", "node-fetch": "^2.3.0", "once": "^1.4.0", - "universal-user-agent": "^4.0.0" + "universal-user-agent": "^5.0.0" }, "dependencies": { "is-plain-object": { @@ -2767,33 +2803,21 @@ } }, "@octokit/rest": { - "version": "16.43.1", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-16.43.1.tgz", - "integrity": "sha512-gfFKwRT/wFxq5qlNjnW2dh+qh74XgTQ2B179UX5K1HYCluioWj8Ndbgqw2PVqa1NnVJkGHp2ovMpVn/DImlmkw==", + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-17.0.0.tgz", + "integrity": "sha512-nSlmyy1DBEOsC4voRbk/SN56V/iuZfxZzjFFz+ocb2MAYwHC+z1TyVOMV9W630dVn9ukioJO34VD5NSYwcgFWg==", "dev": true, "requires": { - "@octokit/auth-token": "^2.4.0", - "@octokit/plugin-paginate-rest": "^1.1.1", + "@octokit/core": "^2.4.0", + "@octokit/plugin-paginate-rest": "^2.0.0", "@octokit/plugin-request-log": "^1.0.0", - "@octokit/plugin-rest-endpoint-methods": "2.4.0", - "@octokit/request": "^5.2.0", - "@octokit/request-error": "^1.0.2", - "atob-lite": "^2.0.0", - "before-after-hook": "^2.0.0", - "btoa-lite": "^1.0.0", - "deprecation": "^2.0.0", - "lodash.get": "^4.4.2", - "lodash.set": "^4.3.2", - "lodash.uniq": "^4.5.0", - "octokit-pagination-methods": "^1.1.0", - "once": "^1.4.0", - "universal-user-agent": "^4.0.0" + "@octokit/plugin-rest-endpoint-methods": "^3.0.0" } }, "@octokit/types": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-2.1.1.tgz", - "integrity": "sha512-89LOYH+d/vsbDX785NOfLxTW88GjNd0lWRz1DVPVsZgg9Yett5O+3MOvwo7iHgvUwbFz0mf/yPIjBkUbs4kxoQ==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-2.2.0.tgz", + "integrity": "sha512-iEeW3XlkxeM/CObeoYvbUv24Oe+DldGofY+3QyeJ5XKKA6B+V94ePk14EDCarseWdMs6afKZPv3dFq8C+SY5lw==", "dev": true, "requires": { "@types/node": ">= 8" @@ -2996,12 +3020,12 @@ "dev": true }, "@semantic-release/github": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-7.0.3.tgz", - "integrity": "sha512-4Y2nqruKHsdoayq/H/lMWudONXHLbYtSBDZPktoTrvdJZNQkLhjnxCwDUTKo8G29aI81RuoYKUHv6GSgyJDtGQ==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-7.0.4.tgz", + "integrity": "sha512-qQi41eGIa/tne7T8rvQK+xJNoyadOmd5mVsNZUUqZCVueiUkCItspJ7Mgy5ZWuhwlo28+hKeT/4zJ6MIG6er2Q==", "dev": true, "requires": { - "@octokit/rest": "^16.43.0", + "@octokit/rest": "^17.0.0", "@semantic-release/error": "^2.2.0", "aggregate-error": "^3.0.0", "bottleneck": "^2.18.1", @@ -3117,9 +3141,9 @@ "dev": true }, "@types/node": { - "version": "13.7.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-13.7.1.tgz", - "integrity": "sha512-Zq8gcQGmn4txQEJeiXo/KiLpon8TzAl0kmKH4zdWctPj05nWwp1ClMdAVEloqrQKfaC48PNLdgN/aVaLqUrluA==", + "version": "13.7.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-13.7.4.tgz", + "integrity": "sha512-oVeL12C6gQS/GAExndigSaLxTrKpQPxewx9bOcwfvJiJge4rr7wNaph4J+ns5hrmIV2as5qxqN8YKthn9qh0jw==", "dev": true }, "@types/normalize-package-data": { @@ -3511,12 +3535,6 @@ "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" }, - "atob-lite": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/atob-lite/-/atob-lite-2.0.0.tgz", - "integrity": "sha1-D+9a1G8b16hQLGVyfwNn1e5D1pY=", - "dev": true - }, "aws-sign2": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", @@ -4035,12 +4053,6 @@ "node-releases": "^1.1.19" } }, - "btoa-lite": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/btoa-lite/-/btoa-lite-1.0.0.tgz", - "integrity": "sha1-M3dm2hWAEhD92VbCLpxokaudAzc=", - "dev": true - }, "buffer": { "version": "4.9.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", @@ -7239,16 +7251,17 @@ } }, "fast-glob": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.1.1.tgz", - "integrity": "sha512-nTCREpBY8w8r+boyFYAx21iL6faSsQynliPHM4Uf56SbkyohCNxpVPEH9xrF5TXKy+IsjkPUHDKiUkzBVRXn9g==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.2.tgz", + "integrity": "sha512-UDV82o4uQyljznxwMxyVRJgZZt3O5wENYojjzbaGEGZgeOxkLFf+V4cnUD+krzb2F72E18RhamkMZ7AdeggF7A==", "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.0", "merge2": "^1.3.0", - "micromatch": "^4.0.2" + "micromatch": "^4.0.2", + "picomatch": "^2.2.1" } }, "fill-range": { @@ -8903,12 +8916,6 @@ "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", "dev": true }, - "lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", - "dev": true - }, "lodash.ismatch": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", @@ -8939,12 +8946,6 @@ "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=", "dev": true }, - "lodash.set": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz", - "integrity": "sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=", - "dev": true - }, "lodash.sortby": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", @@ -13616,12 +13617,6 @@ "has": "^1.0.3" } }, - "octokit-pagination-methods": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/octokit-pagination-methods/-/octokit-pagination-methods-1.1.0.tgz", - "integrity": "sha512-fZ4qZdQ2nxJvtcasX7Ghl+WlWS/d9IgnBIwFZXVNNZUmzpno91SX5bc5vuxiuKoCtK78XxGGNuSCrDC7xYB3OQ==", - "dev": true - }, "on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", @@ -15315,9 +15310,9 @@ } }, "semantic-release": { - "version": "17.0.3", - "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-17.0.3.tgz", - "integrity": "sha512-hOwW6rfC8oRFyIamsW1LACIG6epVGND9ZxFOilKcM72ZgqMAxS+jN2996gCYBJmMizpYRu7orNaEkbd98ppRTg==", + "version": "17.0.4", + "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-17.0.4.tgz", + "integrity": "sha512-5y9QRSrZtdvACmlpX5DvEVsvFuKRDUVn7JVJFxPVLGrGofDf1d0M/+hA1wFmCjiJZ+VCY8bYaSqVqF14KCF9rw==", "dev": true, "requires": { "@semantic-release/commit-analyzer": "^8.0.0", @@ -15373,9 +15368,9 @@ } }, "figures": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.1.0.tgz", - "integrity": "sha512-ravh8VRXqHuMvZt/d8GblBeqDMkdJMBdv/2KntFH+ra5MXkO7nxNKpzQ3n6QD/2da1kH0aWmNISdvhM7gl2gVg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dev": true, "requires": { "escape-string-regexp": "^1.0.5" @@ -16690,9 +16685,9 @@ } }, "uglify-js": { - "version": "3.7.7", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.7.7.tgz", - "integrity": "sha512-FeSU+hi7ULYy6mn8PKio/tXsdSXN35lm4KgV2asx00kzrLU9Pi3oAslcJT70Jdj7PHX29gGUPOT6+lXGBbemhA==", + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.8.0.tgz", + "integrity": "sha512-ugNSTT8ierCsDHso2jkBHXYrU8Y5/fY2ZUprfrJUiD7YpuFvV4jODLFmb3h4btQjqr5Nh4TX4XtgDfCU1WdioQ==", "dev": true, "optional": true, "requires": { @@ -16883,9 +16878,9 @@ } }, "universal-user-agent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-4.0.0.tgz", - "integrity": "sha512-eM8knLpev67iBDizr/YtqkJsF3GK8gzDc6st/WKzrTuPtcsOKW/0IdL4cnMBsU69pOx0otavLWBDGTwg+dB0aA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-5.0.0.tgz", + "integrity": "sha512-B5TPtzZleXyPrUMKCpEHFmVhMN6EhmJYjG5PQna9s7mXeSqGTLap4OpqLl5FCEFUI3UBmllkETwKf/db66Y54Q==", "dev": true, "requires": { "os-name": "^3.1.0" diff --git a/package.json b/package.json index 8798fe83b..4d22267f4 100644 --- a/package.json +++ b/package.json @@ -64,7 +64,7 @@ "nyc": "15.0.0", "parcel-bundler": "1.12.4", "prettier": "1.19.1", - "semantic-release": "17.0.3", + "semantic-release": "17.0.4", "start-server-and-test": "1.10.8" } } From f6cda3c72bf7e951e8d60c8251277186a04684c4 Mon Sep 17 00:00:00 2001 From: Gleb Bahmutov Date: Wed, 26 Feb 2020 08:58:05 -0500 Subject: [PATCH 16/85] add link to @cypress/instrument-cra --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index dbd31b2f9..4b59b6f59 100644 --- a/README.md +++ b/README.md @@ -278,6 +278,7 @@ npm run dev:no:coverage - Read the [Cypress code coverage guide](http://on.cypress.io/code-coverage) - Read ["Code Coverage by Parcel Bundler"](https://glebbahmutov.com/blog/code-coverage-by-parcel/) blog post - Read ["Combined End-to-end and Unit Test Coverage"](https://glebbahmutov.com/blog/combined-end-to-end-and-unit-test-coverage/) +- If you are using React, check out [@cypress/instrument-cra](https://github.com/cypress-io/instrument-cra) ## Examples @@ -290,7 +291,7 @@ npm run dev:no:coverage - [rootstrap/react-redux-base](https://github.com/rootstrap/react-redux-base) shows an example with a realistic Webpack config. Instruments the source code using `babel-plugin-istanbul` during tests. - [skylock/cypress-angular-coverage-example](https://github.com/skylock/cypress-angular-coverage-example) shows Angular 8 + TypeScript application with instrumentation done using [istanbul-instrumenter-loader](https://github.com/webpack-contrib/istanbul-instrumenter-loader). - [bahmutov/testing-react](https://github.com/bahmutov/testing-react) shows how to get code coverage for a React application created using [CRA v3](https://github.com/facebook/create-react-app) without ejecting `react-scripts`. -- [bahmutov/cra-ts-code-coverage-example](https://github.com/bahmutov/cra-ts-code-coverage-example) instruments TypeScript React application on the fly without ejecting `react-scripts`. +- [bahmutov/cra-ts-code-coverage-example](https://github.com/bahmutov/cra-ts-code-coverage-example) instruments TypeScript React application on the fly without ejecting `react-scripts` by using [@cypress/instrument-cra](https://github.com/cypress-io/instrument-cra). - [bahmutov/next-and-cypress-example](https://github.com/bahmutov/next-and-cypress-example) shows how to get backend and frontend coverage for a [Next.js](https://nextjs.org) project. Uses [middleware/nextjs.js](middleware/nextjs.js). - [akoidan/vue-webpack-typescript](https://github.com/akoidan/vue-webpack-typescript) Pure webpack config with vue + typescript with codecov reports. This setup uses babel-loader with TS checker as a separate thread. - [bahmutov/code-coverage-subfolder-example](https://github.com/bahmutov/code-coverage-subfolder-example) shows how to instrument `app` folder using `nyc instrument` as a separate step before running E2E tests From f0afc63c34ebca2f779c92bf76bdd10b320f83f8 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sat, 29 Feb 2020 05:13:35 +0000 Subject: [PATCH 17/85] chore(deps): update dependency @babel/core to v7.8.6 --- package-lock.json | 69 ++++++++++++++++++++--------------------------- package.json | 2 +- 2 files changed, 30 insertions(+), 41 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0493a1fc3..bce41c363 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,18 +13,18 @@ } }, "@babel/core": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.4.tgz", - "integrity": "sha512-0LiLrB2PwrVI+a2/IEskBopDYSd8BCb3rOvH7D5tzoWd696TBEduBvuLVm4Nx6rltrLZqvI3MCalB2K2aVzQjA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.6.tgz", + "integrity": "sha512-Sheg7yEJD51YHAvLEV/7Uvw95AeWqYPL3Vk3zGujJKIhJ+8oLw2ALaf3hbucILhKsgSoADOvtKRJuNVdcJkOrg==", "dev": true, "requires": { "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", + "@babel/generator": "^7.8.6", "@babel/helpers": "^7.8.4", - "@babel/parser": "^7.8.4", - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.4", - "@babel/types": "^7.8.3", + "@babel/parser": "^7.8.6", + "@babel/template": "^7.8.6", + "@babel/traverse": "^7.8.6", + "@babel/types": "^7.8.6", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.1", @@ -45,12 +45,12 @@ } }, "@babel/generator": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", - "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.6.tgz", + "integrity": "sha512-4bpOR5ZBz+wWcMeVtcf7FbjcFzCp+817z2/gHNncIRcM9MmKzUhtWCYAq27RAfUrAFwb+OCG1s9WEaVxfi6cjg==", "dev": true, "requires": { - "@babel/types": "^7.8.3", + "@babel/types": "^7.8.6", "jsesc": "^2.5.1", "lodash": "^4.17.13", "source-map": "^0.5.0" @@ -85,17 +85,6 @@ "@babel/types": "^7.8.3" } }, - "@babel/helpers": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.8.4.tgz", - "integrity": "sha512-VPbe7wcQ4chu4TDQjimHv/5tj73qz88o12EPkO2ValS2QiQS/1F2SsjyIGNnAD0vF/nZS6Cf9i+vW6HIlnaR8w==", - "dev": true, - "requires": { - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.4", - "@babel/types": "^7.8.3" - } - }, "@babel/highlight": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", @@ -108,43 +97,43 @@ } }, "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.6.tgz", + "integrity": "sha512-trGNYSfwq5s0SgM1BMEB8hX3NDmO7EP2wsDGDexiaKMB92BaRpS+qZfpkMqUBhcsOTBwNy9B/jieo4ad/t/z2g==", "dev": true }, "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", + "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", "dev": true, "requires": { "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/parser": "^7.8.6", + "@babel/types": "^7.8.6" } }, "@babel/traverse": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", - "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.6.tgz", + "integrity": "sha512-2B8l0db/DPi8iinITKuo7cbPznLCEk0kCxDoB9/N6gGNg/gxOXiR/IcymAFPiBwk5w6TtQ27w4wpElgp9btR9A==", "dev": true, "requires": { "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", + "@babel/generator": "^7.8.6", "@babel/helper-function-name": "^7.8.3", "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.4", - "@babel/types": "^7.8.3", + "@babel/parser": "^7.8.6", + "@babel/types": "^7.8.6", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.13" } }, "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", + "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", "dev": true, "requires": { "esutils": "^2.0.2", diff --git a/package.json b/package.json index 4d22267f4..ba267e02e 100644 --- a/package.json +++ b/package.json @@ -54,7 +54,7 @@ "execa": "4.0.0" }, "devDependencies": { - "@babel/core": "7.8.4", + "@babel/core": "7.8.6", "babel-plugin-istanbul": "6.0.0", "cypress": "4.0.2", "express": "4.17.1", From 473f247468ae4abf5adf20abf7fa41ad59ddd4b0 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sat, 29 Feb 2020 06:27:56 +0000 Subject: [PATCH 18/85] chore(deps): update dependency cypress to v4.1.0 --- package-lock.json | 208 ++++++++-------------------------------------- package.json | 2 +- 2 files changed, 36 insertions(+), 174 deletions(-) diff --git a/package-lock.json b/package-lock.json index bce41c363..11edca842 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5114,9 +5114,9 @@ } }, "cypress": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-4.0.2.tgz", - "integrity": "sha512-WRzxOoSd+TxyXKa7Zi9orz3ii5VW7yhhVYstCU+EpOKfPan9x5Ww2Clucmy4H/W0GHUYAo7GYFZRD33ZCSNBQA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-4.1.0.tgz", + "integrity": "sha512-FFV8pS9iuriSX4M9rna6awJUhiqozZD1D5z5BprCUJoho1ctbcgpkEUIUnqxli2OwjQqVz07egO+iqoGL+tw7g==", "dev": true, "requires": { "@cypress/listr-verbose-renderer": "0.4.1", @@ -5125,13 +5125,13 @@ "arch": "2.1.1", "bluebird": "3.7.2", "cachedir": "2.3.0", - "chalk": "3.0.0", + "chalk": "2.4.2", "check-more-types": "2.24.0", "commander": "4.1.0", "common-tags": "1.8.0", "debug": "4.1.1", "eventemitter2": "4.1.2", - "execa": "3.3.0", + "execa": "1.0.0", "executable": "4.1.1", "extract-zip": "1.6.7", "fs-extra": "8.1.0", @@ -5144,6 +5144,8 @@ "log-symbols": "3.0.0", "minimist": "1.2.0", "moment": "2.24.0", + "ospath": "1.2.2", + "pretty-bytes": "5.3.0", "ramda": "0.26.1", "request": "2.88.0", "request-progress": "3.0.0", @@ -5154,74 +5156,34 @@ "yauzl": "2.10.0" }, "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "commander": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.0.tgz", "integrity": "sha512-NIQrwvv9V39FHgGFm36+U9SMQzbiHvU79k+iADraJTpmrFFfx7Ds0IvDoAdZsDrknlkRk14OYoWXb57uTh7/sw==", "dev": true }, - "cross-spawn": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.1.tgz", - "integrity": "sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg==", + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", "dev": true, "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" } }, - "execa": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-3.3.0.tgz", - "integrity": "sha512-j5Vit5WZR/cbHlqU97+qcnw9WHRCIL4V1SVe75VcHcD1JRBdt8fv0zw89b7CQHQdUHTt2VjuhcF5ibAgVOxqpg==", + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "dev": true, "requires": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "p-finally": "^2.0.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" + "pump": "^3.0.0" } }, "has-flag": { @@ -5230,12 +5192,6 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", - "dev": true - }, "log-symbols": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", @@ -5243,105 +5199,8 @@ "dev": true, "requires": { "chalk": "^2.4.2" - }, - "dependencies": { - "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" - } - } - } - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - }, - "onetime": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", - "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" } }, - "p-finally": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz", - "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, "supports-color": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", @@ -5350,15 +5209,6 @@ "requires": { "has-flag": "^4.0.0" } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } } } }, @@ -13693,6 +13543,12 @@ "windows-release": "^3.1.0" } }, + "ospath": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz", + "integrity": "sha1-EnZjl3Sj+O8lcvf+QoDg6kVQwHs=", + "dev": true + }, "outpipe": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/outpipe/-/outpipe-1.1.1.tgz", @@ -14666,6 +14522,12 @@ "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==", "dev": true }, + "pretty-bytes": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.3.0.tgz", + "integrity": "sha512-hjGrh+P926p4R4WbaB6OckyRtO0F0/lQBiT+0gnxjV+5kjPBrfVBFCsCLbMqVQeydvIoouYTCmmEURiH3R1Bdg==", + "dev": true + }, "private": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", diff --git a/package.json b/package.json index ba267e02e..c7ba71b95 100644 --- a/package.json +++ b/package.json @@ -56,7 +56,7 @@ "devDependencies": { "@babel/core": "7.8.6", "babel-plugin-istanbul": "6.0.0", - "cypress": "4.0.2", + "cypress": "4.1.0", "express": "4.17.1", "istanbul-lib-coverage": "3.0.0", "lodash": "4.17.15", From 938d2a53deef081c2e957cde4a2461e884d70999 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sat, 7 Mar 2020 05:05:17 +0000 Subject: [PATCH 19/85] chore(deps): update dependency @babel/core to v7.8.7 --- package-lock.json | 32 ++++++++++++++++---------------- package.json | 2 +- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/package-lock.json b/package-lock.json index 11edca842..4702a865a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,18 +13,18 @@ } }, "@babel/core": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.6.tgz", - "integrity": "sha512-Sheg7yEJD51YHAvLEV/7Uvw95AeWqYPL3Vk3zGujJKIhJ+8oLw2ALaf3hbucILhKsgSoADOvtKRJuNVdcJkOrg==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.7.tgz", + "integrity": "sha512-rBlqF3Yko9cynC5CCFy6+K/w2N+Sq/ff2BPy+Krp7rHlABIr5epbA7OxVeKoMHB39LZOp1UY5SuLjy6uWi35yA==", "dev": true, "requires": { "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.6", + "@babel/generator": "^7.8.7", "@babel/helpers": "^7.8.4", - "@babel/parser": "^7.8.6", + "@babel/parser": "^7.8.7", "@babel/template": "^7.8.6", "@babel/traverse": "^7.8.6", - "@babel/types": "^7.8.6", + "@babel/types": "^7.8.7", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.1", @@ -45,12 +45,12 @@ } }, "@babel/generator": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.6.tgz", - "integrity": "sha512-4bpOR5ZBz+wWcMeVtcf7FbjcFzCp+817z2/gHNncIRcM9MmKzUhtWCYAq27RAfUrAFwb+OCG1s9WEaVxfi6cjg==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.7.tgz", + "integrity": "sha512-DQwjiKJqH4C3qGiyQCAExJHoZssn49JTMJgZ8SANGgVFdkupcUhLOdkAeoC6kmHZCPfoDG5M0b6cFlSN5wW7Ew==", "dev": true, "requires": { - "@babel/types": "^7.8.6", + "@babel/types": "^7.8.7", "jsesc": "^2.5.1", "lodash": "^4.17.13", "source-map": "^0.5.0" @@ -97,9 +97,9 @@ } }, "@babel/parser": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.6.tgz", - "integrity": "sha512-trGNYSfwq5s0SgM1BMEB8hX3NDmO7EP2wsDGDexiaKMB92BaRpS+qZfpkMqUBhcsOTBwNy9B/jieo4ad/t/z2g==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.7.tgz", + "integrity": "sha512-9JWls8WilDXFGxs0phaXAZgpxTZhSk/yOYH2hTHC0X1yC7Z78IJfvR1vJ+rmJKq3I35td2XzXzN6ZLYlna+r/A==", "dev": true }, "@babel/template": { @@ -131,9 +131,9 @@ } }, "@babel/types": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", - "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz", + "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==", "dev": true, "requires": { "esutils": "^2.0.2", diff --git a/package.json b/package.json index c7ba71b95..edbb47dba 100644 --- a/package.json +++ b/package.json @@ -54,7 +54,7 @@ "execa": "4.0.0" }, "devDependencies": { - "@babel/core": "7.8.6", + "@babel/core": "7.8.7", "babel-plugin-istanbul": "6.0.0", "cypress": "4.1.0", "express": "4.17.1", From b863c95f8602ca53f857690bcbd7caadcb320916 Mon Sep 17 00:00:00 2001 From: Gleb Bahmutov Date: Mon, 9 Mar 2020 16:08:37 -0400 Subject: [PATCH 20/85] Start testing full examples (#151) * add example running tool in a subfolder * add example to circleci * add local dev tools * install deps in root folder * print current folder * print output json file * use relative paths --- .circleci/config.yml | 26 + README.md | 40 + examples/before-each-visit/README.md | 13 + examples/before-each-visit/cypress.json | 1 + .../cypress/fixtures/example.json | 5 + .../cypress/integration/spec.js | 18 + .../cypress/plugins/index.js | 3 + .../cypress/support/index.js | 1 + examples/before-each-visit/index.html | 4 + .../before-each-visit/main-instrumented.js | 146 + examples/before-each-visit/main.js | 3 + examples/before-each-visit/package-lock.json | 2820 +++++++++++++++++ examples/before-each-visit/package.json | 14 + task.js | 15 + 14 files changed, 3109 insertions(+) create mode 100644 examples/before-each-visit/README.md create mode 100644 examples/before-each-visit/cypress.json create mode 100644 examples/before-each-visit/cypress/fixtures/example.json create mode 100644 examples/before-each-visit/cypress/integration/spec.js create mode 100644 examples/before-each-visit/cypress/plugins/index.js create mode 100644 examples/before-each-visit/cypress/support/index.js create mode 100644 examples/before-each-visit/index.html create mode 100644 examples/before-each-visit/main-instrumented.js create mode 100644 examples/before-each-visit/main.js create mode 100644 examples/before-each-visit/package-lock.json create mode 100644 examples/before-each-visit/package.json diff --git a/.circleci/config.yml b/.circleci/config.yml index df823255e..9de77c52a 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -68,6 +68,31 @@ workflows: # and look at the server index file - should be fully covered - run: npx nyc report --check-coverage true --lines 100 --include test-backend/index.js + - cypress/run: + name: example-before-each-visit + requires: + - cypress/install + # install dependencies in the root folder + post-install: + - run: npm ci + # there are no jobs to follow this one + # so no need to save the workspace files (saves time) + no-workspace: true + working_directory: examples/before-each-visit + # store screenshots and videos + store_artifacts: true + post-steps: + - run: cat examples/before-each-visit/.nyc_output/out.json + # store the created coverage report folder + # you can click on it in the CircleCI UI + # to see live static HTML site + - store_artifacts: + path: examples/before-each-visit/coverage + # make sure the examples captures 100% of code + - run: + command: npx nyc report --check-coverage true --lines 100 + working_directory: examples/before-each-visit + - publish: filters: branches: @@ -76,3 +101,4 @@ workflows: requires: - frontend coverage - backend coverage + - example-before-each-visit diff --git a/README.md b/README.md index 4b59b6f59..ad31c9541 100644 --- a/README.md +++ b/README.md @@ -181,6 +181,46 @@ You can specify custom coverage reporter(s) to use. For example to output text s **Tip:** find list of reporters [here](https://istanbul.js.org/docs/advanced/alternative-reporters/) +## Custom NYC command + +Sometimes NYC tool might be installed in a different folder, or you might want to customize the report command. In that case, put the custom command into `package.json` in the current folder and this plugin will automatically use it. + +```json +{ + "scripts": { + "coverage:report": "call NYC report ..." + } +} +``` + +See examples below. + +### Install NYC on the fly + +The simplest solution: let `npx` install `nyc` on the fly + +```json +{ + "scripts": { + "coverage:report": "npx nyc report --report-dir ./coverage --temp-dir .nyc_output --reporter=lcov --reporter=clover --reporter=json" + } +} +``` + +### Find NYC in a parent folder + +If you have [bin-up](https://github.com/bahmutov/bin-up) installed globally, you can use it to find `nyc` installed somewhere in the higher folder. + +```json +{ + "scripts": { + "coverage:report": "bin-up nyc report --report-dir ./coverage --temp-dir .nyc_output --reporter=lcov --reporter=clover --reporter=json" + } +} +``` + +**Tip:** finding and running pre-installed tool is always faster than installing it again and again. + ## TypeScript users TypeScript source files are NOT included in the code coverage report by default, even if they are properly instrumented. In order to tell `nyc` to include TS files in the report, you need to: diff --git a/examples/before-each-visit/README.md b/examples/before-each-visit/README.md new file mode 100644 index 000000000..b5560b875 --- /dev/null +++ b/examples/before-each-visit/README.md @@ -0,0 +1,13 @@ +# example: before-each-visit + +Code coverage example where the `cy.visit` happens in `beforeEach` hook + +Code was instrumented with + +```shell +npx nyc instrument --compact false main.js > main-instrumented.js +``` + +and then removed absolute folder paths, leaving just relative path `main.js` in the produced file. + +The code uses custom coverage report command in [package.json](package.json) to call `nyc` diff --git a/examples/before-each-visit/cypress.json b/examples/before-each-visit/cypress.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/examples/before-each-visit/cypress.json @@ -0,0 +1 @@ +{} diff --git a/examples/before-each-visit/cypress/fixtures/example.json b/examples/before-each-visit/cypress/fixtures/example.json new file mode 100644 index 000000000..da18d9352 --- /dev/null +++ b/examples/before-each-visit/cypress/fixtures/example.json @@ -0,0 +1,5 @@ +{ + "name": "Using fixtures to represent data", + "email": "hello@cypress.io", + "body": "Fixtures are a great way to mock data for responses to routes" +} \ No newline at end of file diff --git a/examples/before-each-visit/cypress/integration/spec.js b/examples/before-each-visit/cypress/integration/spec.js new file mode 100644 index 000000000..401618d11 --- /dev/null +++ b/examples/before-each-visit/cypress/integration/spec.js @@ -0,0 +1,18 @@ +/// +describe('coverage information', () => { + beforeEach(() => { + cy.visit('index.html') + }) + + it('calls add', () => { + cy.window() + .invoke('add', 2, 3) + .should('equal', 5) + }) + + it('calls sub', () => { + cy.window() + .invoke('sub', 2, 3) + .should('equal', -1) + }) +}) diff --git a/examples/before-each-visit/cypress/plugins/index.js b/examples/before-each-visit/cypress/plugins/index.js new file mode 100644 index 000000000..172deda45 --- /dev/null +++ b/examples/before-each-visit/cypress/plugins/index.js @@ -0,0 +1,3 @@ +module.exports = (on, config) => { + on('task', require('../../../../task')) +} diff --git a/examples/before-each-visit/cypress/support/index.js b/examples/before-each-visit/cypress/support/index.js new file mode 100644 index 000000000..dd60efa28 --- /dev/null +++ b/examples/before-each-visit/cypress/support/index.js @@ -0,0 +1 @@ +import '../../../../support' diff --git a/examples/before-each-visit/index.html b/examples/before-each-visit/index.html new file mode 100644 index 000000000..b6691c8af --- /dev/null +++ b/examples/before-each-visit/index.html @@ -0,0 +1,4 @@ + + Page body + + diff --git a/examples/before-each-visit/main-instrumented.js b/examples/before-each-visit/main-instrumented.js new file mode 100644 index 000000000..0550e9bb7 --- /dev/null +++ b/examples/before-each-visit/main-instrumented.js @@ -0,0 +1,146 @@ +function cov_6k5v991cn() { + var path = 'main.js' + var hash = 'd384017ecd51a8d90283ba0dec593332209519de' + var global = new Function('return this')() + var gcv = '__coverage__' + var coverageData = { + path: 'main.js', + statementMap: { + '0': { + start: { + line: 1, + column: 0 + }, + end: { + line: 1, + column: 28 + } + }, + '1': { + start: { + line: 1, + column: 23 + }, + end: { + line: 1, + column: 28 + } + }, + '2': { + start: { + line: 3, + column: 0 + }, + end: { + line: 3, + column: 28 + } + }, + '3': { + start: { + line: 3, + column: 23 + }, + end: { + line: 3, + column: 28 + } + } + }, + fnMap: { + '0': { + name: '(anonymous_0)', + decl: { + start: { + line: 1, + column: 13 + }, + end: { + line: 1, + column: 14 + } + }, + loc: { + start: { + line: 1, + column: 23 + }, + end: { + line: 1, + column: 28 + } + }, + line: 1 + }, + '1': { + name: '(anonymous_1)', + decl: { + start: { + line: 3, + column: 13 + }, + end: { + line: 3, + column: 14 + } + }, + loc: { + start: { + line: 3, + column: 23 + }, + end: { + line: 3, + column: 28 + } + }, + line: 3 + } + }, + branchMap: {}, + s: { + '0': 0, + '1': 0, + '2': 0, + '3': 0 + }, + f: { + '0': 0, + '1': 0 + }, + b: {}, + _coverageSchema: '1a1c01bbd47fc00a2c39e90264f33305004495a9', + hash: 'd384017ecd51a8d90283ba0dec593332209519de' + } + var coverage = global[gcv] || (global[gcv] = {}) + + if (!coverage[path] || coverage[path].hash !== hash) { + coverage[path] = coverageData + } + + var actualCoverage = coverage[path] + + cov_6k5v991cn = function() { + return actualCoverage + } + + return actualCoverage +} + +cov_6k5v991cn() +cov_6k5v991cn().s[0]++ + +window.add = (a, b) => { + cov_6k5v991cn().f[0]++ + cov_6k5v991cn().s[1]++ + return a + b +} + +cov_6k5v991cn().s[2]++ + +window.sub = (a, b) => { + cov_6k5v991cn().f[1]++ + cov_6k5v991cn().s[3]++ + return a - b +} +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1haW4uanMiXSwibmFtZXMiOlsid2luZG93IiwiYWRkIiwiYSIsImIiLCJzdWIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBQSxNQUFNLENBQUNDLEdBQVAsR0FBYSxDQUFDQyxDQUFELEVBQUlDLENBQUosS0FBVTtBQUFBO0FBQUE7QUFBQSxTQUFBRCxDQUFDLEdBQUdDLENBQUo7QUFBSyxDQUE1Qjs7OztBQUVBSCxNQUFNLENBQUNJLEdBQVAsR0FBYSxDQUFDRixDQUFELEVBQUlDLENBQUosS0FBVTtBQUFBO0FBQUE7QUFBQSxTQUFBRCxDQUFDLEdBQUdDLENBQUo7QUFBSyxDQUE1QiIsInNvdXJjZXNDb250ZW50IjpbIndpbmRvdy5hZGQgPSAoYSwgYikgPT4gYSArIGJcblxud2luZG93LnN1YiA9IChhLCBiKSA9PiBhIC0gYlxuIl19 diff --git a/examples/before-each-visit/main.js b/examples/before-each-visit/main.js new file mode 100644 index 000000000..5dd69be2f --- /dev/null +++ b/examples/before-each-visit/main.js @@ -0,0 +1,3 @@ +window.add = (a, b) => a + b + +window.sub = (a, b) => a - b diff --git a/examples/before-each-visit/package-lock.json b/examples/before-each-visit/package-lock.json new file mode 100644 index 000000000..785552f2e --- /dev/null +++ b/examples/before-each-visit/package-lock.json @@ -0,0 +1,2820 @@ +{ + "name": "example-before-each-visit", + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "@babel/code-frame": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.8.3" + } + }, + "@babel/core": { + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.7.tgz", + "integrity": "sha512-rBlqF3Yko9cynC5CCFy6+K/w2N+Sq/ff2BPy+Krp7rHlABIr5epbA7OxVeKoMHB39LZOp1UY5SuLjy6uWi35yA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.7", + "@babel/helpers": "^7.8.4", + "@babel/parser": "^7.8.7", + "@babel/template": "^7.8.6", + "@babel/traverse": "^7.8.6", + "@babel/types": "^7.8.7", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.0", + "lodash": "^4.17.13", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + } + }, + "@babel/generator": { + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.7.tgz", + "integrity": "sha512-DQwjiKJqH4C3qGiyQCAExJHoZssn49JTMJgZ8SANGgVFdkupcUhLOdkAeoC6kmHZCPfoDG5M0b6cFlSN5wW7Ew==", + "dev": true, + "requires": { + "@babel/types": "^7.8.7", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", + "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", + "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", + "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helpers": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.8.4.tgz", + "integrity": "sha512-VPbe7wcQ4chu4TDQjimHv/5tj73qz88o12EPkO2ValS2QiQS/1F2SsjyIGNnAD0vF/nZS6Cf9i+vW6HIlnaR8w==", + "dev": true, + "requires": { + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.4", + "@babel/types": "^7.8.3" + } + }, + "@babel/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.7.tgz", + "integrity": "sha512-9JWls8WilDXFGxs0phaXAZgpxTZhSk/yOYH2hTHC0X1yC7Z78IJfvR1vJ+rmJKq3I35td2XzXzN6ZLYlna+r/A==", + "dev": true + }, + "@babel/template": { + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", + "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.6", + "@babel/types": "^7.8.6" + } + }, + "@babel/traverse": { + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.6.tgz", + "integrity": "sha512-2B8l0db/DPi8iinITKuo7cbPznLCEk0kCxDoB9/N6gGNg/gxOXiR/IcymAFPiBwk5w6TtQ27w4wpElgp9btR9A==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.6", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.6", + "@babel/types": "^7.8.6", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz", + "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "@cypress/listr-verbose-renderer": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@cypress/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz", + "integrity": "sha1-p3SS9LEdzHxEajSz4ochr9M8ZCo=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "cli-cursor": "^1.0.2", + "date-fns": "^1.27.2", + "figures": "^1.7.0" + }, + "dependencies": { + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "@cypress/xvfb": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz", + "integrity": "sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==", + "dev": true, + "requires": { + "debug": "^3.1.0", + "lodash.once": "^4.1.1" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "@istanbuljs/load-nyc-config": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.0.0.tgz", + "integrity": "sha512-ZR0rq/f/E4f4XcgnDvtMWXCUJpi8eO0rssVhmztsZqLIEFA9UUP9zmpE0VxlM+kv/E1ul2I876Fwil2ayptDVg==", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + } + }, + "@istanbuljs/schema": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", + "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==", + "dev": true + }, + "@samverschueren/stream-to-observable": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz", + "integrity": "sha512-MI4Xx6LHs4Webyvi6EbspgyAb4D2Q2VtnCQ1blOJcoLS6mVa8lNN2rkIy1CVxfTUpoyIbCTkXES1rLXztFD1lg==", + "dev": true, + "requires": { + "any-observable": "^0.3.0" + } + }, + "@types/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", + "dev": true + }, + "@types/sizzle": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.2.tgz", + "integrity": "sha512-7EJYyKTL7tFR8+gDbB6Wwz/arpGa0Mywk1TJbNzKzHtzbwVmY4HR9WqS5VV7dsBUKQmPNr192jHr/VpBluj/hg==", + "dev": true + }, + "aggregate-error": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz", + "integrity": "sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA==", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "dependencies": { + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + } + } + }, + "ajv": { + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", + "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "dev": true + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "any-observable": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/any-observable/-/any-observable-0.3.0.tgz", + "integrity": "sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog==", + "dev": true + }, + "append-transform": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", + "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", + "dev": true, + "requires": { + "default-require-extensions": "^3.0.0" + } + }, + "arch": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/arch/-/arch-2.1.1.tgz", + "integrity": "sha512-BLM56aPo9vLLFVa8+/+pJLnrZ7QGGTVHWsCwieAWT9o9K8UeGaQbzZbGoabWLOo2ksBCztoXdqBZBplqLDDCSg==", + "dev": true + }, + "archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", + "dev": true + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + }, + "async": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz", + "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true + }, + "aws4": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz", + "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "bin-up": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/bin-up/-/bin-up-1.3.2.tgz", + "integrity": "sha512-ePRL4VTK6jE/rXyoTH/YjzLRqp397y/dUSRXrPe8OcVP4min4bLJxNhmTdZfEF4zQYn4yYaI6WGy8M7F1mY1Aw==", + "dev": true, + "requires": { + "execa": "2.0.5" + }, + "dependencies": { + "execa": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/execa/-/execa-2.0.5.tgz", + "integrity": "sha512-SwmwZZyJjflcqLSgllk4EQlMLst2p9muyzwNugKGFlpAz6rZ7M+s2nBR97GAq4Vzjwx2y9rcMcmqzojwN+xwNA==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.5", + "get-stream": "^5.0.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^3.0.0", + "onetime": "^5.1.0", + "p-finally": "^2.0.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", + "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "npm-run-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-3.1.0.tgz", + "integrity": "sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "onetime": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", + "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "p-finally": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz", + "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + } + } + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "dev": true + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true + }, + "cachedir": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.3.0.tgz", + "integrity": "sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==", + "dev": true + }, + "caching-transform": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", + "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", + "dev": true, + "requires": { + "hasha": "^5.0.0", + "make-dir": "^3.0.0", + "package-hash": "^4.0.0", + "write-file-atomic": "^3.0.0" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "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" + }, + "dependencies": { + "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" + } + }, + "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" + } + } + } + }, + "check-more-types": { + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", + "integrity": "sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA=", + "dev": true + }, + "ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true + }, + "cli-cursor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", + "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", + "dev": true, + "requires": { + "restore-cursor": "^1.0.1" + } + }, + "cli-truncate": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz", + "integrity": "sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ=", + "dev": true, + "requires": { + "slice-ansi": "0.0.4", + "string-width": "^1.0.1" + } + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "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" + } + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + } + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true + }, + "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 + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.0.tgz", + "integrity": "sha512-NIQrwvv9V39FHgGFm36+U9SMQzbiHvU79k+iADraJTpmrFFfx7Ds0IvDoAdZsDrknlkRk14OYoWXb57uTh7/sw==", + "dev": true + }, + "common-tags": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz", + "integrity": "sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "cypress": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-4.1.0.tgz", + "integrity": "sha512-FFV8pS9iuriSX4M9rna6awJUhiqozZD1D5z5BprCUJoho1ctbcgpkEUIUnqxli2OwjQqVz07egO+iqoGL+tw7g==", + "dev": true, + "requires": { + "@cypress/listr-verbose-renderer": "0.4.1", + "@cypress/xvfb": "1.2.4", + "@types/sizzle": "2.3.2", + "arch": "2.1.1", + "bluebird": "3.7.2", + "cachedir": "2.3.0", + "chalk": "2.4.2", + "check-more-types": "2.24.0", + "commander": "4.1.0", + "common-tags": "1.8.0", + "debug": "4.1.1", + "eventemitter2": "4.1.2", + "execa": "1.0.0", + "executable": "4.1.1", + "extract-zip": "1.6.7", + "fs-extra": "8.1.0", + "getos": "3.1.4", + "is-ci": "2.0.0", + "is-installed-globally": "0.1.0", + "lazy-ass": "1.6.0", + "listr": "0.14.3", + "lodash": "4.17.15", + "log-symbols": "3.0.0", + "minimist": "1.2.0", + "moment": "2.24.0", + "ospath": "1.2.2", + "pretty-bytes": "5.3.0", + "ramda": "0.26.1", + "request": "2.88.0", + "request-progress": "3.0.0", + "supports-color": "7.1.0", + "tmp": "0.1.0", + "untildify": "4.0.0", + "url": "0.11.0", + "yauzl": "2.10.0" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "date-fns": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz", + "integrity": "sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==", + "dev": true + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "default-require-extensions": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz", + "integrity": "sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==", + "dev": true, + "requires": { + "strip-bom": "^4.0.0" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "elegant-spinner": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz", + "integrity": "sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "eventemitter2": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-4.1.2.tgz", + "integrity": "sha1-DhqEd6+CGm7zmVsxG/dMI6UkfxU=", + "dev": true + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "executable": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz", + "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==", + "dev": true, + "requires": { + "pify": "^2.2.0" + } + }, + "exit-hook": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", + "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=", + "dev": true + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "extract-zip": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.7.tgz", + "integrity": "sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k=", + "dev": true, + "requires": { + "concat-stream": "1.6.2", + "debug": "2.6.9", + "mkdirp": "0.5.1", + "yauzl": "2.4.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "yauzl": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz", + "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=", + "dev": true, + "requires": { + "fd-slicer": "~1.0.1" + } + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", + "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fd-slicer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", + "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", + "dev": true, + "requires": { + "pend": "~1.2.0" + } + }, + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" + } + }, + "find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "foreground-child": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", + "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" + }, + "dependencies": { + "cross-spawn": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.1.tgz", + "integrity": "sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "fromentries": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.2.0.tgz", + "integrity": "sha512-33X7H/wdfO99GdRLLgkjUrD4geAFdq/Uv0kl3HD4da6HDixd2GUg8Mw7dahLCV9r/EARkmtYBB6Tch4EEokFTQ==", + "dev": true + }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "gensync": { + "version": "1.0.0-beta.1", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz", + "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "getos": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/getos/-/getos-3.1.4.tgz", + "integrity": "sha512-UORPzguEB/7UG5hqiZai8f0vQ7hzynMQyJLxStoQ8dPGAcmgsfXOPA4iE/fGtweHYkK+z4zc9V0g+CIFRf5HYw==", + "dev": true, + "requires": { + "async": "^3.1.0" + } + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "global-dirs": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", + "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", + "dev": true, + "requires": { + "ini": "^1.3.4" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "graceful-fs": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", + "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", + "dev": true + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, + "har-validator": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", + "dev": true, + "requires": { + "ajv": "^6.5.5", + "har-schema": "^2.0.0" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "hasha": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.0.tgz", + "integrity": "sha512-2W+jKdQbAdSIrggA8Q35Br8qKadTrqCTC8+XZvBWepKDK6m9XkX6Iz1a2yh2KP01kzAR/dpuMeUnocoLYDcskw==", + "dev": true, + "requires": { + "is-stream": "^2.0.0", + "type-fest": "^0.8.0" + }, + "dependencies": { + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + } + } + }, + "html-escaper": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.0.tgz", + "integrity": "sha512-a4u9BeERWGu/S8JiWEAQcdrg9v4QArtP9keViQjGMdff20fBdd8waotXaNmODqBe6uZ3Nafi7K/ho4gCQHV3Ig==", + "dev": true + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "indent-string": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", + "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true + }, + "is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, + "requires": { + "ci-info": "^2.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-installed-globally": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", + "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", + "dev": true, + "requires": { + "global-dirs": "^0.1.0", + "is-path-inside": "^1.0.0" + } + }, + "is-observable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-1.1.0.tgz", + "integrity": "sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==", + "dev": true, + "requires": { + "symbol-observable": "^1.1.0" + } + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "dev": true, + "requires": { + "path-is-inside": "^1.0.1" + } + }, + "is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", + "dev": true + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "istanbul-lib-coverage": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", + "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", + "dev": true + }, + "istanbul-lib-hook": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", + "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", + "dev": true, + "requires": { + "append-transform": "^2.0.0" + } + }, + "istanbul-lib-instrument": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.1.tgz", + "integrity": "sha512-imIchxnodll7pvQBYOqUu88EufLCU56LMeFPZZM/fJZ1irYcYdqroaV+ACK1Ila8ls09iEYArp+nqyC6lW1Vfg==", + "dev": true, + "requires": { + "@babel/core": "^7.7.5", + "@babel/parser": "^7.7.5", + "@babel/template": "^7.7.4", + "@babel/traverse": "^7.7.4", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "istanbul-lib-processinfo": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz", + "integrity": "sha512-kOwpa7z9hme+IBPZMzQ5vdQj8srYgAtaRqeI48NGmAQ+/5yKiHLV0QbYqQpxsdEF0+w14SoB8YbnHKcXE2KnYw==", + "dev": true, + "requires": { + "archy": "^1.0.0", + "cross-spawn": "^7.0.0", + "istanbul-lib-coverage": "^3.0.0-alpha.1", + "make-dir": "^3.0.0", + "p-map": "^3.0.0", + "rimraf": "^3.0.0", + "uuid": "^3.3.3" + }, + "dependencies": { + "cross-spawn": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.1.tgz", + "integrity": "sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + } + }, + "istanbul-lib-source-maps": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz", + "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-2osTcC8zcOSUkImzN2EWQta3Vdi4WjjKw99P2yWx5mLnigAM0Rd5uYFn1cf2i/Ois45GkNjaoTqc5CxgMSX80A==", + "dev": true, + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "json5": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz", + "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "lazy-ass": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", + "integrity": "sha1-eZllXoZGwX8In90YfRUNMyTVRRM=", + "dev": true + }, + "listr": { + "version": "0.14.3", + "resolved": "https://registry.npmjs.org/listr/-/listr-0.14.3.tgz", + "integrity": "sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA==", + "dev": true, + "requires": { + "@samverschueren/stream-to-observable": "^0.3.0", + "is-observable": "^1.1.0", + "is-promise": "^2.1.0", + "is-stream": "^1.1.0", + "listr-silent-renderer": "^1.1.1", + "listr-update-renderer": "^0.5.0", + "listr-verbose-renderer": "^0.5.0", + "p-map": "^2.0.0", + "rxjs": "^6.3.3" + } + }, + "listr-silent-renderer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz", + "integrity": "sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4=", + "dev": true + }, + "listr-update-renderer": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz", + "integrity": "sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA==", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "cli-truncate": "^0.2.1", + "elegant-spinner": "^1.0.1", + "figures": "^1.7.0", + "indent-string": "^3.0.0", + "log-symbols": "^1.0.2", + "log-update": "^2.3.0", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "log-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", + "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", + "dev": true, + "requires": { + "chalk": "^1.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "listr-verbose-renderer": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz", + "integrity": "sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "cli-cursor": "^2.1.0", + "date-fns": "^1.27.2", + "figures": "^2.0.0" + }, + "dependencies": { + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + } + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "dev": true + }, + "lodash.flattendeep": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", + "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", + "dev": true + }, + "lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=", + "dev": true + }, + "log-symbols": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", + "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2" + } + }, + "log-update": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-2.3.0.tgz", + "integrity": "sha1-iDKP19HOeTiykoN0bwsbwSayRwg=", + "dev": true, + "requires": { + "ansi-escapes": "^3.0.0", + "cli-cursor": "^2.0.0", + "wrap-ansi": "^3.0.1" + }, + "dependencies": { + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + } + } + }, + "make-dir": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.2.tgz", + "integrity": "sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w==", + "dev": true, + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "mime-db": { + "version": "1.43.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz", + "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==", + "dev": true + }, + "mime-types": { + "version": "2.1.26", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz", + "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==", + "dev": true, + "requires": { + "mime-db": "1.43.0" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + } + } + }, + "moment": { + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz", + "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node-preload": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", + "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", + "dev": true, + "requires": { + "process-on-spawn": "^1.0.0" + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "nyc": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.0.0.tgz", + "integrity": "sha512-qcLBlNCKMDVuKb7d1fpxjPR8sHeMVX0CHarXAVzrVWoFrigCkYR8xcrjfXSPi5HXM7EU78L6ywO7w1c5rZNCNg==", + "dev": true, + "requires": { + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "caching-transform": "^4.0.0", + "convert-source-map": "^1.7.0", + "decamelize": "^1.2.0", + "find-cache-dir": "^3.2.0", + "find-up": "^4.1.0", + "foreground-child": "^2.0.0", + "glob": "^7.1.6", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-hook": "^3.0.0", + "istanbul-lib-instrument": "^4.0.0", + "istanbul-lib-processinfo": "^2.0.2", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.0", + "js-yaml": "^3.13.1", + "make-dir": "^3.0.0", + "node-preload": "^0.2.0", + "p-map": "^3.0.0", + "process-on-spawn": "^1.0.0", + "resolve-from": "^5.0.0", + "rimraf": "^3.0.0", + "signal-exit": "^3.0.2", + "spawn-wrap": "^2.0.0", + "test-exclude": "^6.0.0", + "uuid": "^3.3.3", + "yargs": "^15.0.2" + }, + "dependencies": { + "p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", + "dev": true + }, + "ospath": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz", + "integrity": "sha1-EnZjl3Sj+O8lcvf+QoDg6kVQwHs=", + "dev": true + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "p-limit": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", + "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "package-hash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", + "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.15", + "hasha": "^5.0.0", + "lodash.flattendeep": "^4.4.0", + "release-zalgo": "^1.0.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true + }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", + "dev": true + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + }, + "pretty-bytes": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.3.0.tgz", + "integrity": "sha512-hjGrh+P926p4R4WbaB6OckyRtO0F0/lQBiT+0gnxjV+5kjPBrfVBFCsCLbMqVQeydvIoouYTCmmEURiH3R1Bdg==", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "process-on-spawn": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", + "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", + "dev": true, + "requires": { + "fromentries": "^1.2.0" + } + }, + "psl": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.7.0.tgz", + "integrity": "sha512-5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ==", + "dev": true + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true + }, + "ramda": { + "version": "0.26.1", + "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.26.1.tgz", + "integrity": "sha512-hLWjpy7EnsDBb0p+Z3B7rPi3GDeRG5ZtiI33kJhTt+ORCd38AbAIjB/9zRIUoeTbE/AVX5ZkU7m6bznsvrf8eQ==", + "dev": true + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "release-zalgo": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", + "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", + "dev": true, + "requires": { + "es6-error": "^4.0.1" + } + }, + "request": { + "version": "2.88.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", + "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.0", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + } + }, + "request-progress": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz", + "integrity": "sha1-TKdUCBx/7GP1BeT6qCWqBs1mnb4=", + "dev": true, + "requires": { + "throttleit": "^1.0.0" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "resolve": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", + "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + }, + "restore-cursor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", + "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", + "dev": true, + "requires": { + "exit-hook": "^1.0.0", + "onetime": "^1.0.0" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "rxjs": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz", + "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, + "slice-ansi": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", + "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "spawn-wrap": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", + "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", + "dev": true, + "requires": { + "foreground-child": "^2.0.0", + "is-windows": "^1.0.2", + "make-dir": "^3.0.0", + "rimraf": "^3.0.0", + "signal-exit": "^3.0.2", + "which": "^2.0.1" + }, + "dependencies": { + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "dev": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + } + } + }, + "symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", + "dev": true + }, + "test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + } + }, + "throttleit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz", + "integrity": "sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=", + "dev": true + }, + "tmp": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.1.0.tgz", + "integrity": "sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==", + "dev": true, + "requires": { + "rimraf": "^2.6.3" + } + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + }, + "tough-cookie": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", + "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", + "dev": true, + "requires": { + "psl": "^1.1.24", + "punycode": "^1.4.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + } + } + }, + "tslib": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz", + "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==", + "dev": true + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "requires": { + "is-typedarray": "^1.0.0" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + }, + "untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "dev": true + }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "wrap-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-3.0.1.tgz", + "integrity": "sha1-KIoE2H7aXChuBg3+jxNc6NAH+Lo=", + "dev": true, + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "dev": true + }, + "yargs": { + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.0.tgz", + "integrity": "sha512-g/QCnmjgOl1YJjGsnUg2SatC7NUYEiLXJqxNOQU9qSpjzGtGXda9b+OKccr1kLTy8BN9yqEyqfq5lxlwdc13TA==", + "dev": true, + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "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" + } + } + } + }, + "yargs-parser": { + "version": "18.1.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.0.tgz", + "integrity": "sha512-o/Jr6JBOv6Yx3pL+5naWSoIA2jJ+ZkMYQG/ie9qFbukBe4uzmBatlXFOiu/tNKRWEtyf+n5w7jc/O16ufqOTdQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "dev": true, + "requires": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + }, + "dependencies": { + "fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "dev": true, + "requires": { + "pend": "~1.2.0" + } + } + } + } + } +} diff --git a/examples/before-each-visit/package.json b/examples/before-each-visit/package.json new file mode 100644 index 000000000..4132cd811 --- /dev/null +++ b/examples/before-each-visit/package.json @@ -0,0 +1,14 @@ +{ + "name": "example-before-each-visit", + "description": "Getting code coverage when cy.visit is used in beforeEach hook", + "devDependencies": { + "bin-up": "1.3.2", + "cypress": "4.1.0", + "istanbul-lib-coverage": "3.0.0", + "nyc": "15.0.0" + }, + "scripts": { + "coverage:report using npx": "npx nyc report --report-dir ./coverage --temp-dir .nyc_output --reporter=lcov --reporter=clover --reporter=json", + "coverage:report": "bin-up nyc report --report-dir ./coverage --temp-dir .nyc_output --reporter=lcov --reporter=clover --reporter=json" + } +} diff --git a/task.js b/task.js index c6675fb26..d8cb9c0a5 100644 --- a/task.js +++ b/task.js @@ -22,6 +22,9 @@ const pkg = fs.existsSync(pkgFilename) ? JSON.parse(fs.readFileSync(pkgFilename, 'utf8')) : {} const nycOptions = pkg.nyc || {} +const scripts = pkg.scripts || {} +const DEFAULT_CUSTOM_COVERAGE_SCRIPT_NAME = 'coverage:report' +const customNycReportScript = scripts[DEFAULT_CUSTOM_COVERAGE_SCRIPT_NAME] function saveCoverage(coverage) { if (!existsSync(coverageFolder)) { @@ -92,6 +95,18 @@ module.exports = { return null } + if (customNycReportScript) { + debug( + 'saving coverage report using script "%s" from package.json, command: %s', + DEFAULT_CUSTOM_COVERAGE_SCRIPT_NAME, + customNycReportScript + ) + debug('current working directory is %s', process.cwd()) + return execa('npm', ['run', DEFAULT_CUSTOM_COVERAGE_SCRIPT_NAME], { + stdio: 'inherit' + }) + } + const reportDir = nycOptions['report-dir'] || './coverage' const reporter = nycOptions['reporter'] || ['lcov', 'clover', 'json'] const reporters = Array.isArray(reporter) From ae774ce8af0f31a9c4f8238f9b14a1469382b562 Mon Sep 17 00:00:00 2001 From: Gleb Bahmutov Date: Mon, 9 Mar 2020 16:11:58 -0400 Subject: [PATCH 21/85] add full example with visit in before hook --- examples/before-all-visit/README.md | 13 + examples/before-all-visit/cypress.json | 1 + .../cypress/fixtures/example.json | 5 + .../cypress/integration/spec.js | 18 + .../before-all-visit/cypress/plugins/index.js | 3 + .../before-all-visit/cypress/support/index.js | 1 + examples/before-all-visit/index.html | 4 + .../before-all-visit/main-instrumented.js | 146 + examples/before-all-visit/main.js | 3 + examples/before-all-visit/package-lock.json | 2820 +++++++++++++++++ examples/before-all-visit/package.json | 14 + 11 files changed, 3028 insertions(+) create mode 100644 examples/before-all-visit/README.md create mode 100644 examples/before-all-visit/cypress.json create mode 100644 examples/before-all-visit/cypress/fixtures/example.json create mode 100644 examples/before-all-visit/cypress/integration/spec.js create mode 100644 examples/before-all-visit/cypress/plugins/index.js create mode 100644 examples/before-all-visit/cypress/support/index.js create mode 100644 examples/before-all-visit/index.html create mode 100644 examples/before-all-visit/main-instrumented.js create mode 100644 examples/before-all-visit/main.js create mode 100644 examples/before-all-visit/package-lock.json create mode 100644 examples/before-all-visit/package.json diff --git a/examples/before-all-visit/README.md b/examples/before-all-visit/README.md new file mode 100644 index 000000000..d335f1a70 --- /dev/null +++ b/examples/before-all-visit/README.md @@ -0,0 +1,13 @@ +# example: before-all-visit + +Code coverage example where the `cy.visit` happens in `before` hook + +Code was instrumented with + +```shell +npx nyc instrument --compact false main.js > main-instrumented.js +``` + +and then removed absolute folder paths, leaving just relative path `main.js` in the produced file. + +The code uses custom coverage report command in [package.json](package.json) to call `nyc` diff --git a/examples/before-all-visit/cypress.json b/examples/before-all-visit/cypress.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/examples/before-all-visit/cypress.json @@ -0,0 +1 @@ +{} diff --git a/examples/before-all-visit/cypress/fixtures/example.json b/examples/before-all-visit/cypress/fixtures/example.json new file mode 100644 index 000000000..da18d9352 --- /dev/null +++ b/examples/before-all-visit/cypress/fixtures/example.json @@ -0,0 +1,5 @@ +{ + "name": "Using fixtures to represent data", + "email": "hello@cypress.io", + "body": "Fixtures are a great way to mock data for responses to routes" +} \ No newline at end of file diff --git a/examples/before-all-visit/cypress/integration/spec.js b/examples/before-all-visit/cypress/integration/spec.js new file mode 100644 index 000000000..45f075e0b --- /dev/null +++ b/examples/before-all-visit/cypress/integration/spec.js @@ -0,0 +1,18 @@ +/// +describe('coverage information', () => { + before(() => { + cy.visit('index.html') + }) + + it('calls add', () => { + cy.window() + .invoke('add', 2, 3) + .should('equal', 5) + }) + + it('calls sub', () => { + cy.window() + .invoke('sub', 2, 3) + .should('equal', -1) + }) +}) diff --git a/examples/before-all-visit/cypress/plugins/index.js b/examples/before-all-visit/cypress/plugins/index.js new file mode 100644 index 000000000..172deda45 --- /dev/null +++ b/examples/before-all-visit/cypress/plugins/index.js @@ -0,0 +1,3 @@ +module.exports = (on, config) => { + on('task', require('../../../../task')) +} diff --git a/examples/before-all-visit/cypress/support/index.js b/examples/before-all-visit/cypress/support/index.js new file mode 100644 index 000000000..dd60efa28 --- /dev/null +++ b/examples/before-all-visit/cypress/support/index.js @@ -0,0 +1 @@ +import '../../../../support' diff --git a/examples/before-all-visit/index.html b/examples/before-all-visit/index.html new file mode 100644 index 000000000..b6691c8af --- /dev/null +++ b/examples/before-all-visit/index.html @@ -0,0 +1,4 @@ + + Page body + + diff --git a/examples/before-all-visit/main-instrumented.js b/examples/before-all-visit/main-instrumented.js new file mode 100644 index 000000000..0550e9bb7 --- /dev/null +++ b/examples/before-all-visit/main-instrumented.js @@ -0,0 +1,146 @@ +function cov_6k5v991cn() { + var path = 'main.js' + var hash = 'd384017ecd51a8d90283ba0dec593332209519de' + var global = new Function('return this')() + var gcv = '__coverage__' + var coverageData = { + path: 'main.js', + statementMap: { + '0': { + start: { + line: 1, + column: 0 + }, + end: { + line: 1, + column: 28 + } + }, + '1': { + start: { + line: 1, + column: 23 + }, + end: { + line: 1, + column: 28 + } + }, + '2': { + start: { + line: 3, + column: 0 + }, + end: { + line: 3, + column: 28 + } + }, + '3': { + start: { + line: 3, + column: 23 + }, + end: { + line: 3, + column: 28 + } + } + }, + fnMap: { + '0': { + name: '(anonymous_0)', + decl: { + start: { + line: 1, + column: 13 + }, + end: { + line: 1, + column: 14 + } + }, + loc: { + start: { + line: 1, + column: 23 + }, + end: { + line: 1, + column: 28 + } + }, + line: 1 + }, + '1': { + name: '(anonymous_1)', + decl: { + start: { + line: 3, + column: 13 + }, + end: { + line: 3, + column: 14 + } + }, + loc: { + start: { + line: 3, + column: 23 + }, + end: { + line: 3, + column: 28 + } + }, + line: 3 + } + }, + branchMap: {}, + s: { + '0': 0, + '1': 0, + '2': 0, + '3': 0 + }, + f: { + '0': 0, + '1': 0 + }, + b: {}, + _coverageSchema: '1a1c01bbd47fc00a2c39e90264f33305004495a9', + hash: 'd384017ecd51a8d90283ba0dec593332209519de' + } + var coverage = global[gcv] || (global[gcv] = {}) + + if (!coverage[path] || coverage[path].hash !== hash) { + coverage[path] = coverageData + } + + var actualCoverage = coverage[path] + + cov_6k5v991cn = function() { + return actualCoverage + } + + return actualCoverage +} + +cov_6k5v991cn() +cov_6k5v991cn().s[0]++ + +window.add = (a, b) => { + cov_6k5v991cn().f[0]++ + cov_6k5v991cn().s[1]++ + return a + b +} + +cov_6k5v991cn().s[2]++ + +window.sub = (a, b) => { + cov_6k5v991cn().f[1]++ + cov_6k5v991cn().s[3]++ + return a - b +} +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1haW4uanMiXSwibmFtZXMiOlsid2luZG93IiwiYWRkIiwiYSIsImIiLCJzdWIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBQSxNQUFNLENBQUNDLEdBQVAsR0FBYSxDQUFDQyxDQUFELEVBQUlDLENBQUosS0FBVTtBQUFBO0FBQUE7QUFBQSxTQUFBRCxDQUFDLEdBQUdDLENBQUo7QUFBSyxDQUE1Qjs7OztBQUVBSCxNQUFNLENBQUNJLEdBQVAsR0FBYSxDQUFDRixDQUFELEVBQUlDLENBQUosS0FBVTtBQUFBO0FBQUE7QUFBQSxTQUFBRCxDQUFDLEdBQUdDLENBQUo7QUFBSyxDQUE1QiIsInNvdXJjZXNDb250ZW50IjpbIndpbmRvdy5hZGQgPSAoYSwgYikgPT4gYSArIGJcblxud2luZG93LnN1YiA9IChhLCBiKSA9PiBhIC0gYlxuIl19 diff --git a/examples/before-all-visit/main.js b/examples/before-all-visit/main.js new file mode 100644 index 000000000..5dd69be2f --- /dev/null +++ b/examples/before-all-visit/main.js @@ -0,0 +1,3 @@ +window.add = (a, b) => a + b + +window.sub = (a, b) => a - b diff --git a/examples/before-all-visit/package-lock.json b/examples/before-all-visit/package-lock.json new file mode 100644 index 000000000..d0f555115 --- /dev/null +++ b/examples/before-all-visit/package-lock.json @@ -0,0 +1,2820 @@ +{ + "name": "example-before-all-visit", + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "@babel/code-frame": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.8.3" + } + }, + "@babel/core": { + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.7.tgz", + "integrity": "sha512-rBlqF3Yko9cynC5CCFy6+K/w2N+Sq/ff2BPy+Krp7rHlABIr5epbA7OxVeKoMHB39LZOp1UY5SuLjy6uWi35yA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.7", + "@babel/helpers": "^7.8.4", + "@babel/parser": "^7.8.7", + "@babel/template": "^7.8.6", + "@babel/traverse": "^7.8.6", + "@babel/types": "^7.8.7", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.0", + "lodash": "^4.17.13", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + } + }, + "@babel/generator": { + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.7.tgz", + "integrity": "sha512-DQwjiKJqH4C3qGiyQCAExJHoZssn49JTMJgZ8SANGgVFdkupcUhLOdkAeoC6kmHZCPfoDG5M0b6cFlSN5wW7Ew==", + "dev": true, + "requires": { + "@babel/types": "^7.8.7", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", + "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", + "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", + "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helpers": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.8.4.tgz", + "integrity": "sha512-VPbe7wcQ4chu4TDQjimHv/5tj73qz88o12EPkO2ValS2QiQS/1F2SsjyIGNnAD0vF/nZS6Cf9i+vW6HIlnaR8w==", + "dev": true, + "requires": { + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.4", + "@babel/types": "^7.8.3" + } + }, + "@babel/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.7.tgz", + "integrity": "sha512-9JWls8WilDXFGxs0phaXAZgpxTZhSk/yOYH2hTHC0X1yC7Z78IJfvR1vJ+rmJKq3I35td2XzXzN6ZLYlna+r/A==", + "dev": true + }, + "@babel/template": { + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", + "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.6", + "@babel/types": "^7.8.6" + } + }, + "@babel/traverse": { + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.6.tgz", + "integrity": "sha512-2B8l0db/DPi8iinITKuo7cbPznLCEk0kCxDoB9/N6gGNg/gxOXiR/IcymAFPiBwk5w6TtQ27w4wpElgp9btR9A==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.6", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.6", + "@babel/types": "^7.8.6", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz", + "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "@cypress/listr-verbose-renderer": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@cypress/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz", + "integrity": "sha1-p3SS9LEdzHxEajSz4ochr9M8ZCo=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "cli-cursor": "^1.0.2", + "date-fns": "^1.27.2", + "figures": "^1.7.0" + }, + "dependencies": { + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "@cypress/xvfb": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz", + "integrity": "sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==", + "dev": true, + "requires": { + "debug": "^3.1.0", + "lodash.once": "^4.1.1" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "@istanbuljs/load-nyc-config": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.0.0.tgz", + "integrity": "sha512-ZR0rq/f/E4f4XcgnDvtMWXCUJpi8eO0rssVhmztsZqLIEFA9UUP9zmpE0VxlM+kv/E1ul2I876Fwil2ayptDVg==", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + } + }, + "@istanbuljs/schema": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", + "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==", + "dev": true + }, + "@samverschueren/stream-to-observable": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz", + "integrity": "sha512-MI4Xx6LHs4Webyvi6EbspgyAb4D2Q2VtnCQ1blOJcoLS6mVa8lNN2rkIy1CVxfTUpoyIbCTkXES1rLXztFD1lg==", + "dev": true, + "requires": { + "any-observable": "^0.3.0" + } + }, + "@types/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", + "dev": true + }, + "@types/sizzle": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.2.tgz", + "integrity": "sha512-7EJYyKTL7tFR8+gDbB6Wwz/arpGa0Mywk1TJbNzKzHtzbwVmY4HR9WqS5VV7dsBUKQmPNr192jHr/VpBluj/hg==", + "dev": true + }, + "aggregate-error": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz", + "integrity": "sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA==", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "dependencies": { + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + } + } + }, + "ajv": { + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", + "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "dev": true + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "any-observable": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/any-observable/-/any-observable-0.3.0.tgz", + "integrity": "sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog==", + "dev": true + }, + "append-transform": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", + "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", + "dev": true, + "requires": { + "default-require-extensions": "^3.0.0" + } + }, + "arch": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/arch/-/arch-2.1.1.tgz", + "integrity": "sha512-BLM56aPo9vLLFVa8+/+pJLnrZ7QGGTVHWsCwieAWT9o9K8UeGaQbzZbGoabWLOo2ksBCztoXdqBZBplqLDDCSg==", + "dev": true + }, + "archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", + "dev": true + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + }, + "async": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz", + "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true + }, + "aws4": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz", + "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "bin-up": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/bin-up/-/bin-up-1.3.2.tgz", + "integrity": "sha512-ePRL4VTK6jE/rXyoTH/YjzLRqp397y/dUSRXrPe8OcVP4min4bLJxNhmTdZfEF4zQYn4yYaI6WGy8M7F1mY1Aw==", + "dev": true, + "requires": { + "execa": "2.0.5" + }, + "dependencies": { + "execa": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/execa/-/execa-2.0.5.tgz", + "integrity": "sha512-SwmwZZyJjflcqLSgllk4EQlMLst2p9muyzwNugKGFlpAz6rZ7M+s2nBR97GAq4Vzjwx2y9rcMcmqzojwN+xwNA==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.5", + "get-stream": "^5.0.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^3.0.0", + "onetime": "^5.1.0", + "p-finally": "^2.0.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", + "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "npm-run-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-3.1.0.tgz", + "integrity": "sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "onetime": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", + "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "p-finally": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz", + "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + } + } + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "dev": true + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true + }, + "cachedir": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.3.0.tgz", + "integrity": "sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==", + "dev": true + }, + "caching-transform": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", + "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", + "dev": true, + "requires": { + "hasha": "^5.0.0", + "make-dir": "^3.0.0", + "package-hash": "^4.0.0", + "write-file-atomic": "^3.0.0" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "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" + }, + "dependencies": { + "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" + } + }, + "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" + } + } + } + }, + "check-more-types": { + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", + "integrity": "sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA=", + "dev": true + }, + "ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true + }, + "cli-cursor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", + "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", + "dev": true, + "requires": { + "restore-cursor": "^1.0.1" + } + }, + "cli-truncate": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz", + "integrity": "sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ=", + "dev": true, + "requires": { + "slice-ansi": "0.0.4", + "string-width": "^1.0.1" + } + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "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" + } + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + } + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true + }, + "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 + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.0.tgz", + "integrity": "sha512-NIQrwvv9V39FHgGFm36+U9SMQzbiHvU79k+iADraJTpmrFFfx7Ds0IvDoAdZsDrknlkRk14OYoWXb57uTh7/sw==", + "dev": true + }, + "common-tags": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz", + "integrity": "sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "cypress": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-4.1.0.tgz", + "integrity": "sha512-FFV8pS9iuriSX4M9rna6awJUhiqozZD1D5z5BprCUJoho1ctbcgpkEUIUnqxli2OwjQqVz07egO+iqoGL+tw7g==", + "dev": true, + "requires": { + "@cypress/listr-verbose-renderer": "0.4.1", + "@cypress/xvfb": "1.2.4", + "@types/sizzle": "2.3.2", + "arch": "2.1.1", + "bluebird": "3.7.2", + "cachedir": "2.3.0", + "chalk": "2.4.2", + "check-more-types": "2.24.0", + "commander": "4.1.0", + "common-tags": "1.8.0", + "debug": "4.1.1", + "eventemitter2": "4.1.2", + "execa": "1.0.0", + "executable": "4.1.1", + "extract-zip": "1.6.7", + "fs-extra": "8.1.0", + "getos": "3.1.4", + "is-ci": "2.0.0", + "is-installed-globally": "0.1.0", + "lazy-ass": "1.6.0", + "listr": "0.14.3", + "lodash": "4.17.15", + "log-symbols": "3.0.0", + "minimist": "1.2.0", + "moment": "2.24.0", + "ospath": "1.2.2", + "pretty-bytes": "5.3.0", + "ramda": "0.26.1", + "request": "2.88.0", + "request-progress": "3.0.0", + "supports-color": "7.1.0", + "tmp": "0.1.0", + "untildify": "4.0.0", + "url": "0.11.0", + "yauzl": "2.10.0" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "date-fns": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz", + "integrity": "sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==", + "dev": true + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "default-require-extensions": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz", + "integrity": "sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==", + "dev": true, + "requires": { + "strip-bom": "^4.0.0" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "elegant-spinner": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz", + "integrity": "sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "eventemitter2": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-4.1.2.tgz", + "integrity": "sha1-DhqEd6+CGm7zmVsxG/dMI6UkfxU=", + "dev": true + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "executable": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz", + "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==", + "dev": true, + "requires": { + "pify": "^2.2.0" + } + }, + "exit-hook": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", + "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=", + "dev": true + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "extract-zip": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.7.tgz", + "integrity": "sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k=", + "dev": true, + "requires": { + "concat-stream": "1.6.2", + "debug": "2.6.9", + "mkdirp": "0.5.1", + "yauzl": "2.4.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "yauzl": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz", + "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=", + "dev": true, + "requires": { + "fd-slicer": "~1.0.1" + } + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", + "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fd-slicer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", + "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", + "dev": true, + "requires": { + "pend": "~1.2.0" + } + }, + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" + } + }, + "find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "foreground-child": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", + "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" + }, + "dependencies": { + "cross-spawn": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.1.tgz", + "integrity": "sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "fromentries": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.2.0.tgz", + "integrity": "sha512-33X7H/wdfO99GdRLLgkjUrD4geAFdq/Uv0kl3HD4da6HDixd2GUg8Mw7dahLCV9r/EARkmtYBB6Tch4EEokFTQ==", + "dev": true + }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "gensync": { + "version": "1.0.0-beta.1", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz", + "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "getos": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/getos/-/getos-3.1.4.tgz", + "integrity": "sha512-UORPzguEB/7UG5hqiZai8f0vQ7hzynMQyJLxStoQ8dPGAcmgsfXOPA4iE/fGtweHYkK+z4zc9V0g+CIFRf5HYw==", + "dev": true, + "requires": { + "async": "^3.1.0" + } + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "global-dirs": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", + "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", + "dev": true, + "requires": { + "ini": "^1.3.4" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "graceful-fs": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", + "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", + "dev": true + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, + "har-validator": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", + "dev": true, + "requires": { + "ajv": "^6.5.5", + "har-schema": "^2.0.0" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "hasha": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.0.tgz", + "integrity": "sha512-2W+jKdQbAdSIrggA8Q35Br8qKadTrqCTC8+XZvBWepKDK6m9XkX6Iz1a2yh2KP01kzAR/dpuMeUnocoLYDcskw==", + "dev": true, + "requires": { + "is-stream": "^2.0.0", + "type-fest": "^0.8.0" + }, + "dependencies": { + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + } + } + }, + "html-escaper": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.0.tgz", + "integrity": "sha512-a4u9BeERWGu/S8JiWEAQcdrg9v4QArtP9keViQjGMdff20fBdd8waotXaNmODqBe6uZ3Nafi7K/ho4gCQHV3Ig==", + "dev": true + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "indent-string": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", + "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true + }, + "is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, + "requires": { + "ci-info": "^2.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-installed-globally": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", + "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", + "dev": true, + "requires": { + "global-dirs": "^0.1.0", + "is-path-inside": "^1.0.0" + } + }, + "is-observable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-1.1.0.tgz", + "integrity": "sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==", + "dev": true, + "requires": { + "symbol-observable": "^1.1.0" + } + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "dev": true, + "requires": { + "path-is-inside": "^1.0.1" + } + }, + "is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", + "dev": true + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "istanbul-lib-coverage": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", + "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", + "dev": true + }, + "istanbul-lib-hook": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", + "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", + "dev": true, + "requires": { + "append-transform": "^2.0.0" + } + }, + "istanbul-lib-instrument": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.1.tgz", + "integrity": "sha512-imIchxnodll7pvQBYOqUu88EufLCU56LMeFPZZM/fJZ1irYcYdqroaV+ACK1Ila8ls09iEYArp+nqyC6lW1Vfg==", + "dev": true, + "requires": { + "@babel/core": "^7.7.5", + "@babel/parser": "^7.7.5", + "@babel/template": "^7.7.4", + "@babel/traverse": "^7.7.4", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "istanbul-lib-processinfo": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz", + "integrity": "sha512-kOwpa7z9hme+IBPZMzQ5vdQj8srYgAtaRqeI48NGmAQ+/5yKiHLV0QbYqQpxsdEF0+w14SoB8YbnHKcXE2KnYw==", + "dev": true, + "requires": { + "archy": "^1.0.0", + "cross-spawn": "^7.0.0", + "istanbul-lib-coverage": "^3.0.0-alpha.1", + "make-dir": "^3.0.0", + "p-map": "^3.0.0", + "rimraf": "^3.0.0", + "uuid": "^3.3.3" + }, + "dependencies": { + "cross-spawn": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.1.tgz", + "integrity": "sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + } + }, + "istanbul-lib-source-maps": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz", + "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-2osTcC8zcOSUkImzN2EWQta3Vdi4WjjKw99P2yWx5mLnigAM0Rd5uYFn1cf2i/Ois45GkNjaoTqc5CxgMSX80A==", + "dev": true, + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "json5": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz", + "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "lazy-ass": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", + "integrity": "sha1-eZllXoZGwX8In90YfRUNMyTVRRM=", + "dev": true + }, + "listr": { + "version": "0.14.3", + "resolved": "https://registry.npmjs.org/listr/-/listr-0.14.3.tgz", + "integrity": "sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA==", + "dev": true, + "requires": { + "@samverschueren/stream-to-observable": "^0.3.0", + "is-observable": "^1.1.0", + "is-promise": "^2.1.0", + "is-stream": "^1.1.0", + "listr-silent-renderer": "^1.1.1", + "listr-update-renderer": "^0.5.0", + "listr-verbose-renderer": "^0.5.0", + "p-map": "^2.0.0", + "rxjs": "^6.3.3" + } + }, + "listr-silent-renderer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz", + "integrity": "sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4=", + "dev": true + }, + "listr-update-renderer": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz", + "integrity": "sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA==", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "cli-truncate": "^0.2.1", + "elegant-spinner": "^1.0.1", + "figures": "^1.7.0", + "indent-string": "^3.0.0", + "log-symbols": "^1.0.2", + "log-update": "^2.3.0", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "log-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", + "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", + "dev": true, + "requires": { + "chalk": "^1.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "listr-verbose-renderer": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz", + "integrity": "sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "cli-cursor": "^2.1.0", + "date-fns": "^1.27.2", + "figures": "^2.0.0" + }, + "dependencies": { + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + } + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "dev": true + }, + "lodash.flattendeep": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", + "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", + "dev": true + }, + "lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=", + "dev": true + }, + "log-symbols": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", + "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2" + } + }, + "log-update": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-2.3.0.tgz", + "integrity": "sha1-iDKP19HOeTiykoN0bwsbwSayRwg=", + "dev": true, + "requires": { + "ansi-escapes": "^3.0.0", + "cli-cursor": "^2.0.0", + "wrap-ansi": "^3.0.1" + }, + "dependencies": { + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + } + } + }, + "make-dir": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.2.tgz", + "integrity": "sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w==", + "dev": true, + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "mime-db": { + "version": "1.43.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz", + "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==", + "dev": true + }, + "mime-types": { + "version": "2.1.26", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz", + "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==", + "dev": true, + "requires": { + "mime-db": "1.43.0" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + } + } + }, + "moment": { + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz", + "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node-preload": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", + "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", + "dev": true, + "requires": { + "process-on-spawn": "^1.0.0" + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "nyc": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.0.0.tgz", + "integrity": "sha512-qcLBlNCKMDVuKb7d1fpxjPR8sHeMVX0CHarXAVzrVWoFrigCkYR8xcrjfXSPi5HXM7EU78L6ywO7w1c5rZNCNg==", + "dev": true, + "requires": { + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "caching-transform": "^4.0.0", + "convert-source-map": "^1.7.0", + "decamelize": "^1.2.0", + "find-cache-dir": "^3.2.0", + "find-up": "^4.1.0", + "foreground-child": "^2.0.0", + "glob": "^7.1.6", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-hook": "^3.0.0", + "istanbul-lib-instrument": "^4.0.0", + "istanbul-lib-processinfo": "^2.0.2", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.0", + "js-yaml": "^3.13.1", + "make-dir": "^3.0.0", + "node-preload": "^0.2.0", + "p-map": "^3.0.0", + "process-on-spawn": "^1.0.0", + "resolve-from": "^5.0.0", + "rimraf": "^3.0.0", + "signal-exit": "^3.0.2", + "spawn-wrap": "^2.0.0", + "test-exclude": "^6.0.0", + "uuid": "^3.3.3", + "yargs": "^15.0.2" + }, + "dependencies": { + "p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", + "dev": true + }, + "ospath": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz", + "integrity": "sha1-EnZjl3Sj+O8lcvf+QoDg6kVQwHs=", + "dev": true + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "p-limit": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", + "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "package-hash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", + "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.15", + "hasha": "^5.0.0", + "lodash.flattendeep": "^4.4.0", + "release-zalgo": "^1.0.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true + }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", + "dev": true + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + }, + "pretty-bytes": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.3.0.tgz", + "integrity": "sha512-hjGrh+P926p4R4WbaB6OckyRtO0F0/lQBiT+0gnxjV+5kjPBrfVBFCsCLbMqVQeydvIoouYTCmmEURiH3R1Bdg==", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "process-on-spawn": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", + "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", + "dev": true, + "requires": { + "fromentries": "^1.2.0" + } + }, + "psl": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.7.0.tgz", + "integrity": "sha512-5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ==", + "dev": true + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true + }, + "ramda": { + "version": "0.26.1", + "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.26.1.tgz", + "integrity": "sha512-hLWjpy7EnsDBb0p+Z3B7rPi3GDeRG5ZtiI33kJhTt+ORCd38AbAIjB/9zRIUoeTbE/AVX5ZkU7m6bznsvrf8eQ==", + "dev": true + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "release-zalgo": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", + "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", + "dev": true, + "requires": { + "es6-error": "^4.0.1" + } + }, + "request": { + "version": "2.88.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", + "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.0", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + } + }, + "request-progress": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz", + "integrity": "sha1-TKdUCBx/7GP1BeT6qCWqBs1mnb4=", + "dev": true, + "requires": { + "throttleit": "^1.0.0" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "resolve": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", + "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + }, + "restore-cursor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", + "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", + "dev": true, + "requires": { + "exit-hook": "^1.0.0", + "onetime": "^1.0.0" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "rxjs": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz", + "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, + "slice-ansi": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", + "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "spawn-wrap": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", + "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", + "dev": true, + "requires": { + "foreground-child": "^2.0.0", + "is-windows": "^1.0.2", + "make-dir": "^3.0.0", + "rimraf": "^3.0.0", + "signal-exit": "^3.0.2", + "which": "^2.0.1" + }, + "dependencies": { + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "dev": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + } + } + }, + "symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", + "dev": true + }, + "test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + } + }, + "throttleit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz", + "integrity": "sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=", + "dev": true + }, + "tmp": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.1.0.tgz", + "integrity": "sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==", + "dev": true, + "requires": { + "rimraf": "^2.6.3" + } + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + }, + "tough-cookie": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", + "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", + "dev": true, + "requires": { + "psl": "^1.1.24", + "punycode": "^1.4.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + } + } + }, + "tslib": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz", + "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==", + "dev": true + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "requires": { + "is-typedarray": "^1.0.0" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + }, + "untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "dev": true + }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "wrap-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-3.0.1.tgz", + "integrity": "sha1-KIoE2H7aXChuBg3+jxNc6NAH+Lo=", + "dev": true, + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "dev": true + }, + "yargs": { + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.0.tgz", + "integrity": "sha512-g/QCnmjgOl1YJjGsnUg2SatC7NUYEiLXJqxNOQU9qSpjzGtGXda9b+OKccr1kLTy8BN9yqEyqfq5lxlwdc13TA==", + "dev": true, + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "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" + } + } + } + }, + "yargs-parser": { + "version": "18.1.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.0.tgz", + "integrity": "sha512-o/Jr6JBOv6Yx3pL+5naWSoIA2jJ+ZkMYQG/ie9qFbukBe4uzmBatlXFOiu/tNKRWEtyf+n5w7jc/O16ufqOTdQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "dev": true, + "requires": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + }, + "dependencies": { + "fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "dev": true, + "requires": { + "pend": "~1.2.0" + } + } + } + } + } +} diff --git a/examples/before-all-visit/package.json b/examples/before-all-visit/package.json new file mode 100644 index 000000000..fc86b64c9 --- /dev/null +++ b/examples/before-all-visit/package.json @@ -0,0 +1,14 @@ +{ + "name": "example-before-all-visit", + "description": "Getting code coverage when cy.visit is used in before hook", + "devDependencies": { + "bin-up": "1.3.2", + "cypress": "4.1.0", + "istanbul-lib-coverage": "3.0.0", + "nyc": "15.0.0" + }, + "scripts": { + "coverage:report using npx": "npx nyc report --report-dir ./coverage --temp-dir .nyc_output --reporter=lcov --reporter=clover --reporter=json", + "coverage:report": "bin-up nyc report --report-dir ./coverage --temp-dir .nyc_output --reporter=lcov --reporter=clover --reporter=json" + } +} From 1e671cf4ba1380e33bd0232790c216ca3ab5cfc4 Mon Sep 17 00:00:00 2001 From: Gleb Bahmutov Date: Mon, 9 Mar 2020 16:14:32 -0400 Subject: [PATCH 22/85] add before all example to circleci file --- .circleci/config.yml | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 9de77c52a..9cf465bbb 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -93,6 +93,31 @@ workflows: command: npx nyc report --check-coverage true --lines 100 working_directory: examples/before-each-visit + - cypress/run: + name: example-before-all-visit + requires: + - cypress/install + # install dependencies in the root folder + post-install: + - run: npm ci + # there are no jobs to follow this one + # so no need to save the workspace files (saves time) + no-workspace: true + working_directory: examples/before-all-visit + # store screenshots and videos + store_artifacts: true + post-steps: + - run: cat examples/before-all-visit/.nyc_output/out.json + # store the created coverage report folder + # you can click on it in the CircleCI UI + # to see live static HTML site + - store_artifacts: + path: examples/before-all-visit/coverage + # make sure the examples captures 100% of code + - run: + command: npx nyc report --check-coverage true --lines 100 + working_directory: examples/before-all-visit + - publish: filters: branches: @@ -102,3 +127,4 @@ workflows: - frontend coverage - backend coverage - example-before-each-visit + - example-before-all-visit From c17d759ce4daefba9fbd19698b391ac342ff5b15 Mon Sep 17 00:00:00 2001 From: Gleb Bahmutov Date: Mon, 9 Mar 2020 16:50:17 -0400 Subject: [PATCH 23/85] feat: handle cy.visit inside before callback (#152) * feat: handle before callback * update readme * remove debug console.log calls --- README.md | 7 +++++ .../cypress/integration/spec.js | 1 + support.js | 30 ++++++++++++++----- 3 files changed, 31 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index ad31c9541..0c9094957 100644 --- a/README.md +++ b/README.md @@ -322,6 +322,13 @@ npm run dev:no:coverage ## Examples +### Internal examples + +- [examples/before-each-visit](examples/before-each-visit) checks if code coverage correctly keeps track of code when doing `cy.visit` before each test +- [examples-before-all-visit](examples/before-all-visit) checks if code coverage works when `cy.visit` is made once in the `before` hook + +### External examples + - [cypress-io/cypress-example-todomvc-redux](https://github.com/cypress-io/cypress-example-todomvc-redux) is a React / Redux application with 100% code coverage. - [cypress-io/cypress-example-realworld](https://github.com/cypress-io/cypress-example-realworld) shows how to collect the coverage information from both back and front end code and merge it into a single report. The E2E test step runs in parallel in several CI containers, each saving just partial test coverage information. Then a merge job runs taking artifacts and combining coverage into the final report to be sent to an exteral coverage as a service app. - [bahmutov/code-coverage-webpack-dev-server](https://github.com/bahmutov/code-coverage-webpack-dev-server) shows how to collect code coverage from an application that uses webpack-dev-server. diff --git a/examples/before-all-visit/cypress/integration/spec.js b/examples/before-all-visit/cypress/integration/spec.js index 45f075e0b..d1c70b981 100644 --- a/examples/before-all-visit/cypress/integration/spec.js +++ b/examples/before-all-visit/cypress/integration/spec.js @@ -1,6 +1,7 @@ /// describe('coverage information', () => { before(() => { + cy.log('visiting index.html') cy.visit('index.html') }) diff --git a/support.js b/support.js index 03b45a030..b815b5109 100644 --- a/support.js +++ b/support.js @@ -46,18 +46,34 @@ if (Cypress.env('coverage') === false) { // to let the user know the coverage has been collected windowCoverageObjects = [] - // save reference to coverage for each app window loaded in the test - cy.on('window:load', win => { + const saveCoverageObject = win => { // if application code has been instrumented, the app iframe "window" has an object const applicationSourceCoverage = win.__coverage__ + if (!applicationSourceCoverage) { + return + } - if (applicationSourceCoverage) { - windowCoverageObjects.push({ - coverage: applicationSourceCoverage, - pathname: win.location.pathname + if ( + Cypress._.find(windowCoverageObjects, { + coverage: applicationSourceCoverage }) + ) { + // this application code coverage object is already known + // which can happen when combining `window:load` and `before` callbacks + return } - }) + + windowCoverageObjects.push({ + coverage: applicationSourceCoverage, + pathname: win.location.pathname + }) + } + + // save reference to coverage for each app window loaded in the test + cy.on('window:load', saveCoverageObject) + + // save reference if visiting a page inside a before() hook + cy.window().then(saveCoverageObject) }) afterEach(() => { From d9eed0ac2e8bcdc67f7727ecb311c84af28ef510 Mon Sep 17 00:00:00 2001 From: Gleb Bahmutov Date: Mon, 9 Mar 2020 23:12:07 -0400 Subject: [PATCH 24/85] feat: find nyc even if installed higher up (#153) * use latest orb * use fixed orb * use custom command * do not need local deps * update before each example * add readme note --- .circleci/config.yml | 20 +- .gitignore | 2 + README.md | 16 +- examples/before-all-visit/package-lock.json | 2818 +----------------- examples/before-all-visit/package.json | 10 +- examples/before-each-visit/package-lock.json | 2818 +----------------- examples/before-each-visit/package.json | 10 +- package-lock.json | 69 +- package.json | 4 +- task.js | 13 +- 10 files changed, 108 insertions(+), 5672 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 9cf465bbb..0e3a1ba71 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,7 +1,7 @@ # https://circleci.com/docs/2.0/configuration-reference/ version: 2.1 orbs: - cypress: cypress-io/cypress@1.13.0 # used to run e2e tests + cypress: cypress-io/cypress@1.17.1 # used to run e2e tests node: circleci/node@1.1.6 # used to publish new NPM version jobs: @@ -22,10 +22,13 @@ workflows: - cypress/install: post-steps: - run: npm run check:markdown + - cypress/run: name: frontend coverage requires: - cypress/install + # grab the workspace created by cypress/install job + attach-workspace: true # we need to start the web application start: npm start # there are no jobs to follow this one @@ -50,6 +53,9 @@ workflows: requires: - cypress/install + # grab the workspace created by cypress/install job + attach-workspace: true + start: npm run start:test:backend command: npx cypress run --config-file cypress-backend.json @@ -69,16 +75,14 @@ workflows: - run: npx nyc report --check-coverage true --lines 100 --include test-backend/index.js - cypress/run: + attach-workspace: true name: example-before-each-visit requires: - cypress/install - # install dependencies in the root folder - post-install: - - run: npm ci # there are no jobs to follow this one # so no need to save the workspace files (saves time) no-workspace: true - working_directory: examples/before-each-visit + command: npx cypress run --project examples/before-each-visit # store screenshots and videos store_artifacts: true post-steps: @@ -94,16 +98,14 @@ workflows: working_directory: examples/before-each-visit - cypress/run: + attach-workspace: true name: example-before-all-visit requires: - cypress/install - # install dependencies in the root folder - post-install: - - run: npm ci # there are no jobs to follow this one # so no need to save the workspace files (saves time) no-workspace: true - working_directory: examples/before-all-visit + command: npx cypress run --project examples/before-all-visit # store screenshots and videos store_artifacts: true post-steps: diff --git a/.gitignore b/.gitignore index 8bd04cdad..f1a4f3c45 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,5 @@ dist/ .cache/ .vscode/ cypress-coverage/ +examples/*/cypress/videos +examples/*/cypress/screenshots diff --git a/README.md b/README.md index 0c9094957..29f73a517 100644 --- a/README.md +++ b/README.md @@ -181,9 +181,20 @@ You can specify custom coverage reporter(s) to use. For example to output text s **Tip:** find list of reporters [here](https://istanbul.js.org/docs/advanced/alternative-reporters/) +## NYC + +This module tries to find the `nyc` tool using [bin-up][bin-up], so it would be found in the current `node_modules/.bin` or folders up the parent chain + +```text +node_modules/.bin/ +../node_modules/.bin/ +../../node_modules/.bin/ +etc +``` + ## Custom NYC command -Sometimes NYC tool might be installed in a different folder, or you might want to customize the report command. In that case, put the custom command into `package.json` in the current folder and this plugin will automatically use it. +Sometimes NYC tool might be installed in a different folder not in the current or parent folder, or you might want to customize the report command. In that case, put the custom command into `package.json` in the current folder and this plugin will automatically use it. ```json { @@ -209,7 +220,7 @@ The simplest solution: let `npx` install `nyc` on the fly ### Find NYC in a parent folder -If you have [bin-up](https://github.com/bahmutov/bin-up) installed globally, you can use it to find `nyc` installed somewhere in the higher folder. +If you have [bin-up][bin-up] installed globally, you can use it to find `nyc` installed somewhere in the higher folder. ```json { @@ -381,3 +392,4 @@ This project is licensed under the terms of the [MIT license](LICENSE.md). [renovate-badge]: https://img.shields.io/badge/renovate-app-blue.svg [renovate-app]: https://renovateapp.com/ +[bin-up]: https://github.com/bahmutov/bin-up diff --git a/examples/before-all-visit/package-lock.json b/examples/before-all-visit/package-lock.json index d0f555115..38880911e 100644 --- a/examples/before-all-visit/package-lock.json +++ b/examples/before-all-visit/package-lock.json @@ -1,2820 +1,4 @@ { "name": "example-before-all-visit", - "requires": true, - "lockfileVersion": 1, - "dependencies": { - "@babel/code-frame": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", - "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", - "dev": true, - "requires": { - "@babel/highlight": "^7.8.3" - } - }, - "@babel/core": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.7.tgz", - "integrity": "sha512-rBlqF3Yko9cynC5CCFy6+K/w2N+Sq/ff2BPy+Krp7rHlABIr5epbA7OxVeKoMHB39LZOp1UY5SuLjy6uWi35yA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.7", - "@babel/helpers": "^7.8.4", - "@babel/parser": "^7.8.7", - "@babel/template": "^7.8.6", - "@babel/traverse": "^7.8.6", - "@babel/types": "^7.8.7", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.0", - "lodash": "^4.17.13", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - } - }, - "@babel/generator": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.7.tgz", - "integrity": "sha512-DQwjiKJqH4C3qGiyQCAExJHoZssn49JTMJgZ8SANGgVFdkupcUhLOdkAeoC6kmHZCPfoDG5M0b6cFlSN5wW7Ew==", - "dev": true, - "requires": { - "@babel/types": "^7.8.7", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "@babel/helper-function-name": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", - "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", - "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", - "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helpers": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.8.4.tgz", - "integrity": "sha512-VPbe7wcQ4chu4TDQjimHv/5tj73qz88o12EPkO2ValS2QiQS/1F2SsjyIGNnAD0vF/nZS6Cf9i+vW6HIlnaR8w==", - "dev": true, - "requires": { - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.4", - "@babel/types": "^7.8.3" - } - }, - "@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.7.tgz", - "integrity": "sha512-9JWls8WilDXFGxs0phaXAZgpxTZhSk/yOYH2hTHC0X1yC7Z78IJfvR1vJ+rmJKq3I35td2XzXzN6ZLYlna+r/A==", - "dev": true - }, - "@babel/template": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", - "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.6", - "@babel/types": "^7.8.6" - } - }, - "@babel/traverse": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.6.tgz", - "integrity": "sha512-2B8l0db/DPi8iinITKuo7cbPznLCEk0kCxDoB9/N6gGNg/gxOXiR/IcymAFPiBwk5w6TtQ27w4wpElgp9btR9A==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.6", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.6", - "@babel/types": "^7.8.6", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - } - }, - "@babel/types": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz", - "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "@cypress/listr-verbose-renderer": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@cypress/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz", - "integrity": "sha1-p3SS9LEdzHxEajSz4ochr9M8ZCo=", - "dev": true, - "requires": { - "chalk": "^1.1.3", - "cli-cursor": "^1.0.2", - "date-fns": "^1.27.2", - "figures": "^1.7.0" - }, - "dependencies": { - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "@cypress/xvfb": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz", - "integrity": "sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==", - "dev": true, - "requires": { - "debug": "^3.1.0", - "lodash.once": "^4.1.1" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "@istanbuljs/load-nyc-config": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.0.0.tgz", - "integrity": "sha512-ZR0rq/f/E4f4XcgnDvtMWXCUJpi8eO0rssVhmztsZqLIEFA9UUP9zmpE0VxlM+kv/E1ul2I876Fwil2ayptDVg==", - "dev": true, - "requires": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - } - }, - "@istanbuljs/schema": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", - "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==", - "dev": true - }, - "@samverschueren/stream-to-observable": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz", - "integrity": "sha512-MI4Xx6LHs4Webyvi6EbspgyAb4D2Q2VtnCQ1blOJcoLS6mVa8lNN2rkIy1CVxfTUpoyIbCTkXES1rLXztFD1lg==", - "dev": true, - "requires": { - "any-observable": "^0.3.0" - } - }, - "@types/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", - "dev": true - }, - "@types/sizzle": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.2.tgz", - "integrity": "sha512-7EJYyKTL7tFR8+gDbB6Wwz/arpGa0Mywk1TJbNzKzHtzbwVmY4HR9WqS5VV7dsBUKQmPNr192jHr/VpBluj/hg==", - "dev": true - }, - "aggregate-error": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz", - "integrity": "sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA==", - "dev": true, - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "dependencies": { - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true - } - } - }, - "ajv": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", - "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", - "dev": true - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "any-observable": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/any-observable/-/any-observable-0.3.0.tgz", - "integrity": "sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog==", - "dev": true - }, - "append-transform": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", - "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", - "dev": true, - "requires": { - "default-require-extensions": "^3.0.0" - } - }, - "arch": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/arch/-/arch-2.1.1.tgz", - "integrity": "sha512-BLM56aPo9vLLFVa8+/+pJLnrZ7QGGTVHWsCwieAWT9o9K8UeGaQbzZbGoabWLOo2ksBCztoXdqBZBplqLDDCSg==", - "dev": true - }, - "archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", - "dev": true - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dev": true, - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - }, - "async": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz", - "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==", - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true - }, - "aws4": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz", - "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==", - "dev": true - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "bin-up": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/bin-up/-/bin-up-1.3.2.tgz", - "integrity": "sha512-ePRL4VTK6jE/rXyoTH/YjzLRqp397y/dUSRXrPe8OcVP4min4bLJxNhmTdZfEF4zQYn4yYaI6WGy8M7F1mY1Aw==", - "dev": true, - "requires": { - "execa": "2.0.5" - }, - "dependencies": { - "execa": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/execa/-/execa-2.0.5.tgz", - "integrity": "sha512-SwmwZZyJjflcqLSgllk4EQlMLst2p9muyzwNugKGFlpAz6rZ7M+s2nBR97GAq4Vzjwx2y9rcMcmqzojwN+xwNA==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.5", - "get-stream": "^5.0.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^3.0.0", - "onetime": "^5.1.0", - "p-finally": "^2.0.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - } - }, - "get-stream": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", - "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", - "dev": true - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "npm-run-path": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-3.1.0.tgz", - "integrity": "sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg==", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - }, - "onetime": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", - "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "p-finally": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz", - "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - } - } - }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", - "dev": true - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true - }, - "cachedir": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.3.0.tgz", - "integrity": "sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==", - "dev": true - }, - "caching-transform": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", - "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", - "dev": true, - "requires": { - "hasha": "^5.0.0", - "make-dir": "^3.0.0", - "package-hash": "^4.0.0", - "write-file-atomic": "^3.0.0" - } - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true - }, - "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" - }, - "dependencies": { - "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" - } - }, - "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" - } - } - } - }, - "check-more-types": { - "version": "2.24.0", - "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", - "integrity": "sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA=", - "dev": true - }, - "ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true - }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true - }, - "cli-cursor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", - "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", - "dev": true, - "requires": { - "restore-cursor": "^1.0.1" - } - }, - "cli-truncate": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz", - "integrity": "sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ=", - "dev": true, - "requires": { - "slice-ansi": "0.0.4", - "string-width": "^1.0.1" - } - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "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" - } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - } - } - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true - }, - "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 - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.0.tgz", - "integrity": "sha512-NIQrwvv9V39FHgGFm36+U9SMQzbiHvU79k+iADraJTpmrFFfx7Ds0IvDoAdZsDrknlkRk14OYoWXb57uTh7/sw==", - "dev": true - }, - "common-tags": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz", - "integrity": "sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==", - "dev": true - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "cypress": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-4.1.0.tgz", - "integrity": "sha512-FFV8pS9iuriSX4M9rna6awJUhiqozZD1D5z5BprCUJoho1ctbcgpkEUIUnqxli2OwjQqVz07egO+iqoGL+tw7g==", - "dev": true, - "requires": { - "@cypress/listr-verbose-renderer": "0.4.1", - "@cypress/xvfb": "1.2.4", - "@types/sizzle": "2.3.2", - "arch": "2.1.1", - "bluebird": "3.7.2", - "cachedir": "2.3.0", - "chalk": "2.4.2", - "check-more-types": "2.24.0", - "commander": "4.1.0", - "common-tags": "1.8.0", - "debug": "4.1.1", - "eventemitter2": "4.1.2", - "execa": "1.0.0", - "executable": "4.1.1", - "extract-zip": "1.6.7", - "fs-extra": "8.1.0", - "getos": "3.1.4", - "is-ci": "2.0.0", - "is-installed-globally": "0.1.0", - "lazy-ass": "1.6.0", - "listr": "0.14.3", - "lodash": "4.17.15", - "log-symbols": "3.0.0", - "minimist": "1.2.0", - "moment": "2.24.0", - "ospath": "1.2.2", - "pretty-bytes": "5.3.0", - "ramda": "0.26.1", - "request": "2.88.0", - "request-progress": "3.0.0", - "supports-color": "7.1.0", - "tmp": "0.1.0", - "untildify": "4.0.0", - "url": "0.11.0", - "yauzl": "2.10.0" - } - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "date-fns": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz", - "integrity": "sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==", - "dev": true - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "default-require-extensions": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz", - "integrity": "sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==", - "dev": true, - "requires": { - "strip-bom": "^4.0.0" - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "elegant-spinner": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz", - "integrity": "sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "es6-error": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", - "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "eventemitter2": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-4.1.2.tgz", - "integrity": "sha1-DhqEd6+CGm7zmVsxG/dMI6UkfxU=", - "dev": true - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "executable": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz", - "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==", - "dev": true, - "requires": { - "pify": "^2.2.0" - } - }, - "exit-hook": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", - "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=", - "dev": true - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "extract-zip": { - "version": "1.6.7", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.7.tgz", - "integrity": "sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k=", - "dev": true, - "requires": { - "concat-stream": "1.6.2", - "debug": "2.6.9", - "mkdirp": "0.5.1", - "yauzl": "2.4.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "yauzl": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz", - "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=", - "dev": true, - "requires": { - "fd-slicer": "~1.0.1" - } - } - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true - }, - "fast-deep-equal": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", - "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", - "dev": true - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "fd-slicer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", - "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", - "dev": true, - "requires": { - "pend": "~1.2.0" - } - }, - "figures": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", - "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5", - "object-assign": "^4.1.0" - } - }, - "find-cache-dir": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", - "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "foreground-child": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", - "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.0", - "signal-exit": "^3.0.2" - }, - "dependencies": { - "cross-spawn": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.1.tgz", - "integrity": "sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "fromentries": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.2.0.tgz", - "integrity": "sha512-33X7H/wdfO99GdRLLgkjUrD4geAFdq/Uv0kl3HD4da6HDixd2GUg8Mw7dahLCV9r/EARkmtYBB6Tch4EEokFTQ==", - "dev": true - }, - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "gensync": { - "version": "1.0.0-beta.1", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz", - "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "getos": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/getos/-/getos-3.1.4.tgz", - "integrity": "sha512-UORPzguEB/7UG5hqiZai8f0vQ7hzynMQyJLxStoQ8dPGAcmgsfXOPA4iE/fGtweHYkK+z4zc9V0g+CIFRf5HYw==", - "dev": true, - "requires": { - "async": "^3.1.0" - } - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "global-dirs": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", - "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", - "dev": true, - "requires": { - "ini": "^1.3.4" - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - }, - "graceful-fs": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", - "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", - "dev": true - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true - }, - "har-validator": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", - "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", - "dev": true, - "requires": { - "ajv": "^6.5.5", - "har-schema": "^2.0.0" - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "hasha": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.0.tgz", - "integrity": "sha512-2W+jKdQbAdSIrggA8Q35Br8qKadTrqCTC8+XZvBWepKDK6m9XkX6Iz1a2yh2KP01kzAR/dpuMeUnocoLYDcskw==", - "dev": true, - "requires": { - "is-stream": "^2.0.0", - "type-fest": "^0.8.0" - }, - "dependencies": { - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", - "dev": true - } - } - }, - "html-escaper": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.0.tgz", - "integrity": "sha512-a4u9BeERWGu/S8JiWEAQcdrg9v4QArtP9keViQjGMdff20fBdd8waotXaNmODqBe6uZ3Nafi7K/ho4gCQHV3Ig==", - "dev": true - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "indent-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", - "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", - "dev": true - }, - "is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dev": true, - "requires": { - "ci-info": "^2.0.0" - } - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "is-installed-globally": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", - "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", - "dev": true, - "requires": { - "global-dirs": "^0.1.0", - "is-path-inside": "^1.0.0" - } - }, - "is-observable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-1.1.0.tgz", - "integrity": "sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==", - "dev": true, - "requires": { - "symbol-observable": "^1.1.0" - } - }, - "is-path-inside": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", - "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", - "dev": true, - "requires": { - "path-is-inside": "^1.0.1" - } - }, - "is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", - "dev": true - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true - }, - "istanbul-lib-coverage": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", - "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", - "dev": true - }, - "istanbul-lib-hook": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", - "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", - "dev": true, - "requires": { - "append-transform": "^2.0.0" - } - }, - "istanbul-lib-instrument": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.1.tgz", - "integrity": "sha512-imIchxnodll7pvQBYOqUu88EufLCU56LMeFPZZM/fJZ1irYcYdqroaV+ACK1Ila8ls09iEYArp+nqyC6lW1Vfg==", - "dev": true, - "requires": { - "@babel/core": "^7.7.5", - "@babel/parser": "^7.7.5", - "@babel/template": "^7.7.4", - "@babel/traverse": "^7.7.4", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "istanbul-lib-processinfo": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz", - "integrity": "sha512-kOwpa7z9hme+IBPZMzQ5vdQj8srYgAtaRqeI48NGmAQ+/5yKiHLV0QbYqQpxsdEF0+w14SoB8YbnHKcXE2KnYw==", - "dev": true, - "requires": { - "archy": "^1.0.0", - "cross-spawn": "^7.0.0", - "istanbul-lib-coverage": "^3.0.0-alpha.1", - "make-dir": "^3.0.0", - "p-map": "^3.0.0", - "rimraf": "^3.0.0", - "uuid": "^3.3.3" - }, - "dependencies": { - "cross-spawn": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.1.tgz", - "integrity": "sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "dev": true, - "requires": { - "aggregate-error": "^3.0.0" - } - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dev": true, - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - } - }, - "istanbul-lib-source-maps": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz", - "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "istanbul-reports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.0.tgz", - "integrity": "sha512-2osTcC8zcOSUkImzN2EWQta3Vdi4WjjKw99P2yWx5mLnigAM0Rd5uYFn1cf2i/Ois45GkNjaoTqc5CxgMSX80A==", - "dev": true, - "requires": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - } - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true - }, - "json5": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz", - "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "lazy-ass": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", - "integrity": "sha1-eZllXoZGwX8In90YfRUNMyTVRRM=", - "dev": true - }, - "listr": { - "version": "0.14.3", - "resolved": "https://registry.npmjs.org/listr/-/listr-0.14.3.tgz", - "integrity": "sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA==", - "dev": true, - "requires": { - "@samverschueren/stream-to-observable": "^0.3.0", - "is-observable": "^1.1.0", - "is-promise": "^2.1.0", - "is-stream": "^1.1.0", - "listr-silent-renderer": "^1.1.1", - "listr-update-renderer": "^0.5.0", - "listr-verbose-renderer": "^0.5.0", - "p-map": "^2.0.0", - "rxjs": "^6.3.3" - } - }, - "listr-silent-renderer": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz", - "integrity": "sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4=", - "dev": true - }, - "listr-update-renderer": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz", - "integrity": "sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA==", - "dev": true, - "requires": { - "chalk": "^1.1.3", - "cli-truncate": "^0.2.1", - "elegant-spinner": "^1.0.1", - "figures": "^1.7.0", - "indent-string": "^3.0.0", - "log-symbols": "^1.0.2", - "log-update": "^2.3.0", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "log-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", - "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", - "dev": true, - "requires": { - "chalk": "^1.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "listr-verbose-renderer": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz", - "integrity": "sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "cli-cursor": "^2.1.0", - "date-fns": "^1.27.2", - "figures": "^2.0.0" - }, - "dependencies": { - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "dev": true, - "requires": { - "restore-cursor": "^2.0.0" - } - }, - "figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "dev": true, - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "dev": true, - "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - } - } - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", - "dev": true - }, - "lodash.flattendeep": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", - "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", - "dev": true - }, - "lodash.once": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=", - "dev": true - }, - "log-symbols": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", - "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2" - } - }, - "log-update": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-2.3.0.tgz", - "integrity": "sha1-iDKP19HOeTiykoN0bwsbwSayRwg=", - "dev": true, - "requires": { - "ansi-escapes": "^3.0.0", - "cli-cursor": "^2.0.0", - "wrap-ansi": "^3.0.1" - }, - "dependencies": { - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "dev": true, - "requires": { - "restore-cursor": "^2.0.0" - } - }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "dev": true, - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "dev": true, - "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - } - } - } - }, - "make-dir": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.2.tgz", - "integrity": "sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w==", - "dev": true, - "requires": { - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "mime-db": { - "version": "1.43.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz", - "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==", - "dev": true - }, - "mime-types": { - "version": "2.1.26", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz", - "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==", - "dev": true, - "requires": { - "mime-db": "1.43.0" - } - }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - }, - "dependencies": { - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - } - } - }, - "moment": { - "version": "2.24.0", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz", - "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==", - "dev": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "node-preload": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", - "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", - "dev": true, - "requires": { - "process-on-spawn": "^1.0.0" - } - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true - }, - "nyc": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.0.0.tgz", - "integrity": "sha512-qcLBlNCKMDVuKb7d1fpxjPR8sHeMVX0CHarXAVzrVWoFrigCkYR8xcrjfXSPi5HXM7EU78L6ywO7w1c5rZNCNg==", - "dev": true, - "requires": { - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "caching-transform": "^4.0.0", - "convert-source-map": "^1.7.0", - "decamelize": "^1.2.0", - "find-cache-dir": "^3.2.0", - "find-up": "^4.1.0", - "foreground-child": "^2.0.0", - "glob": "^7.1.6", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-hook": "^3.0.0", - "istanbul-lib-instrument": "^4.0.0", - "istanbul-lib-processinfo": "^2.0.2", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.0", - "js-yaml": "^3.13.1", - "make-dir": "^3.0.0", - "node-preload": "^0.2.0", - "p-map": "^3.0.0", - "process-on-spawn": "^1.0.0", - "resolve-from": "^5.0.0", - "rimraf": "^3.0.0", - "signal-exit": "^3.0.2", - "spawn-wrap": "^2.0.0", - "test-exclude": "^6.0.0", - "uuid": "^3.3.3", - "yargs": "^15.0.2" - }, - "dependencies": { - "p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "dev": true, - "requires": { - "aggregate-error": "^3.0.0" - } - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", - "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", - "dev": true - }, - "ospath": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz", - "integrity": "sha1-EnZjl3Sj+O8lcvf+QoDg6kVQwHs=", - "dev": true - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true - }, - "p-limit": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", - "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", - "dev": true - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "package-hash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", - "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.15", - "hasha": "^5.0.0", - "lodash.flattendeep": "^4.4.0", - "release-zalgo": "^1.0.0" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", - "dev": true - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", - "dev": true - }, - "pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", - "dev": true - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - }, - "pretty-bytes": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.3.0.tgz", - "integrity": "sha512-hjGrh+P926p4R4WbaB6OckyRtO0F0/lQBiT+0gnxjV+5kjPBrfVBFCsCLbMqVQeydvIoouYTCmmEURiH3R1Bdg==", - "dev": true - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "process-on-spawn": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", - "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", - "dev": true, - "requires": { - "fromentries": "^1.2.0" - } - }, - "psl": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.7.0.tgz", - "integrity": "sha512-5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ==", - "dev": true - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true - }, - "ramda": { - "version": "0.26.1", - "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.26.1.tgz", - "integrity": "sha512-hLWjpy7EnsDBb0p+Z3B7rPi3GDeRG5ZtiI33kJhTt+ORCd38AbAIjB/9zRIUoeTbE/AVX5ZkU7m6bznsvrf8eQ==", - "dev": true - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "release-zalgo": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", - "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", - "dev": true, - "requires": { - "es6-error": "^4.0.1" - } - }, - "request": { - "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", - "dev": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.0", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - } - }, - "request-progress": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz", - "integrity": "sha1-TKdUCBx/7GP1BeT6qCWqBs1mnb4=", - "dev": true, - "requires": { - "throttleit": "^1.0.0" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "resolve": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", - "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==", - "dev": true, - "requires": { - "path-parse": "^1.0.6" - } - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - }, - "restore-cursor": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", - "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", - "dev": true, - "requires": { - "exit-hook": "^1.0.0", - "onetime": "^1.0.0" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "rxjs": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz", - "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true - }, - "slice-ansi": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", - "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "spawn-wrap": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", - "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", - "dev": true, - "requires": { - "foreground-child": "^2.0.0", - "is-windows": "^1.0.2", - "make-dir": "^3.0.0", - "rimraf": "^3.0.0", - "signal-exit": "^3.0.2", - "which": "^2.0.1" - }, - "dependencies": { - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "dev": true, - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true - }, - "strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - } - } - }, - "symbol-observable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", - "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", - "dev": true - }, - "test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "requires": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - } - }, - "throttleit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz", - "integrity": "sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=", - "dev": true - }, - "tmp": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.1.0.tgz", - "integrity": "sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==", - "dev": true, - "requires": { - "rimraf": "^2.6.3" - } - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - }, - "tough-cookie": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", - "dev": true, - "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - } - } - }, - "tslib": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz", - "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==", - "dev": true - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true - }, - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, - "typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "requires": { - "is-typedarray": "^1.0.0" - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true - }, - "untildify": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", - "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", - "dev": true - }, - "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dev": true, - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - } - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "wrap-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-3.0.1.tgz", - "integrity": "sha1-KIoE2H7aXChuBg3+jxNc6NAH+Lo=", - "dev": true, - "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", - "dev": true - }, - "yargs": { - "version": "15.3.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.0.tgz", - "integrity": "sha512-g/QCnmjgOl1YJjGsnUg2SatC7NUYEiLXJqxNOQU9qSpjzGtGXda9b+OKccr1kLTy8BN9yqEyqfq5lxlwdc13TA==", - "dev": true, - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "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" - } - } - } - }, - "yargs-parser": { - "version": "18.1.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.0.tgz", - "integrity": "sha512-o/Jr6JBOv6Yx3pL+5naWSoIA2jJ+ZkMYQG/ie9qFbukBe4uzmBatlXFOiu/tNKRWEtyf+n5w7jc/O16ufqOTdQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - }, - "yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", - "dev": true, - "requires": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - }, - "dependencies": { - "fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", - "dev": true, - "requires": { - "pend": "~1.2.0" - } - } - } - } - } + "lockfileVersion": 1 } diff --git a/examples/before-all-visit/package.json b/examples/before-all-visit/package.json index fc86b64c9..f9ddbcc0b 100644 --- a/examples/before-all-visit/package.json +++ b/examples/before-all-visit/package.json @@ -1,14 +1,10 @@ { "name": "example-before-all-visit", "description": "Getting code coverage when cy.visit is used in before hook", - "devDependencies": { - "bin-up": "1.3.2", - "cypress": "4.1.0", - "istanbul-lib-coverage": "3.0.0", - "nyc": "15.0.0" - }, + "devDependencies": {}, "scripts": { + "cy:open": "../../node_modules/.bin/cypress open", "coverage:report using npx": "npx nyc report --report-dir ./coverage --temp-dir .nyc_output --reporter=lcov --reporter=clover --reporter=json", - "coverage:report": "bin-up nyc report --report-dir ./coverage --temp-dir .nyc_output --reporter=lcov --reporter=clover --reporter=json" + "coverage:report using bin-up": "bin-up nyc report --report-dir ./coverage --temp-dir .nyc_output --reporter=lcov --reporter=clover --reporter=json" } } diff --git a/examples/before-each-visit/package-lock.json b/examples/before-each-visit/package-lock.json index 785552f2e..6ec504937 100644 --- a/examples/before-each-visit/package-lock.json +++ b/examples/before-each-visit/package-lock.json @@ -1,2820 +1,4 @@ { "name": "example-before-each-visit", - "requires": true, - "lockfileVersion": 1, - "dependencies": { - "@babel/code-frame": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", - "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", - "dev": true, - "requires": { - "@babel/highlight": "^7.8.3" - } - }, - "@babel/core": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.7.tgz", - "integrity": "sha512-rBlqF3Yko9cynC5CCFy6+K/w2N+Sq/ff2BPy+Krp7rHlABIr5epbA7OxVeKoMHB39LZOp1UY5SuLjy6uWi35yA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.7", - "@babel/helpers": "^7.8.4", - "@babel/parser": "^7.8.7", - "@babel/template": "^7.8.6", - "@babel/traverse": "^7.8.6", - "@babel/types": "^7.8.7", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.0", - "lodash": "^4.17.13", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - } - }, - "@babel/generator": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.7.tgz", - "integrity": "sha512-DQwjiKJqH4C3qGiyQCAExJHoZssn49JTMJgZ8SANGgVFdkupcUhLOdkAeoC6kmHZCPfoDG5M0b6cFlSN5wW7Ew==", - "dev": true, - "requires": { - "@babel/types": "^7.8.7", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "@babel/helper-function-name": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", - "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", - "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", - "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helpers": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.8.4.tgz", - "integrity": "sha512-VPbe7wcQ4chu4TDQjimHv/5tj73qz88o12EPkO2ValS2QiQS/1F2SsjyIGNnAD0vF/nZS6Cf9i+vW6HIlnaR8w==", - "dev": true, - "requires": { - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.4", - "@babel/types": "^7.8.3" - } - }, - "@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.7.tgz", - "integrity": "sha512-9JWls8WilDXFGxs0phaXAZgpxTZhSk/yOYH2hTHC0X1yC7Z78IJfvR1vJ+rmJKq3I35td2XzXzN6ZLYlna+r/A==", - "dev": true - }, - "@babel/template": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", - "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.6", - "@babel/types": "^7.8.6" - } - }, - "@babel/traverse": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.6.tgz", - "integrity": "sha512-2B8l0db/DPi8iinITKuo7cbPznLCEk0kCxDoB9/N6gGNg/gxOXiR/IcymAFPiBwk5w6TtQ27w4wpElgp9btR9A==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.6", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.6", - "@babel/types": "^7.8.6", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - } - }, - "@babel/types": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz", - "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "@cypress/listr-verbose-renderer": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@cypress/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz", - "integrity": "sha1-p3SS9LEdzHxEajSz4ochr9M8ZCo=", - "dev": true, - "requires": { - "chalk": "^1.1.3", - "cli-cursor": "^1.0.2", - "date-fns": "^1.27.2", - "figures": "^1.7.0" - }, - "dependencies": { - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "@cypress/xvfb": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz", - "integrity": "sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==", - "dev": true, - "requires": { - "debug": "^3.1.0", - "lodash.once": "^4.1.1" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "@istanbuljs/load-nyc-config": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.0.0.tgz", - "integrity": "sha512-ZR0rq/f/E4f4XcgnDvtMWXCUJpi8eO0rssVhmztsZqLIEFA9UUP9zmpE0VxlM+kv/E1ul2I876Fwil2ayptDVg==", - "dev": true, - "requires": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - } - }, - "@istanbuljs/schema": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", - "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==", - "dev": true - }, - "@samverschueren/stream-to-observable": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz", - "integrity": "sha512-MI4Xx6LHs4Webyvi6EbspgyAb4D2Q2VtnCQ1blOJcoLS6mVa8lNN2rkIy1CVxfTUpoyIbCTkXES1rLXztFD1lg==", - "dev": true, - "requires": { - "any-observable": "^0.3.0" - } - }, - "@types/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", - "dev": true - }, - "@types/sizzle": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.2.tgz", - "integrity": "sha512-7EJYyKTL7tFR8+gDbB6Wwz/arpGa0Mywk1TJbNzKzHtzbwVmY4HR9WqS5VV7dsBUKQmPNr192jHr/VpBluj/hg==", - "dev": true - }, - "aggregate-error": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz", - "integrity": "sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA==", - "dev": true, - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "dependencies": { - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true - } - } - }, - "ajv": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", - "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", - "dev": true - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "any-observable": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/any-observable/-/any-observable-0.3.0.tgz", - "integrity": "sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog==", - "dev": true - }, - "append-transform": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", - "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", - "dev": true, - "requires": { - "default-require-extensions": "^3.0.0" - } - }, - "arch": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/arch/-/arch-2.1.1.tgz", - "integrity": "sha512-BLM56aPo9vLLFVa8+/+pJLnrZ7QGGTVHWsCwieAWT9o9K8UeGaQbzZbGoabWLOo2ksBCztoXdqBZBplqLDDCSg==", - "dev": true - }, - "archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", - "dev": true - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dev": true, - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - }, - "async": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz", - "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==", - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true - }, - "aws4": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz", - "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==", - "dev": true - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "bin-up": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/bin-up/-/bin-up-1.3.2.tgz", - "integrity": "sha512-ePRL4VTK6jE/rXyoTH/YjzLRqp397y/dUSRXrPe8OcVP4min4bLJxNhmTdZfEF4zQYn4yYaI6WGy8M7F1mY1Aw==", - "dev": true, - "requires": { - "execa": "2.0.5" - }, - "dependencies": { - "execa": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/execa/-/execa-2.0.5.tgz", - "integrity": "sha512-SwmwZZyJjflcqLSgllk4EQlMLst2p9muyzwNugKGFlpAz6rZ7M+s2nBR97GAq4Vzjwx2y9rcMcmqzojwN+xwNA==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.5", - "get-stream": "^5.0.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^3.0.0", - "onetime": "^5.1.0", - "p-finally": "^2.0.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - } - }, - "get-stream": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", - "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", - "dev": true - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "npm-run-path": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-3.1.0.tgz", - "integrity": "sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg==", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - }, - "onetime": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", - "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "p-finally": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz", - "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - } - } - }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", - "dev": true - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true - }, - "cachedir": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.3.0.tgz", - "integrity": "sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==", - "dev": true - }, - "caching-transform": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", - "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", - "dev": true, - "requires": { - "hasha": "^5.0.0", - "make-dir": "^3.0.0", - "package-hash": "^4.0.0", - "write-file-atomic": "^3.0.0" - } - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true - }, - "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" - }, - "dependencies": { - "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" - } - }, - "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" - } - } - } - }, - "check-more-types": { - "version": "2.24.0", - "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", - "integrity": "sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA=", - "dev": true - }, - "ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true - }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true - }, - "cli-cursor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", - "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", - "dev": true, - "requires": { - "restore-cursor": "^1.0.1" - } - }, - "cli-truncate": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz", - "integrity": "sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ=", - "dev": true, - "requires": { - "slice-ansi": "0.0.4", - "string-width": "^1.0.1" - } - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "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" - } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - } - } - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true - }, - "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 - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.0.tgz", - "integrity": "sha512-NIQrwvv9V39FHgGFm36+U9SMQzbiHvU79k+iADraJTpmrFFfx7Ds0IvDoAdZsDrknlkRk14OYoWXb57uTh7/sw==", - "dev": true - }, - "common-tags": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz", - "integrity": "sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==", - "dev": true - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "cypress": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-4.1.0.tgz", - "integrity": "sha512-FFV8pS9iuriSX4M9rna6awJUhiqozZD1D5z5BprCUJoho1ctbcgpkEUIUnqxli2OwjQqVz07egO+iqoGL+tw7g==", - "dev": true, - "requires": { - "@cypress/listr-verbose-renderer": "0.4.1", - "@cypress/xvfb": "1.2.4", - "@types/sizzle": "2.3.2", - "arch": "2.1.1", - "bluebird": "3.7.2", - "cachedir": "2.3.0", - "chalk": "2.4.2", - "check-more-types": "2.24.0", - "commander": "4.1.0", - "common-tags": "1.8.0", - "debug": "4.1.1", - "eventemitter2": "4.1.2", - "execa": "1.0.0", - "executable": "4.1.1", - "extract-zip": "1.6.7", - "fs-extra": "8.1.0", - "getos": "3.1.4", - "is-ci": "2.0.0", - "is-installed-globally": "0.1.0", - "lazy-ass": "1.6.0", - "listr": "0.14.3", - "lodash": "4.17.15", - "log-symbols": "3.0.0", - "minimist": "1.2.0", - "moment": "2.24.0", - "ospath": "1.2.2", - "pretty-bytes": "5.3.0", - "ramda": "0.26.1", - "request": "2.88.0", - "request-progress": "3.0.0", - "supports-color": "7.1.0", - "tmp": "0.1.0", - "untildify": "4.0.0", - "url": "0.11.0", - "yauzl": "2.10.0" - } - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "date-fns": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz", - "integrity": "sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==", - "dev": true - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "default-require-extensions": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz", - "integrity": "sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==", - "dev": true, - "requires": { - "strip-bom": "^4.0.0" - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "elegant-spinner": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz", - "integrity": "sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "es6-error": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", - "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "eventemitter2": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-4.1.2.tgz", - "integrity": "sha1-DhqEd6+CGm7zmVsxG/dMI6UkfxU=", - "dev": true - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "executable": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz", - "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==", - "dev": true, - "requires": { - "pify": "^2.2.0" - } - }, - "exit-hook": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", - "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=", - "dev": true - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "extract-zip": { - "version": "1.6.7", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.7.tgz", - "integrity": "sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k=", - "dev": true, - "requires": { - "concat-stream": "1.6.2", - "debug": "2.6.9", - "mkdirp": "0.5.1", - "yauzl": "2.4.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "yauzl": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz", - "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=", - "dev": true, - "requires": { - "fd-slicer": "~1.0.1" - } - } - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true - }, - "fast-deep-equal": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", - "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", - "dev": true - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "fd-slicer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", - "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", - "dev": true, - "requires": { - "pend": "~1.2.0" - } - }, - "figures": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", - "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5", - "object-assign": "^4.1.0" - } - }, - "find-cache-dir": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", - "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "foreground-child": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", - "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.0", - "signal-exit": "^3.0.2" - }, - "dependencies": { - "cross-spawn": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.1.tgz", - "integrity": "sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "fromentries": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.2.0.tgz", - "integrity": "sha512-33X7H/wdfO99GdRLLgkjUrD4geAFdq/Uv0kl3HD4da6HDixd2GUg8Mw7dahLCV9r/EARkmtYBB6Tch4EEokFTQ==", - "dev": true - }, - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "gensync": { - "version": "1.0.0-beta.1", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz", - "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "getos": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/getos/-/getos-3.1.4.tgz", - "integrity": "sha512-UORPzguEB/7UG5hqiZai8f0vQ7hzynMQyJLxStoQ8dPGAcmgsfXOPA4iE/fGtweHYkK+z4zc9V0g+CIFRf5HYw==", - "dev": true, - "requires": { - "async": "^3.1.0" - } - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "global-dirs": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", - "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", - "dev": true, - "requires": { - "ini": "^1.3.4" - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - }, - "graceful-fs": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", - "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", - "dev": true - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true - }, - "har-validator": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", - "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", - "dev": true, - "requires": { - "ajv": "^6.5.5", - "har-schema": "^2.0.0" - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "hasha": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.0.tgz", - "integrity": "sha512-2W+jKdQbAdSIrggA8Q35Br8qKadTrqCTC8+XZvBWepKDK6m9XkX6Iz1a2yh2KP01kzAR/dpuMeUnocoLYDcskw==", - "dev": true, - "requires": { - "is-stream": "^2.0.0", - "type-fest": "^0.8.0" - }, - "dependencies": { - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", - "dev": true - } - } - }, - "html-escaper": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.0.tgz", - "integrity": "sha512-a4u9BeERWGu/S8JiWEAQcdrg9v4QArtP9keViQjGMdff20fBdd8waotXaNmODqBe6uZ3Nafi7K/ho4gCQHV3Ig==", - "dev": true - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "indent-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", - "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", - "dev": true - }, - "is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dev": true, - "requires": { - "ci-info": "^2.0.0" - } - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "is-installed-globally": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", - "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", - "dev": true, - "requires": { - "global-dirs": "^0.1.0", - "is-path-inside": "^1.0.0" - } - }, - "is-observable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-1.1.0.tgz", - "integrity": "sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==", - "dev": true, - "requires": { - "symbol-observable": "^1.1.0" - } - }, - "is-path-inside": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", - "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", - "dev": true, - "requires": { - "path-is-inside": "^1.0.1" - } - }, - "is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", - "dev": true - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true - }, - "istanbul-lib-coverage": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", - "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", - "dev": true - }, - "istanbul-lib-hook": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", - "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", - "dev": true, - "requires": { - "append-transform": "^2.0.0" - } - }, - "istanbul-lib-instrument": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.1.tgz", - "integrity": "sha512-imIchxnodll7pvQBYOqUu88EufLCU56LMeFPZZM/fJZ1irYcYdqroaV+ACK1Ila8ls09iEYArp+nqyC6lW1Vfg==", - "dev": true, - "requires": { - "@babel/core": "^7.7.5", - "@babel/parser": "^7.7.5", - "@babel/template": "^7.7.4", - "@babel/traverse": "^7.7.4", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "istanbul-lib-processinfo": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz", - "integrity": "sha512-kOwpa7z9hme+IBPZMzQ5vdQj8srYgAtaRqeI48NGmAQ+/5yKiHLV0QbYqQpxsdEF0+w14SoB8YbnHKcXE2KnYw==", - "dev": true, - "requires": { - "archy": "^1.0.0", - "cross-spawn": "^7.0.0", - "istanbul-lib-coverage": "^3.0.0-alpha.1", - "make-dir": "^3.0.0", - "p-map": "^3.0.0", - "rimraf": "^3.0.0", - "uuid": "^3.3.3" - }, - "dependencies": { - "cross-spawn": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.1.tgz", - "integrity": "sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "dev": true, - "requires": { - "aggregate-error": "^3.0.0" - } - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dev": true, - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - } - }, - "istanbul-lib-source-maps": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz", - "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "istanbul-reports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.0.tgz", - "integrity": "sha512-2osTcC8zcOSUkImzN2EWQta3Vdi4WjjKw99P2yWx5mLnigAM0Rd5uYFn1cf2i/Ois45GkNjaoTqc5CxgMSX80A==", - "dev": true, - "requires": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - } - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true - }, - "json5": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz", - "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "lazy-ass": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", - "integrity": "sha1-eZllXoZGwX8In90YfRUNMyTVRRM=", - "dev": true - }, - "listr": { - "version": "0.14.3", - "resolved": "https://registry.npmjs.org/listr/-/listr-0.14.3.tgz", - "integrity": "sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA==", - "dev": true, - "requires": { - "@samverschueren/stream-to-observable": "^0.3.0", - "is-observable": "^1.1.0", - "is-promise": "^2.1.0", - "is-stream": "^1.1.0", - "listr-silent-renderer": "^1.1.1", - "listr-update-renderer": "^0.5.0", - "listr-verbose-renderer": "^0.5.0", - "p-map": "^2.0.0", - "rxjs": "^6.3.3" - } - }, - "listr-silent-renderer": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz", - "integrity": "sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4=", - "dev": true - }, - "listr-update-renderer": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz", - "integrity": "sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA==", - "dev": true, - "requires": { - "chalk": "^1.1.3", - "cli-truncate": "^0.2.1", - "elegant-spinner": "^1.0.1", - "figures": "^1.7.0", - "indent-string": "^3.0.0", - "log-symbols": "^1.0.2", - "log-update": "^2.3.0", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "log-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", - "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", - "dev": true, - "requires": { - "chalk": "^1.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "listr-verbose-renderer": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz", - "integrity": "sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "cli-cursor": "^2.1.0", - "date-fns": "^1.27.2", - "figures": "^2.0.0" - }, - "dependencies": { - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "dev": true, - "requires": { - "restore-cursor": "^2.0.0" - } - }, - "figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "dev": true, - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "dev": true, - "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - } - } - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", - "dev": true - }, - "lodash.flattendeep": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", - "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", - "dev": true - }, - "lodash.once": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=", - "dev": true - }, - "log-symbols": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", - "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2" - } - }, - "log-update": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-2.3.0.tgz", - "integrity": "sha1-iDKP19HOeTiykoN0bwsbwSayRwg=", - "dev": true, - "requires": { - "ansi-escapes": "^3.0.0", - "cli-cursor": "^2.0.0", - "wrap-ansi": "^3.0.1" - }, - "dependencies": { - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "dev": true, - "requires": { - "restore-cursor": "^2.0.0" - } - }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "dev": true, - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "dev": true, - "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - } - } - } - }, - "make-dir": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.2.tgz", - "integrity": "sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w==", - "dev": true, - "requires": { - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "mime-db": { - "version": "1.43.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz", - "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==", - "dev": true - }, - "mime-types": { - "version": "2.1.26", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz", - "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==", - "dev": true, - "requires": { - "mime-db": "1.43.0" - } - }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - }, - "dependencies": { - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - } - } - }, - "moment": { - "version": "2.24.0", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz", - "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==", - "dev": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "node-preload": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", - "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", - "dev": true, - "requires": { - "process-on-spawn": "^1.0.0" - } - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true - }, - "nyc": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.0.0.tgz", - "integrity": "sha512-qcLBlNCKMDVuKb7d1fpxjPR8sHeMVX0CHarXAVzrVWoFrigCkYR8xcrjfXSPi5HXM7EU78L6ywO7w1c5rZNCNg==", - "dev": true, - "requires": { - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "caching-transform": "^4.0.0", - "convert-source-map": "^1.7.0", - "decamelize": "^1.2.0", - "find-cache-dir": "^3.2.0", - "find-up": "^4.1.0", - "foreground-child": "^2.0.0", - "glob": "^7.1.6", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-hook": "^3.0.0", - "istanbul-lib-instrument": "^4.0.0", - "istanbul-lib-processinfo": "^2.0.2", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.0", - "js-yaml": "^3.13.1", - "make-dir": "^3.0.0", - "node-preload": "^0.2.0", - "p-map": "^3.0.0", - "process-on-spawn": "^1.0.0", - "resolve-from": "^5.0.0", - "rimraf": "^3.0.0", - "signal-exit": "^3.0.2", - "spawn-wrap": "^2.0.0", - "test-exclude": "^6.0.0", - "uuid": "^3.3.3", - "yargs": "^15.0.2" - }, - "dependencies": { - "p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "dev": true, - "requires": { - "aggregate-error": "^3.0.0" - } - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", - "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", - "dev": true - }, - "ospath": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz", - "integrity": "sha1-EnZjl3Sj+O8lcvf+QoDg6kVQwHs=", - "dev": true - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true - }, - "p-limit": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", - "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", - "dev": true - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "package-hash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", - "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.15", - "hasha": "^5.0.0", - "lodash.flattendeep": "^4.4.0", - "release-zalgo": "^1.0.0" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", - "dev": true - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", - "dev": true - }, - "pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", - "dev": true - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - }, - "pretty-bytes": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.3.0.tgz", - "integrity": "sha512-hjGrh+P926p4R4WbaB6OckyRtO0F0/lQBiT+0gnxjV+5kjPBrfVBFCsCLbMqVQeydvIoouYTCmmEURiH3R1Bdg==", - "dev": true - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "process-on-spawn": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", - "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", - "dev": true, - "requires": { - "fromentries": "^1.2.0" - } - }, - "psl": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.7.0.tgz", - "integrity": "sha512-5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ==", - "dev": true - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true - }, - "ramda": { - "version": "0.26.1", - "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.26.1.tgz", - "integrity": "sha512-hLWjpy7EnsDBb0p+Z3B7rPi3GDeRG5ZtiI33kJhTt+ORCd38AbAIjB/9zRIUoeTbE/AVX5ZkU7m6bznsvrf8eQ==", - "dev": true - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "release-zalgo": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", - "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", - "dev": true, - "requires": { - "es6-error": "^4.0.1" - } - }, - "request": { - "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", - "dev": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.0", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - } - }, - "request-progress": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz", - "integrity": "sha1-TKdUCBx/7GP1BeT6qCWqBs1mnb4=", - "dev": true, - "requires": { - "throttleit": "^1.0.0" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "resolve": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", - "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==", - "dev": true, - "requires": { - "path-parse": "^1.0.6" - } - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - }, - "restore-cursor": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", - "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", - "dev": true, - "requires": { - "exit-hook": "^1.0.0", - "onetime": "^1.0.0" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "rxjs": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz", - "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true - }, - "slice-ansi": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", - "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "spawn-wrap": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", - "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", - "dev": true, - "requires": { - "foreground-child": "^2.0.0", - "is-windows": "^1.0.2", - "make-dir": "^3.0.0", - "rimraf": "^3.0.0", - "signal-exit": "^3.0.2", - "which": "^2.0.1" - }, - "dependencies": { - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "dev": true, - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true - }, - "strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - } - } - }, - "symbol-observable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", - "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", - "dev": true - }, - "test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "requires": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - } - }, - "throttleit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz", - "integrity": "sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=", - "dev": true - }, - "tmp": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.1.0.tgz", - "integrity": "sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==", - "dev": true, - "requires": { - "rimraf": "^2.6.3" - } - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - }, - "tough-cookie": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", - "dev": true, - "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - } - } - }, - "tslib": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz", - "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==", - "dev": true - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true - }, - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, - "typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "requires": { - "is-typedarray": "^1.0.0" - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true - }, - "untildify": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", - "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", - "dev": true - }, - "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dev": true, - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - } - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "wrap-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-3.0.1.tgz", - "integrity": "sha1-KIoE2H7aXChuBg3+jxNc6NAH+Lo=", - "dev": true, - "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", - "dev": true - }, - "yargs": { - "version": "15.3.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.0.tgz", - "integrity": "sha512-g/QCnmjgOl1YJjGsnUg2SatC7NUYEiLXJqxNOQU9qSpjzGtGXda9b+OKccr1kLTy8BN9yqEyqfq5lxlwdc13TA==", - "dev": true, - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "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" - } - } - } - }, - "yargs-parser": { - "version": "18.1.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.0.tgz", - "integrity": "sha512-o/Jr6JBOv6Yx3pL+5naWSoIA2jJ+ZkMYQG/ie9qFbukBe4uzmBatlXFOiu/tNKRWEtyf+n5w7jc/O16ufqOTdQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - }, - "yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", - "dev": true, - "requires": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - }, - "dependencies": { - "fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", - "dev": true, - "requires": { - "pend": "~1.2.0" - } - } - } - } - } + "lockfileVersion": 1 } diff --git a/examples/before-each-visit/package.json b/examples/before-each-visit/package.json index 4132cd811..fe3c966f2 100644 --- a/examples/before-each-visit/package.json +++ b/examples/before-each-visit/package.json @@ -1,14 +1,10 @@ { "name": "example-before-each-visit", "description": "Getting code coverage when cy.visit is used in beforeEach hook", - "devDependencies": { - "bin-up": "1.3.2", - "cypress": "4.1.0", - "istanbul-lib-coverage": "3.0.0", - "nyc": "15.0.0" - }, + "devDependencies": {}, "scripts": { + "cy:open": "../../node_modules/.bin/cypress open", "coverage:report using npx": "npx nyc report --report-dir ./coverage --temp-dir .nyc_output --reporter=lcov --reporter=clover --reporter=json", - "coverage:report": "bin-up nyc report --report-dir ./coverage --temp-dir .nyc_output --reporter=lcov --reporter=clover --reporter=json" + "coverage:report using bin-up": "bin-up nyc report --report-dir ./coverage --temp-dir .nyc_output --reporter=lcov --reporter=clover --reporter=json" } } diff --git a/package-lock.json b/package-lock.json index 4702a865a..da62d7594 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3694,6 +3694,63 @@ "integrity": "sha512-IWIbu7pMqyw3EAJHzzHbWa85b6oud/yfKYg5rqB5hNE8CeMi3nX+2C2sj0HswfblST86hpVEOAb9x34NZd6P7A==", "dev": true }, + "bin-up": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/bin-up/-/bin-up-1.3.2.tgz", + "integrity": "sha512-ePRL4VTK6jE/rXyoTH/YjzLRqp397y/dUSRXrPe8OcVP4min4bLJxNhmTdZfEF4zQYn4yYaI6WGy8M7F1mY1Aw==", + "requires": { + "execa": "2.0.5" + }, + "dependencies": { + "execa": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/execa/-/execa-2.0.5.tgz", + "integrity": "sha512-SwmwZZyJjflcqLSgllk4EQlMLst2p9muyzwNugKGFlpAz6rZ7M+s2nBR97GAq4Vzjwx2y9rcMcmqzojwN+xwNA==", + "requires": { + "cross-spawn": "^6.0.5", + "get-stream": "^5.0.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^3.0.0", + "onetime": "^5.1.0", + "p-finally": "^2.0.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==" + }, + "npm-run-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-3.1.0.tgz", + "integrity": "sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg==", + "requires": { + "path-key": "^3.0.0" + } + }, + "onetime": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", + "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "p-finally": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz", + "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==" + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + } + } + }, "binary-extensions": { "version": "1.13.1", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", @@ -4782,7 +4839,6 @@ "version": "6.0.5", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, "requires": { "nice-try": "^1.0.4", "path-key": "^2.0.1", @@ -9413,8 +9469,7 @@ "nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" }, "node-addon-api": { "version": "1.7.1", @@ -13835,8 +13890,7 @@ "path-key": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" }, "path-parse": { "version": "1.0.6", @@ -15472,7 +15526,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, "requires": { "shebang-regex": "^1.0.0" } @@ -15480,8 +15533,7 @@ "shebang-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" }, "shell-quote": { "version": "1.7.2", @@ -17052,7 +17104,6 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, "requires": { "isexe": "^2.0.0" } diff --git a/package.json b/package.json index edbb47dba..6d9170b8c 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,8 @@ "start:test:backend": "nyc --silent node test-backend", "cy:backend": "cypress open --config-file cypress-backend.json", "dev:backend": "start-test start:test:backend 3003 cy:backend", - "check:markdown": "find *.md -exec npx markdown-link-check {} \\;" + "check:markdown": "find *.md -exec npx markdown-link-check {} \\;", + "effective:config": "circleci config process .circleci/config.yml | sed /^#/d" }, "peerDependencies": { "cypress": "*", @@ -50,6 +51,7 @@ "private": false, "dependencies": { "@cypress/browserify-preprocessor": "2.1.4", + "bin-up": "1.3.2", "debug": "4.1.1", "execa": "4.0.0" }, diff --git a/task.js b/task.js index d8cb9c0a5..04426d19e 100644 --- a/task.js +++ b/task.js @@ -4,6 +4,7 @@ const { existsSync, mkdirSync, readFileSync, writeFileSync } = require('fs') const execa = require('execa') const fs = require('fs') const { fixSourcePathes } = require('./utils') +const binUp = require('bin-up') const debug = require('debug')('code-coverage') @@ -114,7 +115,13 @@ module.exports = { : `--reporter=${reporter}` // should we generate report via NYC module API? - const command = 'nyc' + const foundNyc = binUp('nyc') + if (!foundNyc) { + console.error('Could not find tool "nyc", have you installed it?') + console.error('See https://github.com/cypress-io/code-coverage#install') + return null + } + const args = [ 'report', '--report-dir', @@ -124,10 +131,10 @@ module.exports = { ].concat(reporters) debug( 'saving coverage report using command: "%s %s"', - command, + foundNyc, args.join(' ') ) debug('current working directory is %s', process.cwd()) - return execa(command, args, { stdio: 'inherit' }) + return execa(foundNyc, args, { stdio: 'inherit' }) } } From e65e9d8d29aa9ce72087321f6db591780a3e7b25 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sat, 14 Mar 2020 04:14:24 +0000 Subject: [PATCH 25/85] chore(deps): update dependency start-server-and-test to v1.10.10 --- package-lock.json | 44 ++++++++++++++++++-------------------------- package.json | 2 +- 2 files changed, 19 insertions(+), 27 deletions(-) diff --git a/package-lock.json b/package-lock.json index da62d7594..9f2600b82 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2512,9 +2512,9 @@ "dev": true }, "@hapi/hoek": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.0.tgz", - "integrity": "sha512-7XYT10CZfPsH7j9F1Jmg1+d0ezOux2oM2GfArAzLwWe4mE2Dr3hVjsAL6+TFY49RRJlCdJDMw3nJsLFroTc8Kw==", + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.1.tgz", + "integrity": "sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==", "dev": true }, "@hapi/joi": { @@ -15874,26 +15874,20 @@ "dev": true }, "start-server-and-test": { - "version": "1.10.8", - "resolved": "https://registry.npmjs.org/start-server-and-test/-/start-server-and-test-1.10.8.tgz", - "integrity": "sha512-5I190MiIHBqmArTnxk9dfHlwO8I35B1hFhuAgv2L/UMDArRCtIXL/QftgNtgfuIz5NQN3yrN0kCsY+zYkX+dUg==", + "version": "1.10.10", + "resolved": "https://registry.npmjs.org/start-server-and-test/-/start-server-and-test-1.10.10.tgz", + "integrity": "sha512-LCnngrqi4Ex7FDJwpzfByXK8SCAcITYJB5yj/K3k2onaBHcH6RMFf6q3Kz8iM7CLuJ3DZlzU76W6Ixwpt+n/sQ==", "dev": true, "requires": { - "bluebird": "3.7.1", + "bluebird": "3.7.2", "check-more-types": "2.24.0", "debug": "4.1.1", - "execa": "4.0.0", + "execa": "3.4.0", "lazy-ass": "1.6.0", "ps-tree": "1.2.0", "wait-on": "4.0.0" }, "dependencies": { - "bluebird": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.1.tgz", - "integrity": "sha512-DdmyoGCleJnkbp3nkbxTLJ18rjDsE4yCggEwKNXkeV123sPNfOCYeDoeuOY+F2FrSjO1YXcTU+dsy96KMy+gcg==", - "dev": true - }, "cross-spawn": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.1.tgz", @@ -15906,9 +15900,9 @@ } }, "execa": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.0.0.tgz", - "integrity": "sha512-JbDUxwV3BoT5ZVXQrSVbAiaXhXUkIwvbhPIwZ0N13kX+5yCzOhUNdocxB/UQRuYOHRYYwAxKYwJYc0T4D12pDA==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-3.4.0.tgz", + "integrity": "sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g==", "dev": true, "requires": { "cross-spawn": "^7.0.0", @@ -15918,6 +15912,7 @@ "merge-stream": "^2.0.0", "npm-run-path": "^4.0.0", "onetime": "^5.1.0", + "p-finally": "^2.0.0", "signal-exit": "^3.0.2", "strip-final-newline": "^2.0.0" } @@ -15946,6 +15941,12 @@ "mimic-fn": "^2.1.0" } }, + "p-finally": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz", + "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==", + "dev": true + }, "path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", @@ -17033,15 +17034,6 @@ "stealthy-require": "^1.1.1", "tough-cookie": "^2.3.3" } - }, - "rxjs": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz", - "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } } } }, diff --git a/package.json b/package.json index 6d9170b8c..2478fe5b6 100644 --- a/package.json +++ b/package.json @@ -67,6 +67,6 @@ "parcel-bundler": "1.12.4", "prettier": "1.19.1", "semantic-release": "17.0.4", - "start-server-and-test": "1.10.8" + "start-server-and-test": "1.10.10" } } From 2964cb52b7966486e8fc4a0386a79af9d3729656 Mon Sep 17 00:00:00 2001 From: Gleb Bahmutov Date: Fri, 20 Mar 2020 10:18:12 -0400 Subject: [PATCH 26/85] Update issue templates --- .github/ISSUE_TEMPLATE/bug_report.md | 38 +++++++++++++++++++++++ .github/ISSUE_TEMPLATE/feature_request.md | 20 ++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/feature_request.md diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 000000000..dd84ea782 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,38 @@ +--- +name: Bug report +about: Create a report to help us improve +title: '' +labels: '' +assignees: '' + +--- + +**Describe the bug** +A clear and concise description of what the bug is. + +**To Reproduce** +Steps to reproduce the behavior: +1. Go to '...' +2. Click on '....' +3. Scroll down to '....' +4. See error + +**Expected behavior** +A clear and concise description of what you expected to happen. + +**Screenshots** +If applicable, add screenshots to help explain your problem. + +**Desktop (please complete the following information):** + - OS: [e.g. iOS] + - Browser [e.g. chrome, safari] + - Version [e.g. 22] + +**Smartphone (please complete the following information):** + - Device: [e.g. iPhone6] + - OS: [e.g. iOS8.1] + - Browser [e.g. stock browser, safari] + - Version [e.g. 22] + +**Additional context** +Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 000000000..bbcbbe7d6 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,20 @@ +--- +name: Feature request +about: Suggest an idea for this project +title: '' +labels: '' +assignees: '' + +--- + +**Is your feature request related to a problem? Please describe.** +A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + +**Describe the solution you'd like** +A clear and concise description of what you want to happen. + +**Describe alternatives you've considered** +A clear and concise description of any alternative solutions or features you've considered. + +**Additional context** +Add any other context or screenshots about the feature request here. From 2a4dd1b6e4dc5755860726ba764913d6497f0b60 Mon Sep 17 00:00:00 2001 From: Gleb Bahmutov Date: Fri, 20 Mar 2020 10:22:30 -0400 Subject: [PATCH 27/85] configure issue templates --- .github/ISSUE_TEMPLATE/bug_report.md | 37 +++++++++------------------- .github/ISSUE_TEMPLATE/config.yml | 5 ++++ 2 files changed, 16 insertions(+), 26 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE/config.yml diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index dd84ea782..96d594713 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -4,35 +4,20 @@ about: Create a report to help us improve title: '' labels: '' assignees: '' - --- +**Versions** + +- What is this plugin's version? +- What is Cypress version? +- What is your operating system? +- What is the Node version? +- What is the NPM version? **Describe the bug** A clear and concise description of what the bug is. -**To Reproduce** -Steps to reproduce the behavior: -1. Go to '...' -2. Click on '....' -3. Scroll down to '....' -4. See error - -**Expected behavior** -A clear and concise description of what you expected to happen. - -**Screenshots** -If applicable, add screenshots to help explain your problem. - -**Desktop (please complete the following information):** - - OS: [e.g. iOS] - - Browser [e.g. chrome, safari] - - Version [e.g. 22] - -**Smartphone (please complete the following information):** - - Device: [e.g. iPhone6] - - OS: [e.g. iOS8.1] - - Browser [e.g. stock browser, safari] - - Version [e.g. 22] +**Logs and screenshots** +If possible, add the log from the terminal. You can turn on debugging logging, see [Debugging](https://github.com/cypress-io/code-coverage#debugging) section of the README file. -**Additional context** -Add any other context about the problem here. +**Link to the repo** +Bugs with a reproducible example, like an open source repo showing the bug, are the most likely to be resolved. diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 000000000..193937694 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,5 @@ +blank_issues_enabled: true +contact_links: + - name: Cypress Community Forum + url: https://on.cypress.io/chat + about: Please ask and answer questions here. From 25d8ad4d88e6db24b506c6e1c405c98ea65acd56 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sat, 21 Mar 2020 04:08:29 +0000 Subject: [PATCH 28/85] Update dependency @babel/core to v7.9.0 --- package-lock.json | 147 +++++++++++++++++++++++++++++++++++----------- package.json | 2 +- 2 files changed, 114 insertions(+), 35 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9f2600b82..485071e8a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,22 +13,23 @@ } }, "@babel/core": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.7.tgz", - "integrity": "sha512-rBlqF3Yko9cynC5CCFy6+K/w2N+Sq/ff2BPy+Krp7rHlABIr5epbA7OxVeKoMHB39LZOp1UY5SuLjy6uWi35yA==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.0.tgz", + "integrity": "sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w==", "dev": true, "requires": { "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.7", - "@babel/helpers": "^7.8.4", - "@babel/parser": "^7.8.7", + "@babel/generator": "^7.9.0", + "@babel/helper-module-transforms": "^7.9.0", + "@babel/helpers": "^7.9.0", + "@babel/parser": "^7.9.0", "@babel/template": "^7.8.6", - "@babel/traverse": "^7.8.6", - "@babel/types": "^7.8.7", + "@babel/traverse": "^7.9.0", + "@babel/types": "^7.9.0", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.1", - "json5": "^2.1.0", + "json5": "^2.1.2", "lodash": "^4.17.13", "resolve": "^1.3.2", "semver": "^5.4.1", @@ -45,12 +46,12 @@ } }, "@babel/generator": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.7.tgz", - "integrity": "sha512-DQwjiKJqH4C3qGiyQCAExJHoZssn49JTMJgZ8SANGgVFdkupcUhLOdkAeoC6kmHZCPfoDG5M0b6cFlSN5wW7Ew==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.0.tgz", + "integrity": "sha512-onl4Oy46oGCzymOXtKMQpI7VXtCbTSHK1kqBydZ6AmzuNcacEVqGk9tZtAS+48IA9IstZcDCgIg8hQKnb7suRw==", "dev": true, "requires": { - "@babel/types": "^7.8.7", + "@babel/types": "^7.9.0", "jsesc": "^2.5.1", "lodash": "^4.17.13", "source-map": "^0.5.0" @@ -76,6 +77,61 @@ "@babel/types": "^7.8.3" } }, + "@babel/helper-module-imports": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz", + "integrity": "sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-module-transforms": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz", + "integrity": "sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.6", + "@babel/helper-simple-access": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/template": "^7.8.6", + "@babel/types": "^7.9.0", + "lodash": "^4.17.13" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz", + "integrity": "sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-replace-supers": { + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.6.tgz", + "integrity": "sha512-PeMArdA4Sv/Wf4zXwBKPqVj7n9UF/xg6slNRtZW84FM7JpE1CbG8B612FyM4cxrf4fMAMGO0kR7voy1ForHHFA==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.8.3", + "@babel/helper-optimise-call-expression": "^7.8.3", + "@babel/traverse": "^7.8.6", + "@babel/types": "^7.8.6" + } + }, + "@babel/helper-simple-access": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz", + "integrity": "sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw==", + "dev": true, + "requires": { + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, "@babel/helper-split-export-declaration": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", @@ -85,21 +141,32 @@ "@babel/types": "^7.8.3" } }, + "@babel/helpers": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.9.0.tgz", + "integrity": "sha512-/9GvfYTCG1NWCNwDj9e+XlnSCmWW/r9T794Xi58vPF9WCcnZCAZ0kWLSn54oqP40SUvh1T2G6VwKmFO5AOlW3A==", + "dev": true, + "requires": { + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.9.0", + "@babel/types": "^7.9.0" + } + }, "@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", + "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", "dev": true, "requires": { + "@babel/helper-validator-identifier": "^7.9.0", "chalk": "^2.0.0", - "esutils": "^2.0.2", "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.7.tgz", - "integrity": "sha512-9JWls8WilDXFGxs0phaXAZgpxTZhSk/yOYH2hTHC0X1yC7Z78IJfvR1vJ+rmJKq3I35td2XzXzN6ZLYlna+r/A==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.0.tgz", + "integrity": "sha512-Iwyp00CZsypoNJcpXCbq3G4tcDgphtlMwMVrMhhZ//XBkqjXF7LW6V511yk0+pBX3ZwwGnPea+pTKNJiqA7pUg==", "dev": true }, "@babel/template": { @@ -114,29 +181,29 @@ } }, "@babel/traverse": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.6.tgz", - "integrity": "sha512-2B8l0db/DPi8iinITKuo7cbPznLCEk0kCxDoB9/N6gGNg/gxOXiR/IcymAFPiBwk5w6TtQ27w4wpElgp9btR9A==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.0.tgz", + "integrity": "sha512-jAZQj0+kn4WTHO5dUZkZKhbFrqZE7K5LAQ5JysMnmvGij+wOdr+8lWqPeW0BcF4wFwrEXXtdGO7wcV6YPJcf3w==", "dev": true, "requires": { "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.6", + "@babel/generator": "^7.9.0", "@babel/helper-function-name": "^7.8.3", "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.6", - "@babel/types": "^7.8.6", + "@babel/parser": "^7.9.0", + "@babel/types": "^7.9.0", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.13" } }, "@babel/types": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz", - "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz", + "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==", "dev": true, "requires": { - "esutils": "^2.0.2", + "@babel/helper-validator-identifier": "^7.9.0", "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } @@ -151,13 +218,19 @@ } }, "json5": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz", - "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.2.tgz", + "integrity": "sha512-MoUOQ4WdiN3yxhm7NEVJSJrieAo5hNSLQ5sj05OTRHPL9HOBy8u4Bu88jsC1jvqAdN+E1bJmsUcZH+1HQxliqQ==", "dev": true, "requires": { - "minimist": "^1.2.0" + "minimist": "^1.2.5" } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true } } }, @@ -642,6 +715,12 @@ "@babel/types": "^7.4.4" } }, + "@babel/helper-validator-identifier": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.0.tgz", + "integrity": "sha512-6G8bQKjOh+of4PV/ThDm/rRqlU7+IGoJuofpagU5GlEl29Vv0RGqqt86ZGRV8ZuSOY3o+8yXl5y782SMcG7SHw==", + "dev": true + }, "@babel/helper-wrap-function": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz", diff --git a/package.json b/package.json index 2478fe5b6..76bd2c78e 100644 --- a/package.json +++ b/package.json @@ -56,7 +56,7 @@ "execa": "4.0.0" }, "devDependencies": { - "@babel/core": "7.8.7", + "@babel/core": "7.9.0", "babel-plugin-istanbul": "6.0.0", "cypress": "4.1.0", "express": "4.17.1", From 1c451b083306cbe5a7c73411fddb8ba1c53d4ba2 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sat, 21 Mar 2020 05:09:45 +0000 Subject: [PATCH 29/85] Update dependency cypress to v4.2.0 --- package-lock.json | 151 +++++++++++++++++++++++++++++++++++----------- package.json | 2 +- 2 files changed, 118 insertions(+), 35 deletions(-) diff --git a/package-lock.json b/package-lock.json index 485071e8a..d1cc2d360 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4454,6 +4454,26 @@ "colors": "1.0.3" } }, + "cli-table3": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz", + "integrity": "sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==", + "dev": true, + "requires": { + "colors": "^1.1.2", + "object-assign": "^4.1.0", + "string-width": "^2.1.1" + }, + "dependencies": { + "colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true, + "optional": true + } + } + }, "cli-truncate": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz", @@ -4462,6 +4482,28 @@ "requires": { "slice-ansi": "0.0.4", "string-width": "^1.0.1" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } } }, "cliui": { @@ -5249,9 +5291,9 @@ } }, "cypress": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-4.1.0.tgz", - "integrity": "sha512-FFV8pS9iuriSX4M9rna6awJUhiqozZD1D5z5BprCUJoho1ctbcgpkEUIUnqxli2OwjQqVz07egO+iqoGL+tw7g==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-4.2.0.tgz", + "integrity": "sha512-8LdreL91S/QiTCLYLNbIjLL8Ht4fJmu/4HGLxUI20Tc7JSfqEfCmXELrRfuPT0kjosJwJJZacdSji9XSRkPKUw==", "dev": true, "requires": { "@cypress/listr-verbose-renderer": "0.4.1", @@ -5262,6 +5304,7 @@ "cachedir": "2.3.0", "chalk": "2.4.2", "check-more-types": "2.24.0", + "cli-table3": "0.5.1", "commander": "4.1.0", "common-tags": "1.8.0", "debug": "4.1.1", @@ -5277,12 +5320,12 @@ "listr": "0.14.3", "lodash": "4.17.15", "log-symbols": "3.0.0", - "minimist": "1.2.0", + "minimist": "1.2.2", "moment": "2.24.0", "ospath": "1.2.2", "pretty-bytes": "5.3.0", "ramda": "0.26.1", - "request": "2.88.0", + "request": "github:cypress-io/request#b5af0d1fa47eec97ba980cde90a13e69a2afcd16", "request-progress": "3.0.0", "supports-color": "7.1.0", "tmp": "0.1.0", @@ -5336,6 +5379,39 @@ "chalk": "^2.4.2" } }, + "minimist": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.2.tgz", + "integrity": "sha512-rIqbOrKb8GJmx/5bc2M0QchhUouMXSpd1RTclXsB41JdL+VtnojfaJR+h7F9k18/4kHUsBFgk80Uk+q569vjPA==", + "dev": true + }, + "request": { + "version": "github:cypress-io/request#b5af0d1fa47eec97ba980cde90a13e69a2afcd16", + "from": "github:cypress-io/request#b5af0d1fa47eec97ba980cde90a13e69a2afcd16", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + } + }, "supports-color": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", @@ -5344,6 +5420,16 @@ "requires": { "has-flag": "^4.0.0" } + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } } } }, @@ -7914,13 +8000,10 @@ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" }, "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true }, "is-glob": { "version": "4.0.1", @@ -8979,12 +9062,6 @@ "restore-cursor": "^2.0.0" } }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, "mimic-fn": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", @@ -9010,16 +9087,6 @@ "signal-exit": "^3.0.2" } }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", @@ -16180,14 +16247,30 @@ } }, "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } } }, "string.prototype.trimleft": { diff --git a/package.json b/package.json index 76bd2c78e..af710eb30 100644 --- a/package.json +++ b/package.json @@ -58,7 +58,7 @@ "devDependencies": { "@babel/core": "7.9.0", "babel-plugin-istanbul": "6.0.0", - "cypress": "4.1.0", + "cypress": "4.2.0", "express": "4.17.1", "istanbul-lib-coverage": "3.0.0", "lodash": "4.17.15", From 616bb8d970ac4f62efed1656f0b912a995fce0fb Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sat, 21 Mar 2020 06:05:22 +0000 Subject: [PATCH 30/85] Update dependency start-server-and-test to v1.10.11 --- package-lock.json | 6 +++--- package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index d1cc2d360..223f1ccac 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16020,9 +16020,9 @@ "dev": true }, "start-server-and-test": { - "version": "1.10.10", - "resolved": "https://registry.npmjs.org/start-server-and-test/-/start-server-and-test-1.10.10.tgz", - "integrity": "sha512-LCnngrqi4Ex7FDJwpzfByXK8SCAcITYJB5yj/K3k2onaBHcH6RMFf6q3Kz8iM7CLuJ3DZlzU76W6Ixwpt+n/sQ==", + "version": "1.10.11", + "resolved": "https://registry.npmjs.org/start-server-and-test/-/start-server-and-test-1.10.11.tgz", + "integrity": "sha512-CZilaj293uQWdD4vgOxTOuzlCWxOyBm6bzmH1r6OGLG/q5zcBmGYevLfOimkg0kSn9jLHwYSXLuoKG/DDQJhww==", "dev": true, "requires": { "bluebird": "3.7.2", diff --git a/package.json b/package.json index af710eb30..fda32bc63 100644 --- a/package.json +++ b/package.json @@ -67,6 +67,6 @@ "parcel-bundler": "1.12.4", "prettier": "1.19.1", "semantic-release": "17.0.4", - "start-server-and-test": "1.10.10" + "start-server-and-test": "1.10.11" } } From f86f7e6ed9b7d2d9a05033ea3ca82b50c0bfbc96 Mon Sep 17 00:00:00 2001 From: Gleb Bahmutov Date: Fri, 27 Mar 2020 12:05:02 -0400 Subject: [PATCH 31/85] chore: add code format check on CI --- .circleci/config.yml | 15 +++++++++++++++ package.json | 1 + 2 files changed, 16 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 0e3a1ba71..12edd4f81 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -5,7 +5,20 @@ orbs: node: circleci/node@1.1.6 # used to publish new NPM version jobs: + unit: + description: Checks the code formatting + executor: + name: node/default + tag: '12' + steps: + - checkout + - node/with-cache: + steps: + - run: npm ci + - run: npm run format:check + publish: + description: Publishes the new version of the plugin to NPM executor: name: node/default tag: '12' @@ -19,6 +32,8 @@ jobs: workflows: build: jobs: + - unit + - cypress/install: post-steps: - run: npm run check:markdown diff --git a/package.json b/package.json index fda32bc63..999698f93 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,7 @@ "report:coverage": "nyc report --reporter=html", "dev:no:coverage": "start-test 1234 'cypress open --env coverage=false'", "format": "prettier --write '*.js'", + "format:check": "prettier --check '*.js'", "start:test:backend": "nyc --silent node test-backend", "cy:backend": "cypress open --config-file cypress-backend.json", "dev:backend": "start-test start:test:backend 3003 cy:backend", From fea0d063c9fe72288fdf15f6cadc7370dd342d7a Mon Sep 17 00:00:00 2001 From: Gleb Bahmutov Date: Fri, 27 Mar 2020 12:06:36 -0400 Subject: [PATCH 32/85] publish only if unit job passes --- .circleci/config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 12edd4f81..2d0d7c951 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -141,6 +141,7 @@ workflows: only: - master requires: + - unit - frontend coverage - backend coverage - example-before-each-visit From 3b58453b347c1efd40f692bab789e989d4a0f2ba Mon Sep 17 00:00:00 2001 From: Gleb Bahmutov Date: Fri, 27 Mar 2020 12:13:05 -0400 Subject: [PATCH 33/85] fix typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 29f73a517..14c27bebb 100644 --- a/README.md +++ b/README.md @@ -336,7 +336,7 @@ npm run dev:no:coverage ### Internal examples - [examples/before-each-visit](examples/before-each-visit) checks if code coverage correctly keeps track of code when doing `cy.visit` before each test -- [examples-before-all-visit](examples/before-all-visit) checks if code coverage works when `cy.visit` is made once in the `before` hook +- [examples/before-all-visit](examples/before-all-visit) checks if code coverage works when `cy.visit` is made once in the `before` hook ### External examples From 90cf230c9167acc0c3f698b4f8acf2176907b3cb Mon Sep 17 00:00:00 2001 From: Gleb Bahmutov Date: Mon, 30 Mar 2020 13:07:42 -0400 Subject: [PATCH 34/85] feat: use `nyc` NPM dependency directly without bin executable (#162) BREAKING CHANGE: `nyc` is no longer a peer dependency, instead this module calls its API directly. * use nyc as direct dependency * feat: use nyc directly as a module * skip binary install, close #163 * hide CircleCI PR env variables * add typescript example * run ts-example server * update README file * use command * feat: move istanbul-lib-coverage from peer to prod dependencies * describe how to generate other reports * add link to Docker example, close #164 --- .circleci/config.yml | 37 +- .gitignore | 1 + README.md | 86 +- examples/ts-example/.babelrc | 3 + examples/ts-example/README.md | 11 + examples/ts-example/cypress.json | 4 + .../ts-example/cypress/integration/spec.js | 28 + examples/ts-example/cypress/plugins/index.js | 3 + examples/ts-example/cypress/support/index.js | 1 + examples/ts-example/index.html | 4 + examples/ts-example/main.ts | 22 + examples/ts-example/package.json | 21 + package-lock.json | 751 +++++++++++------- package.json | 17 +- task.js | 49 +- 15 files changed, 684 insertions(+), 354 deletions(-) create mode 100644 examples/ts-example/.babelrc create mode 100644 examples/ts-example/README.md create mode 100644 examples/ts-example/cypress.json create mode 100644 examples/ts-example/cypress/integration/spec.js create mode 100644 examples/ts-example/cypress/plugins/index.js create mode 100644 examples/ts-example/cypress/support/index.js create mode 100644 examples/ts-example/index.html create mode 100644 examples/ts-example/main.ts create mode 100644 examples/ts-example/package.json diff --git a/.circleci/config.yml b/.circleci/config.yml index 2d0d7c951..a097f80c5 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -10,11 +10,14 @@ jobs: executor: name: node/default tag: '12' + environment: + # we don't need Cypress to check code style + CYPRESS_INSTALL_BINARY: '0' steps: - checkout - node/with-cache: steps: - - run: npm ci + - run: CYPRESS_INSTALL_BINARY=0 npm ci - run: npm run format:check publish: @@ -22,6 +25,14 @@ jobs: executor: name: node/default tag: '12' + environment: + # we don't need Cypress to do the release + CYPRESS_INSTALL_BINARY: '0' + # trick semantic-release into thinking this is NOT a pull request + # (under the hood the module env-ci is used to check if this is a PR) + CIRCLE_PR_NUMBER: '' + CIRCLE_PULL_REQUEST: '' + CI_PULL_REQUEST: '' steps: - checkout - node/with-cache: @@ -135,14 +146,38 @@ workflows: command: npx nyc report --check-coverage true --lines 100 working_directory: examples/before-all-visit + - cypress/run: + attach-workspace: true + name: example-ts-example + requires: + - cypress/install + # there are no jobs to follow this one + # so no need to save the workspace files (saves time) + no-workspace: true + working_directory: examples/ts-example + start: npm start + wait-on: 'http://localhost:1234' + command: '../../node_modules/.bin/cypress run' + post-steps: + # store the created coverage report folder + # you can click on it in the CircleCI UI + # to see live static HTML site + - store_artifacts: + path: examples/ts-example/coverage + - run: + command: npm run coverage:check + working_directory: examples/ts-example + - publish: filters: branches: only: - master + - beta requires: - unit - frontend coverage - backend coverage - example-before-each-visit - example-before-all-visit + - example-ts-example diff --git a/.gitignore b/.gitignore index f1a4f3c45..8e5b13686 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,4 @@ dist/ cypress-coverage/ examples/*/cypress/videos examples/*/cypress/screenshots +yarn.lock diff --git a/README.md b/README.md index 14c27bebb..b65e42dc0 100644 --- a/README.md +++ b/README.md @@ -11,11 +11,7 @@ This plugin will slow down your tests. There will be more web application JavaSc npm install -D @cypress/code-coverage ``` -and its peer dependencies - -```shell -npm install -D nyc istanbul-lib-coverage cypress -``` +Note: this plugin assumes `cypress` is a peer dependency already installed in your project. Add to your `cypress/support/index.js` file @@ -57,6 +53,40 @@ If you have instrumented your application's code and see the `window.__coverage_ That should be it! +## Reports + +The `coverage` folder has results in several formats, and the coverage raw data is stored in `.nyc_output` folder. You can see the coverage numbers yourself. This plugin has `nyc` as a dependency, so it should be available right away. Here are common examples: + +```shell +# see just the coverage summary +$ npx nyc report --reporter=text-summary +# see just the coverage file by file +$ npx nyc report --reporter=text +# save the HTML report again +$ npx nyc report --reporter=lcov +``` + +It is useful to enforce [minimum coverage](https://github.com/istanbuljs/nyc#common-configuration-options) numbers. For example: + +```shell +$ npx nyc report --check-coverage --lines 80 +----------|---------|----------|---------|---------|------------------- +File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s +----------|---------|----------|---------|---------|------------------- +All files | 100 | 100 | 100 | 100 | + main.js | 100 | 100 | 100 | 100 | +----------|---------|----------|---------|---------|------------------- + +$ npx nyc report --check-coverage --lines 101 +----------|---------|----------|---------|---------|------------------- +File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s +----------|---------|----------|---------|---------|------------------- +All files | 100 | 100 | 100 | 100 | + main.js | 100 | 100 | 100 | 100 | +----------|---------|----------|---------|---------|------------------- +ERROR: Coverage for lines (100%) does not meet global threshold (101%) +``` + ## Instrument unit tests If you test your application code directly from `specs` you might want to instrument them and combine unit test code coverage with any end-to-end code coverage (from iframe). You can easily instrument spec files using [babel-plugin-istanbul](https://github.com/istanbuljs/babel-plugin-istanbul) for example. @@ -181,17 +211,6 @@ You can specify custom coverage reporter(s) to use. For example to output text s **Tip:** find list of reporters [here](https://istanbul.js.org/docs/advanced/alternative-reporters/) -## NYC - -This module tries to find the `nyc` tool using [bin-up][bin-up], so it would be found in the current `node_modules/.bin` or folders up the parent chain - -```text -node_modules/.bin/ -../node_modules/.bin/ -../../node_modules/.bin/ -etc -``` - ## Custom NYC command Sometimes NYC tool might be installed in a different folder not in the current or parent folder, or you might want to customize the report command. In that case, put the custom command into `package.json` in the current folder and this plugin will automatically use it. @@ -204,34 +223,6 @@ Sometimes NYC tool might be installed in a different folder not in the current o } ``` -See examples below. - -### Install NYC on the fly - -The simplest solution: let `npx` install `nyc` on the fly - -```json -{ - "scripts": { - "coverage:report": "npx nyc report --report-dir ./coverage --temp-dir .nyc_output --reporter=lcov --reporter=clover --reporter=json" - } -} -``` - -### Find NYC in a parent folder - -If you have [bin-up][bin-up] installed globally, you can use it to find `nyc` installed somewhere in the higher folder. - -```json -{ - "scripts": { - "coverage:report": "bin-up nyc report --report-dir ./coverage --temp-dir .nyc_output --reporter=lcov --reporter=clover --reporter=json" - } -} -``` - -**Tip:** finding and running pre-installed tool is always faster than installing it again and again. - ## TypeScript users TypeScript source files are NOT included in the code coverage report by default, even if they are properly instrumented. In order to tell `nyc` to include TS files in the report, you need to: @@ -239,7 +230,7 @@ TypeScript source files are NOT included in the code coverage report by default, 1. Add these dev dependencies that let Istanbul work with TypeScript ```shell -npm i -D @istanbuljs/nyc-config-typescript source-map-support ts-node +npm i -D @istanbuljs/nyc-config-typescript source-map-support ``` 2. In `package.json` use the following `nyc` configuration object @@ -253,6 +244,8 @@ npm i -D @istanbuljs/nyc-config-typescript source-map-support ts-node } ``` +See [examples/ts-example](examples/ts-example) + ## Exclude code You can exclude parts of the code or entire files from the code coverage report. See [Istanbul guide](https://github.com/gotwarlost/istanbul/blob/master/ignoring-code-for-coverage.md). Common cases: @@ -337,6 +330,7 @@ npm run dev:no:coverage - [examples/before-each-visit](examples/before-each-visit) checks if code coverage correctly keeps track of code when doing `cy.visit` before each test - [examples/before-all-visit](examples/before-all-visit) checks if code coverage works when `cy.visit` is made once in the `before` hook +- [examples/ts-example](examples/ts-example) uses Babel + Parcel to instrument and serve TypeScript file ### External examples @@ -353,6 +347,7 @@ npm run dev:no:coverage - [bahmutov/next-and-cypress-example](https://github.com/bahmutov/next-and-cypress-example) shows how to get backend and frontend coverage for a [Next.js](https://nextjs.org) project. Uses [middleware/nextjs.js](middleware/nextjs.js). - [akoidan/vue-webpack-typescript](https://github.com/akoidan/vue-webpack-typescript) Pure webpack config with vue + typescript with codecov reports. This setup uses babel-loader with TS checker as a separate thread. - [bahmutov/code-coverage-subfolder-example](https://github.com/bahmutov/code-coverage-subfolder-example) shows how to instrument `app` folder using `nyc instrument` as a separate step before running E2E tests +- [bahmutov/docker-with-cypress-included-code-coverage-example](https://github.com/bahmutov/docker-with-cypress-included-code-coverage-example) runs tests inside pre-installed Cypress using [cypress/included:x.y.z](https://github.com/cypress-io/cypress-docker-images/tree/master/included) Docker image and reports code coverage. ## Debugging @@ -392,4 +387,3 @@ This project is licensed under the terms of the [MIT license](LICENSE.md). [renovate-badge]: https://img.shields.io/badge/renovate-app-blue.svg [renovate-app]: https://renovateapp.com/ -[bin-up]: https://github.com/bahmutov/bin-up diff --git a/examples/ts-example/.babelrc b/examples/ts-example/.babelrc new file mode 100644 index 000000000..7a016cf8e --- /dev/null +++ b/examples/ts-example/.babelrc @@ -0,0 +1,3 @@ +{ + "plugins": ["istanbul"] +} diff --git a/examples/ts-example/README.md b/examples/ts-example/README.md new file mode 100644 index 000000000..53040e30e --- /dev/null +++ b/examples/ts-example/README.md @@ -0,0 +1,11 @@ +# example: ts-example + +Code coverage for TypeScript code. See [nyc TS support](https://github.com/istanbuljs/nyc#typescript-projects) docs too. + +Code is instrumented on the fly using [.babelrc](.babelrc) and Parcel to run it. + +## Use + +- start the server and Cypress with `npm run dev` +- run the Cypress tests +- look at the generated reports in folder `coverage` diff --git a/examples/ts-example/cypress.json b/examples/ts-example/cypress.json new file mode 100644 index 000000000..2a3b8db95 --- /dev/null +++ b/examples/ts-example/cypress.json @@ -0,0 +1,4 @@ +{ + "baseUrl": "http://localhost:1234", + "fixturesFolder": false +} diff --git a/examples/ts-example/cypress/integration/spec.js b/examples/ts-example/cypress/integration/spec.js new file mode 100644 index 000000000..8773ee329 --- /dev/null +++ b/examples/ts-example/cypress/integration/spec.js @@ -0,0 +1,28 @@ +/// +describe('ts-example', () => { + beforeEach(() => { + cy.visit('/') + }) + + it('calls add', () => { + cy.window() + .invoke('add', 2, 3) + .should('equal', 5) + }) + + it('calls sub', () => { + cy.window() + .invoke('sub', 2, 3) + .should('equal', -1) + }) + + it('calls abs twice', () => { + cy.window() + .invoke('abs', 2) + .should('equal', 2) + + cy.window() + .invoke('abs', -5) + .should('equal', 5) + }) +}) diff --git a/examples/ts-example/cypress/plugins/index.js b/examples/ts-example/cypress/plugins/index.js new file mode 100644 index 000000000..172deda45 --- /dev/null +++ b/examples/ts-example/cypress/plugins/index.js @@ -0,0 +1,3 @@ +module.exports = (on, config) => { + on('task', require('../../../../task')) +} diff --git a/examples/ts-example/cypress/support/index.js b/examples/ts-example/cypress/support/index.js new file mode 100644 index 000000000..dd60efa28 --- /dev/null +++ b/examples/ts-example/cypress/support/index.js @@ -0,0 +1 @@ +import '../../../../support' diff --git a/examples/ts-example/index.html b/examples/ts-example/index.html new file mode 100644 index 000000000..1c13a2c41 --- /dev/null +++ b/examples/ts-example/index.html @@ -0,0 +1,4 @@ + + Page body + + diff --git a/examples/ts-example/main.ts b/examples/ts-example/main.ts new file mode 100644 index 000000000..61e93ad42 --- /dev/null +++ b/examples/ts-example/main.ts @@ -0,0 +1,22 @@ +const add = (a: number, b: number) => { + return a + b +} + +const sub = (a: number, b: number) => { + return a - b +} + +function abs(x: number) { + if (x >= 0) { + return x + } else { + return -x + } +} + +// @ts-ignore +window.add = add +// @ts-ignore +window.sub = sub +// @ts-ignore +window.abs = abs diff --git a/examples/ts-example/package.json b/examples/ts-example/package.json new file mode 100644 index 000000000..3f296f798 --- /dev/null +++ b/examples/ts-example/package.json @@ -0,0 +1,21 @@ +{ + "name": "example-before-each-visit", + "description": "Getting code coverage when cy.visit is used in beforeEach hook", + "devDependencies": { + "@babel/core": "7.9.0" + }, + "nyc": { + "extends": "@istanbuljs/nyc-config-typescript", + "all": true + }, + "scripts": { + "start": "../../node_modules/.bin/parcel serve index.html", + "build": "../../node_modules/.bin/parcel build index.html", + "serve": "../../node_modules/.bin/serve dist", + "cy:open": "../../node_modules/.bin/cypress open", + "coverage": "../../node_modules/.bin/nyc report --report-dir ./coverage --temp-dir .nyc_output --reporter=lcov", + "coverage:check": "../../node_modules/.bin/nyc report --check-coverage true --lines 100", + "dev": "../../node_modules/.bin/start-test 1234 cy:open", + "dev:dist": "CYPRESS_baseUrl=http://localhost:5000 ../../node_modules/.bin/start-test serve 5000 cy:open" + } +} diff --git a/package-lock.json b/package-lock.json index 223f1ccac..660776199 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,7 +16,6 @@ "version": "7.9.0", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.0.tgz", "integrity": "sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w==", - "dev": true, "requires": { "@babel/code-frame": "^7.8.3", "@babel/generator": "^7.9.0", @@ -40,7 +39,6 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", - "dev": true, "requires": { "@babel/highlight": "^7.8.3" } @@ -49,7 +47,6 @@ "version": "7.9.0", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.0.tgz", "integrity": "sha512-onl4Oy46oGCzymOXtKMQpI7VXtCbTSHK1kqBydZ6AmzuNcacEVqGk9tZtAS+48IA9IstZcDCgIg8hQKnb7suRw==", - "dev": true, "requires": { "@babel/types": "^7.9.0", "jsesc": "^2.5.1", @@ -61,7 +58,6 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", - "dev": true, "requires": { "@babel/helper-get-function-arity": "^7.8.3", "@babel/template": "^7.8.3", @@ -72,7 +68,6 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", - "dev": true, "requires": { "@babel/types": "^7.8.3" } @@ -81,7 +76,6 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz", "integrity": "sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg==", - "dev": true, "requires": { "@babel/types": "^7.8.3" } @@ -90,7 +84,6 @@ "version": "7.9.0", "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz", "integrity": "sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA==", - "dev": true, "requires": { "@babel/helper-module-imports": "^7.8.3", "@babel/helper-replace-supers": "^7.8.6", @@ -105,7 +98,6 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz", "integrity": "sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ==", - "dev": true, "requires": { "@babel/types": "^7.8.3" } @@ -114,7 +106,6 @@ "version": "7.8.6", "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.6.tgz", "integrity": "sha512-PeMArdA4Sv/Wf4zXwBKPqVj7n9UF/xg6slNRtZW84FM7JpE1CbG8B612FyM4cxrf4fMAMGO0kR7voy1ForHHFA==", - "dev": true, "requires": { "@babel/helper-member-expression-to-functions": "^7.8.3", "@babel/helper-optimise-call-expression": "^7.8.3", @@ -126,7 +117,6 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz", "integrity": "sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw==", - "dev": true, "requires": { "@babel/template": "^7.8.3", "@babel/types": "^7.8.3" @@ -136,7 +126,6 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", - "dev": true, "requires": { "@babel/types": "^7.8.3" } @@ -145,7 +134,6 @@ "version": "7.9.0", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.9.0.tgz", "integrity": "sha512-/9GvfYTCG1NWCNwDj9e+XlnSCmWW/r9T794Xi58vPF9WCcnZCAZ0kWLSn54oqP40SUvh1T2G6VwKmFO5AOlW3A==", - "dev": true, "requires": { "@babel/template": "^7.8.3", "@babel/traverse": "^7.9.0", @@ -156,7 +144,6 @@ "version": "7.9.0", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", - "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.9.0", "chalk": "^2.0.0", @@ -166,14 +153,12 @@ "@babel/parser": { "version": "7.9.0", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.0.tgz", - "integrity": "sha512-Iwyp00CZsypoNJcpXCbq3G4tcDgphtlMwMVrMhhZ//XBkqjXF7LW6V511yk0+pBX3ZwwGnPea+pTKNJiqA7pUg==", - "dev": true + "integrity": "sha512-Iwyp00CZsypoNJcpXCbq3G4tcDgphtlMwMVrMhhZ//XBkqjXF7LW6V511yk0+pBX3ZwwGnPea+pTKNJiqA7pUg==" }, "@babel/template": { "version": "7.8.6", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", - "dev": true, "requires": { "@babel/code-frame": "^7.8.3", "@babel/parser": "^7.8.6", @@ -184,7 +169,6 @@ "version": "7.9.0", "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.0.tgz", "integrity": "sha512-jAZQj0+kn4WTHO5dUZkZKhbFrqZE7K5LAQ5JysMnmvGij+wOdr+8lWqPeW0BcF4wFwrEXXtdGO7wcV6YPJcf3w==", - "dev": true, "requires": { "@babel/code-frame": "^7.8.3", "@babel/generator": "^7.9.0", @@ -201,7 +185,6 @@ "version": "7.9.0", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz", "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==", - "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.9.0", "lodash": "^4.17.13", @@ -212,7 +195,6 @@ "version": "1.7.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", - "dev": true, "requires": { "safe-buffer": "~5.1.1" } @@ -221,7 +203,6 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.2.tgz", "integrity": "sha512-MoUOQ4WdiN3yxhm7NEVJSJrieAo5hNSLQ5sj05OTRHPL9HOBy8u4Bu88jsC1jvqAdN+E1bJmsUcZH+1HQxliqQ==", - "dev": true, "requires": { "minimist": "^1.2.5" } @@ -229,8 +210,7 @@ "minimist": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" } } }, @@ -718,8 +698,7 @@ "@babel/helper-validator-identifier": { "version": "7.9.0", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.0.tgz", - "integrity": "sha512-6G8bQKjOh+of4PV/ThDm/rRqlU7+IGoJuofpagU5GlEl29Vv0RGqqt86ZGRV8ZuSOY3o+8yXl5y782SMcG7SHw==", - "dev": true + "integrity": "sha512-6G8bQKjOh+of4PV/ThDm/rRqlU7+IGoJuofpagU5GlEl29Vv0RGqqt86ZGRV8ZuSOY3o+8yXl5y782SMcG7SHw==" }, "@babel/helper-wrap-function": { "version": "7.2.0", @@ -2634,7 +2613,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.0.0.tgz", "integrity": "sha512-ZR0rq/f/E4f4XcgnDvtMWXCUJpi8eO0rssVhmztsZqLIEFA9UUP9zmpE0VxlM+kv/E1ul2I876Fwil2ayptDVg==", - "dev": true, "requires": { "camelcase": "^5.3.1", "find-up": "^4.1.0", @@ -2646,7 +2624,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, "requires": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -2656,7 +2633,6 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, "requires": { "p-locate": "^4.1.0" } @@ -2665,7 +2641,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, "requires": { "p-limit": "^2.2.0" } @@ -2673,16 +2648,23 @@ "path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" } } }, + "@istanbuljs/nyc-config-typescript": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@istanbuljs/nyc-config-typescript/-/nyc-config-typescript-1.0.1.tgz", + "integrity": "sha512-/gz6LgVpky205LuoOfwEZmnUtaSmdk0QIMcNFj9OvxhiMhPpKftMgZmGN7jNj7jR+lr8IB1Yks3QSSSNSxfoaQ==", + "dev": true, + "requires": { + "@istanbuljs/schema": "^0.1.2" + } + }, "@istanbuljs/schema": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", - "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==", - "dev": true + "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==" }, "@mrmlnc/readdir-enhanced": { "version": "2.2.1", @@ -3205,8 +3187,7 @@ "@types/color-name": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", - "dev": true + "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" }, "@types/node": { "version": "13.7.4", @@ -3244,6 +3225,12 @@ "integrity": "sha512-7EJYyKTL7tFR8+gDbB6Wwz/arpGa0Mywk1TJbNzKzHtzbwVmY4HR9WqS5VV7dsBUKQmPNr192jHr/VpBluj/hg==", "dev": true }, + "@zeit/schemas": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@zeit/schemas/-/schemas-2.6.0.tgz", + "integrity": "sha512-uUrgZ8AxS+Lio0fZKAipJjAh415JyrOZowliZAzmnJSsf7piVL5w+G0+gFJ0KSu3QRhvui/7zuvpLz03YjXAhg==", + "dev": true + }, "JSONStream": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", @@ -3339,7 +3326,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz", "integrity": "sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA==", - "dev": true, "requires": { "clean-stack": "^2.0.0", "indent-string": "^4.0.0" @@ -3348,8 +3334,7 @@ "indent-string": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" } } }, @@ -3371,6 +3356,15 @@ "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", "dev": true }, + "ansi-align": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", + "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", + "dev": true, + "requires": { + "string-width": "^2.0.0" + } + }, "ansi-escapes": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", @@ -3433,7 +3427,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", - "dev": true, "requires": { "default-require-extensions": "^3.0.0" } @@ -3447,14 +3440,18 @@ "archy": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=" + }, + "arg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arg/-/arg-2.0.0.tgz", + "integrity": "sha512-XxNTUzKnz1ctK3ZIcI2XUPlD96wbHP2nGqkPKpvk/HNRlPveYrXIVSTk9m3LcqOgDPg3B1nMvdV/K8wZd7PG4w==", "dev": true }, "argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, "requires": { "sprintf-js": "~1.0.2" } @@ -3773,63 +3770,6 @@ "integrity": "sha512-IWIbu7pMqyw3EAJHzzHbWa85b6oud/yfKYg5rqB5hNE8CeMi3nX+2C2sj0HswfblST86hpVEOAb9x34NZd6P7A==", "dev": true }, - "bin-up": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/bin-up/-/bin-up-1.3.2.tgz", - "integrity": "sha512-ePRL4VTK6jE/rXyoTH/YjzLRqp397y/dUSRXrPe8OcVP4min4bLJxNhmTdZfEF4zQYn4yYaI6WGy8M7F1mY1Aw==", - "requires": { - "execa": "2.0.5" - }, - "dependencies": { - "execa": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/execa/-/execa-2.0.5.tgz", - "integrity": "sha512-SwmwZZyJjflcqLSgllk4EQlMLst2p9muyzwNugKGFlpAz6rZ7M+s2nBR97GAq4Vzjwx2y9rcMcmqzojwN+xwNA==", - "requires": { - "cross-spawn": "^6.0.5", - "get-stream": "^5.0.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^3.0.0", - "onetime": "^5.1.0", - "p-finally": "^2.0.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - } - }, - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==" - }, - "npm-run-path": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-3.1.0.tgz", - "integrity": "sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg==", - "requires": { - "path-key": "^3.0.0" - } - }, - "onetime": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", - "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "p-finally": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz", - "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==" - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" - } - } - }, "binary-extensions": { "version": "1.13.1", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", @@ -3912,6 +3852,29 @@ "integrity": "sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==", "dev": true }, + "boxen": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", + "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", + "dev": true, + "requires": { + "ansi-align": "^2.0.0", + "camelcase": "^4.0.0", + "chalk": "^2.0.1", + "cli-boxes": "^1.0.0", + "string-width": "^2.0.0", + "term-size": "^1.2.0", + "widest-line": "^2.0.0" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + } + } + }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -4253,7 +4216,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", - "dev": true, "requires": { "hasha": "^5.0.0", "make-dir": "^3.0.0", @@ -4294,8 +4256,7 @@ "camelcase": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" }, "camelcase-keys": { "version": "4.2.0", @@ -4433,7 +4394,12 @@ "clean-stack": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" + }, + "cli-boxes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", + "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=", "dev": true }, "cli-cursor": { @@ -4506,11 +4472,70 @@ } } }, + "clipboardy": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-1.2.3.tgz", + "integrity": "sha512-2WNImOvCRe6r63Gk9pShfkwXsVtKCroMAevIbiae021mS850UkWPbevxsBz3tnvjZIEGvlwaqCPsw+4ulzNgJA==", + "dev": true, + "requires": { + "arch": "^2.1.0", + "execa": "^0.8.0" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "execa": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.8.0.tgz", + "integrity": "sha1-2NdrvBtVIX7RkP1t1J08d07PyNo=", + "dev": true, + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + } + } + }, "cliui": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, "requires": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", @@ -4520,20 +4545,17 @@ "ansi-regex": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" }, "is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" }, "string-width": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -4544,7 +4566,6 @@ "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" } @@ -4689,8 +4710,7 @@ "commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" }, "compare-func": { "version": "1.3.2", @@ -4718,6 +4738,55 @@ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" }, + "compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "requires": { + "mime-db": ">= 1.43.0 < 2" + }, + "dependencies": { + "mime-db": { + "version": "1.43.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz", + "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==", + "dev": true + } + } + }, + "compression": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.3.tgz", + "integrity": "sha512-HSjyBG5N1Nnz7tF2+O7A9XUhyjru71/fwgNb7oIsEVHR0WShfs2tIS/EySLgiTe98aOK18YDlMXpzjCXY/n9mg==", + "dev": true, + "requires": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.14", + "debug": "2.6.9", + "on-headers": "~1.0.1", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "dependencies": { + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -4960,6 +5029,7 @@ "version": "6.0.5", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, "requires": { "nice-try": "^1.0.4", "path-key": "^2.0.1", @@ -5503,8 +5573,7 @@ "decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" }, "decamelize-keys": { "version": "1.1.0", @@ -5545,7 +5614,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz", "integrity": "sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==", - "dev": true, "requires": { "strip-bom": "^4.0.0" }, @@ -5553,8 +5621,7 @@ "strip-bom": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==" } } }, @@ -5848,8 +5915,7 @@ "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "encodeurl": { "version": "1.0.2", @@ -5936,8 +6002,7 @@ "es6-error": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", - "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", - "dev": true + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==" }, "escape-html": { "version": "1.0.3", @@ -5981,8 +6046,7 @@ "esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" }, "estraverse": { "version": "4.3.0", @@ -6401,6 +6465,23 @@ "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==" }, + "fast-url-parser": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", + "integrity": "sha1-9K8+qfNNiicc9YrSs3WfQx8LMY0=", + "dev": true, + "requires": { + "punycode": "^1.3.2" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + } + } + }, "fastparse": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", @@ -6492,7 +6573,6 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.2.0.tgz", "integrity": "sha512-1JKclkYYsf1q9WIJKLZa9S9muC+08RIjzAlLrK4QcYLJMS6mk9yombQ9qf+zJ7H9LS800k0s44L4sDq9VYzqyg==", - "dev": true, "requires": { "commondir": "^1.0.1", "make-dir": "^3.0.0", @@ -6532,7 +6612,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", - "dev": true, "requires": { "cross-spawn": "^7.0.0", "signal-exit": "^3.0.2" @@ -6542,7 +6621,6 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.1.tgz", "integrity": "sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg==", - "dev": true, "requires": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -6552,14 +6630,12 @@ "path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" }, "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, "requires": { "shebang-regex": "^3.0.0" } @@ -6567,14 +6643,12 @@ "shebang-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" }, "which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, "requires": { "isexe": "^2.0.0" } @@ -6637,8 +6711,7 @@ "fromentries": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.2.0.tgz", - "integrity": "sha512-33X7H/wdfO99GdRLLgkjUrD4geAFdq/Uv0kl3HD4da6HDixd2GUg8Mw7dahLCV9r/EARkmtYBB6Tch4EEokFTQ==", - "dev": true + "integrity": "sha512-33X7H/wdfO99GdRLLgkjUrD4geAFdq/Uv0kl3HD4da6HDixd2GUg8Mw7dahLCV9r/EARkmtYBB6Tch4EEokFTQ==" }, "fs-extra": { "version": "8.1.0", @@ -7153,8 +7226,7 @@ "gensync": { "version": "1.0.0-beta.1", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz", - "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==", - "dev": true + "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==" }, "get-assigned-identifiers": { "version": "1.2.0", @@ -7164,8 +7236,7 @@ "get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" }, "get-port": { "version": "3.2.0", @@ -7504,7 +7575,6 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.1.0.tgz", "integrity": "sha512-OFPDWmzPN1l7atOV1TgBVmNtBxaIysToK6Ve9DK+vT6pYuklw/nPNT+HJbZi0KDcI6vWB+9tgvZ5YD7fA3CXcA==", - "dev": true, "requires": { "is-stream": "^2.0.0", "type-fest": "^0.8.0" @@ -7513,14 +7583,12 @@ "is-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", - "dev": true + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==" }, "type-fest": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==" } } }, @@ -7585,8 +7653,7 @@ "html-escaper": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.0.tgz", - "integrity": "sha512-a4u9BeERWGu/S8JiWEAQcdrg9v4QArtP9keViQjGMdff20fBdd8waotXaNmODqBe6uZ3Nafi7K/ho4gCQHV3Ig==", - "dev": true + "integrity": "sha512-a4u9BeERWGu/S8JiWEAQcdrg9v4QArtP9keViQjGMdff20fBdd8waotXaNmODqBe6uZ3Nafi7K/ho4gCQHV3Ig==" }, "html-tags": { "version": "1.2.0", @@ -7786,8 +7853,7 @@ "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" }, "indent-string": { "version": "3.2.0", @@ -8162,8 +8228,7 @@ "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" }, "is-url": { "version": "1.2.4", @@ -8228,14 +8293,12 @@ "istanbul-lib-coverage": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", - "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", - "dev": true + "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==" }, "istanbul-lib-hook": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", - "dev": true, "requires": { "append-transform": "^2.0.0" } @@ -8379,7 +8442,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz", "integrity": "sha512-kOwpa7z9hme+IBPZMzQ5vdQj8srYgAtaRqeI48NGmAQ+/5yKiHLV0QbYqQpxsdEF0+w14SoB8YbnHKcXE2KnYw==", - "dev": true, "requires": { "archy": "^1.0.0", "cross-spawn": "^7.0.0", @@ -8394,7 +8456,6 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.1.tgz", "integrity": "sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg==", - "dev": true, "requires": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -8404,14 +8465,12 @@ "istanbul-lib-coverage": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", - "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", - "dev": true + "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==" }, "p-map": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "dev": true, "requires": { "aggregate-error": "^3.0.0" } @@ -8419,14 +8478,12 @@ "path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" }, "rimraf": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.0.tgz", "integrity": "sha512-NDGVxTsjqfunkds7CqsOiEnxln4Bo7Nddl3XhS4pXg5OzwkLqJ971ZVAAnB+DDLnF76N+VnDEiBHaVV8I06SUg==", - "dev": true, "requires": { "glob": "^7.1.3" } @@ -8435,7 +8492,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, "requires": { "shebang-regex": "^3.0.0" } @@ -8443,20 +8499,17 @@ "shebang-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" }, "uuid": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz", - "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==", - "dev": true + "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==" }, "which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, "requires": { "isexe": "^2.0.0" } @@ -8467,7 +8520,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dev": true, "requires": { "istanbul-lib-coverage": "^3.0.0", "make-dir": "^3.0.0", @@ -8477,20 +8529,17 @@ "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, "istanbul-lib-coverage": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", - "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", - "dev": true + "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==" }, "supports-color": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, "requires": { "has-flag": "^4.0.0" } @@ -8501,7 +8550,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz", "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", - "dev": true, "requires": { "debug": "^4.1.1", "istanbul-lib-coverage": "^3.0.0", @@ -8511,14 +8559,12 @@ "istanbul-lib-coverage": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", - "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", - "dev": true + "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==" }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" } } }, @@ -8526,7 +8572,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.0.tgz", "integrity": "sha512-2osTcC8zcOSUkImzN2EWQta3Vdi4WjjKw99P2yWx5mLnigAM0Rd5uYFn1cf2i/Ois45GkNjaoTqc5CxgMSX80A==", - "dev": true, "requires": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" @@ -8552,7 +8597,6 @@ "version": "3.13.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", - "dev": true, "requires": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -8970,8 +9014,7 @@ "lodash.flattendeep": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", - "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", - "dev": true + "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=" }, "lodash.ismatch": { "version": "4.4.0", @@ -9154,7 +9197,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.0.tgz", "integrity": "sha512-grNJDhb8b1Jm1qeqW5R/O63wUo4UXo2v2HMic6YT9i/HBlF93S8jkMgH7yugvY9ABDShH4VZMn8I+U8+fCNegw==", - "dev": true, "requires": { "semver": "^6.0.0" }, @@ -9162,8 +9204,7 @@ "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" } } }, @@ -9615,7 +9656,8 @@ "nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true }, "node-addon-api": { "version": "1.7.1", @@ -9693,7 +9735,6 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", - "dev": true, "requires": { "process-on-spawn": "^1.0.0" } @@ -13308,7 +13349,6 @@ "version": "15.0.0", "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.0.0.tgz", "integrity": "sha512-qcLBlNCKMDVuKb7d1fpxjPR8sHeMVX0CHarXAVzrVWoFrigCkYR8xcrjfXSPi5HXM7EU78L6ywO7w1c5rZNCNg==", - "dev": true, "requires": { "@istanbuljs/load-nyc-config": "^1.0.0", "@istanbuljs/schema": "^0.1.2", @@ -13344,7 +13384,6 @@ "version": "7.7.7", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.7.7.tgz", "integrity": "sha512-/AOIBpHh/JU1l0ZFS4kiRCBnLi6OTHzh0RPk3h9isBxkkqELtQNFi1Vr/tiG9p1yfoUdKVwISuXWQR+hwwM4VQ==", - "dev": true, "requires": { "@babel/types": "^7.7.4", "jsesc": "^2.5.1", @@ -13356,7 +13395,6 @@ "version": "7.7.4", "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.7.4.tgz", "integrity": "sha512-AnkGIdiBhEuiwdoMnKm7jfPfqItZhgRaZfMg1XX3bS25INOnLPjPG1Ppnajh8eqgt5kPJnfqrRHqFqmjKDZLzQ==", - "dev": true, "requires": { "@babel/helper-get-function-arity": "^7.7.4", "@babel/template": "^7.7.4", @@ -13367,7 +13405,6 @@ "version": "7.7.4", "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.4.tgz", "integrity": "sha512-QTGKEdCkjgzgfJ3bAyRwF4yyT3pg+vDgan8DSivq1eS0gwi+KGKE5x8kRcbeFTb/673mkO5SN1IZfmCfA5o+EA==", - "dev": true, "requires": { "@babel/types": "^7.7.4" } @@ -13376,7 +13413,6 @@ "version": "7.7.4", "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.4.tgz", "integrity": "sha512-guAg1SXFcVr04Guk9eq0S4/rWS++sbmyqosJzVs8+1fH5NI+ZcmkaSkc7dmtAFbHFva6yRJnjW3yAcGxjueDug==", - "dev": true, "requires": { "@babel/types": "^7.7.4" } @@ -13384,14 +13420,12 @@ "@babel/parser": { "version": "7.7.7", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.7.tgz", - "integrity": "sha512-WtTZMZAZLbeymhkd/sEaPD8IQyGAhmuTuvTzLiCFM7iXiVdY0gc0IaI+cW0fh1BnSMbJSzXX6/fHllgHKwHhXw==", - "dev": true + "integrity": "sha512-WtTZMZAZLbeymhkd/sEaPD8IQyGAhmuTuvTzLiCFM7iXiVdY0gc0IaI+cW0fh1BnSMbJSzXX6/fHllgHKwHhXw==" }, "@babel/template": { "version": "7.7.4", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.7.4.tgz", "integrity": "sha512-qUzihgVPguAzXCK7WXw8pqs6cEwi54s3E+HrejlkuWO6ivMKx9hZl3Y2fSXp9i5HgyWmj7RKP+ulaYnKM4yYxw==", - "dev": true, "requires": { "@babel/code-frame": "^7.0.0", "@babel/parser": "^7.7.4", @@ -13402,7 +13436,6 @@ "version": "7.7.4", "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.7.4.tgz", "integrity": "sha512-P1L58hQyupn8+ezVA2z5KBm4/Zr4lCC8dwKCMYzsa5jFMDMQAzaBNy9W5VjB+KAmBjb40U7a/H6ao+Xo+9saIw==", - "dev": true, "requires": { "@babel/code-frame": "^7.5.5", "@babel/generator": "^7.7.4", @@ -13419,7 +13452,6 @@ "version": "7.5.5", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", - "dev": true, "requires": { "@babel/highlight": "^7.0.0" } @@ -13430,7 +13462,6 @@ "version": "7.7.4", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", - "dev": true, "requires": { "esutils": "^2.0.2", "lodash": "^4.17.13", @@ -13441,7 +13472,6 @@ "version": "1.7.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", - "dev": true, "requires": { "safe-buffer": "~5.1.1" } @@ -13450,7 +13480,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, "requires": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -13460,7 +13489,6 @@ "version": "7.1.6", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -13473,14 +13501,12 @@ "istanbul-lib-coverage": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", - "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", - "dev": true + "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==" }, "istanbul-lib-instrument": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.0.tgz", "integrity": "sha512-Nm4wVHdo7ZXSG30KjZ2Wl5SU/Bw7bDx1PdaiIFzEStdjs0H12mOTncn1GVYuqQSaZxpg87VGBRsVRPGD2cD1AQ==", - "dev": true, "requires": { "@babel/core": "^7.7.5", "@babel/parser": "^7.7.5", @@ -13495,7 +13521,6 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, "requires": { "p-locate": "^4.1.0" } @@ -13504,7 +13529,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, "requires": { "p-limit": "^2.2.0" } @@ -13513,7 +13537,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "dev": true, "requires": { "aggregate-error": "^3.0.0" } @@ -13521,14 +13544,12 @@ "path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" }, "rimraf": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.0.tgz", "integrity": "sha512-NDGVxTsjqfunkds7CqsOiEnxln4Bo7Nddl3XhS4pXg5OzwkLqJ971ZVAAnB+DDLnF76N+VnDEiBHaVV8I06SUg==", - "dev": true, "requires": { "glob": "^7.1.3" } @@ -13536,14 +13557,12 @@ "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" }, "test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, "requires": { "@istanbuljs/schema": "^0.1.2", "glob": "^7.1.4", @@ -13553,8 +13572,7 @@ "uuid": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz", - "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==", - "dev": true + "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==" } } }, @@ -13666,6 +13684,12 @@ "ee-first": "1.1.1" } }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true + }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -13789,7 +13813,6 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", - "dev": true, "requires": { "p-try": "^2.0.0" } @@ -13845,14 +13868,12 @@ "p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" }, "package-hash": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", - "dev": true, "requires": { "graceful-fs": "^4.1.15", "hasha": "^5.0.0", @@ -14036,7 +14057,8 @@ "path-key": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true }, "path-parse": { "version": "1.0.6", @@ -14136,7 +14158,6 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, "requires": { "find-up": "^4.0.0" }, @@ -14145,7 +14166,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, "requires": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -14155,7 +14175,6 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, "requires": { "p-locate": "^4.1.0" } @@ -14164,7 +14183,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, "requires": { "p-limit": "^2.2.0" } @@ -14172,8 +14190,7 @@ "path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" } } }, @@ -14747,7 +14764,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", - "dev": true, "requires": { "fromentries": "^1.2.0" } @@ -14777,6 +14793,12 @@ "event-stream": "=3.3.4" } }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, "psl": { "version": "1.1.31", "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz", @@ -15122,6 +15144,15 @@ "rc": "^1.2.8" } }, + "registry-url": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", + "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", + "dev": true, + "requires": { + "rc": "^1.0.1" + } + }, "regjsgen": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.0.tgz", @@ -15146,7 +15177,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", - "dev": true, "requires": { "es6-error": "^4.0.1" } @@ -15226,14 +15256,12 @@ "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" }, "require-main-filename": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" }, "resolve": { "version": "1.11.0", @@ -15246,8 +15274,7 @@ "resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" }, "resolve-url": { "version": "0.2.1", @@ -15585,6 +15612,114 @@ "integrity": "sha512-WdGgi0jGnWCQXph2p3vkxceDnTfvfyXfYxherQMRcZjSaJzMQdMBAW6i0nojsBKIZ3fFOztZKKVbbm05VbIdRA==", "dev": true }, + "serve": { + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/serve/-/serve-11.3.0.tgz", + "integrity": "sha512-AU0g50Q1y5EVFX56bl0YX5OtVjUX1N737/Htj93dQGKuHiuLvVB45PD8Muar70W6Kpdlz8aNJfoUqTyAq9EE/A==", + "dev": true, + "requires": { + "@zeit/schemas": "2.6.0", + "ajv": "6.5.3", + "arg": "2.0.0", + "boxen": "1.3.0", + "chalk": "2.4.1", + "clipboardy": "1.2.3", + "compression": "1.7.3", + "serve-handler": "6.1.2", + "update-check": "1.5.2" + }, + "dependencies": { + "ajv": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.3.tgz", + "integrity": "sha512-LqZ9wY+fx3UMiiPd741yB2pj3hhil+hQc8taf4o2QGRFpWgZ2V5C8HA165DY9sS3fJwsk7uT7ZlFEyC3Ig3lLg==", + "dev": true, + "requires": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "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.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + } + } + }, + "serve-handler": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.2.tgz", + "integrity": "sha512-RFh49wX7zJmmOVDcIjiDSJnMH+ItQEvyuYLYuDBVoA/xmQSCuj+uRmk1cmBB5QQlI3qOiWKp6p4DUGY+Z5AB2A==", + "dev": true, + "requires": { + "bytes": "3.0.0", + "content-disposition": "0.5.2", + "fast-url-parser": "1.1.3", + "mime-types": "2.1.18", + "minimatch": "3.0.4", + "path-is-inside": "1.0.2", + "path-to-regexp": "2.2.1", + "range-parser": "1.2.0" + }, + "dependencies": { + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "dev": true + }, + "content-disposition": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=", + "dev": true + }, + "mime-db": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", + "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", + "dev": true + }, + "mime-types": { + "version": "2.1.18", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", + "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", + "dev": true, + "requires": { + "mime-db": "~1.33.0" + } + }, + "path-to-regexp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.2.1.tgz", + "integrity": "sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==", + "dev": true + }, + "range-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=", + "dev": true + } + } + }, "serve-static": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", @@ -15600,8 +15735,7 @@ "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, "set-value": { "version": "2.0.0", @@ -15672,6 +15806,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, "requires": { "shebang-regex": "^1.0.0" } @@ -15679,7 +15814,8 @@ "shebang-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true }, "shell-quote": { "version": "1.7.2", @@ -15870,9 +16006,9 @@ } }, "source-map-support": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz", + "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==", "dev": true, "requires": { "buffer-from": "^1.0.0", @@ -15902,7 +16038,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", - "dev": true, "requires": { "foreground-child": "^2.0.0", "is-windows": "^1.0.2", @@ -15916,7 +16051,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.0.tgz", "integrity": "sha512-NDGVxTsjqfunkds7CqsOiEnxln4Bo7Nddl3XhS4pXg5OzwkLqJ971ZVAAnB+DDLnF76N+VnDEiBHaVV8I06SUg==", - "dev": true, "requires": { "glob": "^7.1.3" } @@ -15925,7 +16059,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, "requires": { "isexe": "^2.0.0" } @@ -15993,8 +16126,7 @@ "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" }, "sshpk": { "version": "1.16.1", @@ -16472,6 +16604,65 @@ } } }, + "term-size": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", + "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", + "dev": true, + "requires": { + "execa": "^0.7.0" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "dev": true, + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + } + } + }, "terser": { "version": "3.17.0", "resolved": "https://registry.npmjs.org/terser/-/terser-3.17.0.tgz", @@ -16745,11 +16936,16 @@ "version": "3.1.5", "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, "requires": { "is-typedarray": "^1.0.0" } }, + "typescript": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.8.3.tgz", + "integrity": "sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w==", + "dev": true + }, "uglify-js": { "version": "3.8.0", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.8.0.tgz", @@ -17016,6 +17212,28 @@ "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.2.tgz", "integrity": "sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q==" }, + "update-check": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/update-check/-/update-check-1.5.2.tgz", + "integrity": "sha512-1TrmYLuLj/5ZovwUS7fFd1jMH3NnFDN1y1A8dboedIDt7zs/zJMo6TwwlhYKkSeEwzleeiSBV5/3c9ufAQWDaQ==", + "dev": true, + "requires": { + "registry-auth-token": "3.3.2", + "registry-url": "3.1.0" + }, + "dependencies": { + "registry-auth-token": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz", + "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", + "dev": true, + "requires": { + "rc": "^1.1.6", + "safe-buffer": "^5.0.1" + } + } + } + }, "uri-js": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", @@ -17258,6 +17476,7 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, "requires": { "isexe": "^2.0.0" } @@ -17265,8 +17484,16 @@ "which-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + }, + "widest-line": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz", + "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==", + "dev": true, + "requires": { + "string-width": "^2.1.1" + } }, "windows-release": { "version": "3.2.0", @@ -17313,7 +17540,6 @@ "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, "requires": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -17323,14 +17549,12 @@ "ansi-regex": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" }, "ansi-styles": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.0.tgz", "integrity": "sha512-7kFQgnEaMdRtwf6uSfUnVr9gSGC7faurn+J/Mv90/W+iTtN0405/nLdopfMWwchyxhbGYl6TC4Sccn9TUkGAgg==", - "dev": true, "requires": { "@types/color-name": "^1.1.1", "color-convert": "^2.0.1" @@ -17340,7 +17564,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "requires": { "color-name": "~1.1.4" } @@ -17348,20 +17571,17 @@ "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" }, "string-width": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -17372,7 +17592,6 @@ "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" } @@ -17388,7 +17607,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.1.tgz", "integrity": "sha512-JPStrIyyVJ6oCSz/691fAjFtefZ6q+fP6tm+OS4Qw6o+TGQxNp1ziY2PgS+X/m0V8OWhZiO/m4xSj+Pr4RrZvw==", - "dev": true, "requires": { "imurmurhash": "^0.1.4", "is-typedarray": "^1.0.0", @@ -17425,8 +17643,7 @@ "y18n": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", - "dev": true + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" }, "yallist": { "version": "3.1.1", @@ -17464,7 +17681,6 @@ "version": "15.0.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.0.2.tgz", "integrity": "sha512-GH/X/hYt+x5hOat4LMnCqMd8r5Cv78heOMIJn1hr7QPPBqfeC6p89Y78+WB9yGDvfpCvgasfmWLzNzEioOUD9Q==", - "dev": true, "requires": { "cliui": "^6.0.0", "decamelize": "^1.2.0", @@ -17482,14 +17698,12 @@ "ansi-regex": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" }, "find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, "requires": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -17498,14 +17712,12 @@ "is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" }, "locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, "requires": { "p-locate": "^4.1.0" } @@ -17514,7 +17726,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, "requires": { "p-limit": "^2.2.0" } @@ -17522,14 +17733,12 @@ "path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" }, "string-width": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -17540,7 +17749,6 @@ "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" } @@ -17551,7 +17759,6 @@ "version": "16.1.0", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-16.1.0.tgz", "integrity": "sha512-H/V41UNZQPkUMIT5h5hiwg4QKIY1RPvoBV4XcjUbRM8Bk2oKqqyZ0DIEbTFZB0XjbtSPG8SAa/0DxCQmiRgzKg==", - "dev": true, "requires": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" diff --git a/package.json b/package.json index 999698f93..5a4b89997 100644 --- a/package.json +++ b/package.json @@ -21,9 +21,7 @@ "effective:config": "circleci config process .circleci/config.yml | sed /^#/d" }, "peerDependencies": { - "cypress": "*", - "nyc": "*", - "istanbul-lib-coverage": "*" + "cypress": "*" }, "repository": { "type": "git", @@ -52,22 +50,25 @@ "private": false, "dependencies": { "@cypress/browserify-preprocessor": "2.1.4", - "bin-up": "1.3.2", "debug": "4.1.1", - "execa": "4.0.0" + "execa": "4.0.0", + "nyc": "15.0.0", + "istanbul-lib-coverage": "3.0.0" }, "devDependencies": { "@babel/core": "7.9.0", + "@istanbuljs/nyc-config-typescript": "1.0.1", "babel-plugin-istanbul": "6.0.0", "cypress": "4.2.0", "express": "4.17.1", - "istanbul-lib-coverage": "3.0.0", "lodash": "4.17.15", "markdown-link-check": "3.8.0", - "nyc": "15.0.0", "parcel-bundler": "1.12.4", "prettier": "1.19.1", "semantic-release": "17.0.4", - "start-server-and-test": "1.10.11" + "serve": "11.3.0", + "source-map-support": "0.5.16", + "start-server-and-test": "1.10.11", + "typescript": "3.8.3" } } diff --git a/task.js b/task.js index 04426d19e..b597c909a 100644 --- a/task.js +++ b/task.js @@ -1,10 +1,11 @@ +// @ts-check const istanbul = require('istanbul-lib-coverage') -const { join } = require('path') +const { join, resolve } = require('path') const { existsSync, mkdirSync, readFileSync, writeFileSync } = require('fs') const execa = require('execa') const fs = require('fs') const { fixSourcePathes } = require('./utils') -const binUp = require('bin-up') +const NYC = require('nyc') const debug = require('debug')('code-coverage') @@ -75,7 +76,7 @@ module.exports = { fixSourcePathes(coverage) const previous = existsSync(nycFilename) - ? JSON.parse(readFileSync(nycFilename)) + ? JSON.parse(readFileSync(nycFilename, 'utf8')) : istanbul.createCoverageMap({}) const coverageMap = istanbul.createCoverageMap(previous) coverageMap.merge(coverage) @@ -108,33 +109,27 @@ module.exports = { }) } - const reportDir = nycOptions['report-dir'] || './coverage' + const reportFolder = nycOptions['report-dir'] || './coverage' + const reportDir = resolve(reportFolder) const reporter = nycOptions['reporter'] || ['lcov', 'clover', 'json'] - const reporters = Array.isArray(reporter) - ? reporter.map(name => `--reporter=${name}`) - : `--reporter=${reporter}` - // should we generate report via NYC module API? - const foundNyc = binUp('nyc') - if (!foundNyc) { - console.error('Could not find tool "nyc", have you installed it?') - console.error('See https://github.com/cypress-io/code-coverage#install') - return null - } - - const args = [ - 'report', - '--report-dir', + // TODO we could look at how NYC is parsing its CLI arguments + // I am mostly worried about additional NYC options that are stored in + // package.json and .nycrc resource files. + // for now let's just camel case all options + const nycReportOptions = { reportDir, - '--temp-dir', - coverageFolder - ].concat(reporters) - debug( - 'saving coverage report using command: "%s %s"', - foundNyc, - args.join(' ') - ) + tempDir: coverageFolder, + reporter: [].concat(reporter) // make sure this is a list + } + debug('calling NYC reporter with options %o', nycReportOptions) debug('current working directory is %s', process.cwd()) - return execa(foundNyc, args, { stdio: 'inherit' }) + const nyc = new NYC(nycReportOptions) + + const returnReportFolder = () => { + debug('after reporting, returning the report folder name %s', reportDir) + return reportDir + } + return nyc.report().then(returnReportFolder) } } From 23daa9325cd7ea0d6834dea3bd4910e821f865b4 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sat, 4 Apr 2020 04:08:58 +0000 Subject: [PATCH 35/85] chore(deps): update dependency cypress to v4.3.0 --- package-lock.json | 223 +++++++++++++++++++++++++++++++--------------- package.json | 2 +- 2 files changed, 152 insertions(+), 73 deletions(-) diff --git a/package-lock.json b/package-lock.json index 660776199..d61d1593b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2530,6 +2530,46 @@ } } }, + "@cypress/request": { + "version": "2.88.5", + "resolved": "https://registry.npmjs.org/@cypress/request/-/request-2.88.5.tgz", + "integrity": "sha512-TzEC1XMi1hJkywWpRfD2clreTa/Z+lOrXDCxxBTBPEcY5azdPi56A6Xw+O4tWJnaJH3iIE7G5aDXZC6JgRZLcA==", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + } + } + }, "@cypress/xvfb": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz", @@ -3184,11 +3224,66 @@ "integrity": "sha512-KYyTT/T6ALPkIRd2Ge080X/BsXvy9O0hcWTtMWkPvwAwF99+vn6Dv4GzrFT/Nn1LePr+FFDbRXXlqmsy9lw2zA==", "dev": true }, + "@types/blob-util": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@types/blob-util/-/blob-util-1.3.3.tgz", + "integrity": "sha512-4ahcL/QDnpjWA2Qs16ZMQif7HjGP2cw3AGjHabybjw7Vm1EKu+cfQN1D78BaZbS1WJNa1opSMF5HNMztx7lR0w==", + "dev": true + }, + "@types/bluebird": { + "version": "3.5.29", + "resolved": "https://registry.npmjs.org/@types/bluebird/-/bluebird-3.5.29.tgz", + "integrity": "sha512-kmVtnxTuUuhCET669irqQmPAez4KFnFVKvpleVRyfC3g+SHD1hIkFZcWLim9BVcwUBLO59o8VZE4yGCmTif8Yw==", + "dev": true + }, + "@types/chai": { + "version": "4.2.7", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.2.7.tgz", + "integrity": "sha512-luq8meHGYwvky0O7u0eQZdA7B4Wd9owUCqvbw2m3XCrCU8mplYOujMBbvyS547AxJkC+pGnd0Cm15eNxEUNU8g==", + "dev": true + }, + "@types/chai-jquery": { + "version": "1.1.40", + "resolved": "https://registry.npmjs.org/@types/chai-jquery/-/chai-jquery-1.1.40.tgz", + "integrity": "sha512-mCNEZ3GKP7T7kftKeIs7QmfZZQM7hslGSpYzKbOlR2a2HCFf9ph4nlMRA9UnuOETeOQYJVhJQK7MwGqNZVyUtQ==", + "dev": true, + "requires": { + "@types/chai": "*", + "@types/jquery": "*" + } + }, "@types/color-name": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" }, + "@types/jquery": { + "version": "3.3.31", + "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.3.31.tgz", + "integrity": "sha512-Lz4BAJihoFw5nRzKvg4nawXPzutkv7wmfQ5121avptaSIXlDNJCUuxZxX/G+9EVidZGuO0UBlk+YjKbwRKJigg==", + "dev": true, + "requires": { + "@types/sizzle": "*" + } + }, + "@types/lodash": { + "version": "4.14.149", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.149.tgz", + "integrity": "sha512-ijGqzZt/b7BfzcK9vTrS6MFljQRPn5BFWOx8oE0GYxribu6uV+aA9zZuXI1zc/etK9E8nrgdoF2+LgUw7+9tJQ==", + "dev": true + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/mocha": { + "version": "5.2.7", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.7.tgz", + "integrity": "sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==", + "dev": true + }, "@types/node": { "version": "13.7.4", "resolved": "https://registry.npmjs.org/@types/node/-/node-13.7.4.tgz", @@ -3219,6 +3314,22 @@ "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", "dev": true }, + "@types/sinon": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-7.5.1.tgz", + "integrity": "sha512-EZQUP3hSZQyTQRfiLqelC9NMWd1kqLcmQE0dMiklxBkgi84T+cHOhnKpgk4NnOWpGX863yE6+IaGnOXUNFqDnQ==", + "dev": true + }, + "@types/sinon-chai": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/@types/sinon-chai/-/sinon-chai-3.2.3.tgz", + "integrity": "sha512-TOUFS6vqS0PVL1I8NGVSNcFaNJtFoyZPXZ5zur+qlhDfOmQECZZM4H4kKgca6O8L+QceX/ymODZASfUfn+y4yQ==", + "dev": true, + "requires": { + "@types/chai": "*", + "@types/sinon": "*" + } + }, "@types/sizzle": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.2.tgz", @@ -5361,13 +5472,24 @@ } }, "cypress": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-4.2.0.tgz", - "integrity": "sha512-8LdreL91S/QiTCLYLNbIjLL8Ht4fJmu/4HGLxUI20Tc7JSfqEfCmXELrRfuPT0kjosJwJJZacdSji9XSRkPKUw==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-4.3.0.tgz", + "integrity": "sha512-xO1oef4ns4koDAkQROGJIhKKhGHDOKfOmlirwP1QAk9w/no+YJpN7HZ6IUPiXwWw3C7xVLjScoI8Dad0z5uTTg==", "dev": true, "requires": { "@cypress/listr-verbose-renderer": "0.4.1", + "@cypress/request": "2.88.5", "@cypress/xvfb": "1.2.4", + "@types/blob-util": "1.3.3", + "@types/bluebird": "3.5.29", + "@types/chai": "4.2.7", + "@types/chai-jquery": "1.1.40", + "@types/jquery": "3.3.31", + "@types/lodash": "4.14.149", + "@types/minimatch": "3.0.3", + "@types/mocha": "5.2.7", + "@types/sinon": "7.5.1", + "@types/sinon-chai": "3.2.3", "@types/sizzle": "2.3.2", "arch": "2.1.1", "bluebird": "3.7.2", @@ -5381,7 +5503,7 @@ "eventemitter2": "4.1.2", "execa": "1.0.0", "executable": "4.1.1", - "extract-zip": "1.6.7", + "extract-zip": "1.7.0", "fs-extra": "8.1.0", "getos": "3.1.4", "is-ci": "2.0.0", @@ -5390,12 +5512,11 @@ "listr": "0.14.3", "lodash": "4.17.15", "log-symbols": "3.0.0", - "minimist": "1.2.2", + "minimist": "1.2.5", "moment": "2.24.0", "ospath": "1.2.2", "pretty-bytes": "5.3.0", "ramda": "0.26.1", - "request": "github:cypress-io/request#b5af0d1fa47eec97ba980cde90a13e69a2afcd16", "request-progress": "3.0.0", "supports-color": "7.1.0", "tmp": "0.1.0", @@ -5450,38 +5571,11 @@ } }, "minimist": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.2.tgz", - "integrity": "sha512-rIqbOrKb8GJmx/5bc2M0QchhUouMXSpd1RTclXsB41JdL+VtnojfaJR+h7F9k18/4kHUsBFgk80Uk+q569vjPA==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true }, - "request": { - "version": "github:cypress-io/request#b5af0d1fa47eec97ba980cde90a13e69a2afcd16", - "from": "github:cypress-io/request#b5af0d1fa47eec97ba980cde90a13e69a2afcd16", - "dev": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - } - }, "supports-color": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", @@ -5490,16 +5584,6 @@ "requires": { "has-flag": "^4.0.0" } - }, - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } } } }, @@ -6371,15 +6455,15 @@ } }, "extract-zip": { - "version": "1.6.7", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.7.tgz", - "integrity": "sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k=", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz", + "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", "dev": true, "requires": { - "concat-stream": "1.6.2", - "debug": "2.6.9", - "mkdirp": "0.5.1", - "yauzl": "2.4.1" + "concat-stream": "^1.6.2", + "debug": "^2.6.9", + "mkdirp": "^0.5.4", + "yauzl": "^2.10.0" }, "dependencies": { "debug": { @@ -6391,13 +6475,19 @@ "ms": "2.0.0" } }, - "yauzl": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz", - "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=", + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", "dev": true, "requires": { - "fd-slicer": "~1.0.1" + "minimist": "^1.2.5" } } } @@ -6498,9 +6588,9 @@ } }, "fd-slicer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", - "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", "dev": true, "requires": { "pend": "~1.2.0" @@ -17772,17 +17862,6 @@ "requires": { "buffer-crc32": "~0.2.3", "fd-slicer": "~1.1.0" - }, - "dependencies": { - "fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", - "dev": true, - "requires": { - "pend": "~1.2.0" - } - } } } } diff --git a/package.json b/package.json index 5a4b89997..6dab80c72 100644 --- a/package.json +++ b/package.json @@ -59,7 +59,7 @@ "@babel/core": "7.9.0", "@istanbuljs/nyc-config-typescript": "1.0.1", "babel-plugin-istanbul": "6.0.0", - "cypress": "4.2.0", + "cypress": "4.3.0", "express": "4.17.1", "lodash": "4.17.15", "markdown-link-check": "3.8.0", From 490f294a22c524b6b8383efdf14bc9bb7da88f89 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sat, 4 Apr 2020 05:06:11 +0000 Subject: [PATCH 36/85] fix(deps): update dependency nyc to v15.0.1 --- package-lock.json | 237 ++++++++-------------------------------------- package.json | 2 +- 2 files changed, 40 insertions(+), 199 deletions(-) diff --git a/package-lock.json b/package-lock.json index d61d1593b..810c571af 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6660,12 +6660,12 @@ } }, "find-cache-dir": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.2.0.tgz", - "integrity": "sha512-1JKclkYYsf1q9WIJKLZa9S9muC+08RIjzAlLrK4QcYLJMS6mk9yombQ9qf+zJ7H9LS800k0s44L4sDq9VYzqyg==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", "requires": { "commondir": "^1.0.1", - "make-dir": "^3.0.0", + "make-dir": "^3.0.2", "pkg-dir": "^4.1.0" } }, @@ -7662,9 +7662,9 @@ } }, "hasha": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.1.0.tgz", - "integrity": "sha512-OFPDWmzPN1l7atOV1TgBVmNtBxaIysToK6Ve9DK+vT6pYuklw/nPNT+HJbZi0KDcI6vWB+9tgvZ5YD7fA3CXcA==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.0.tgz", + "integrity": "sha512-2W+jKdQbAdSIrggA8Q35Br8qKadTrqCTC8+XZvBWepKDK6m9XkX6Iz1a2yh2KP01kzAR/dpuMeUnocoLYDcskw==", "requires": { "is-stream": "^2.0.0", "type-fest": "^0.8.0" @@ -7741,9 +7741,9 @@ } }, "html-escaper": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.0.tgz", - "integrity": "sha512-a4u9BeERWGu/S8JiWEAQcdrg9v4QArtP9keViQjGMdff20fBdd8waotXaNmODqBe6uZ3Nafi7K/ho4gCQHV3Ig==" + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" }, "html-tags": { "version": "1.2.0", @@ -8397,7 +8397,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.0.tgz", "integrity": "sha512-Nm4wVHdo7ZXSG30KjZ2Wl5SU/Bw7bDx1PdaiIFzEStdjs0H12mOTncn1GVYuqQSaZxpg87VGBRsVRPGD2cD1AQ==", - "dev": true, "requires": { "@babel/core": "^7.7.5", "@babel/parser": "^7.7.5", @@ -8412,7 +8411,6 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", - "dev": true, "requires": { "@babel/highlight": "^7.8.3" } @@ -8421,7 +8419,6 @@ "version": "7.8.4", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", - "dev": true, "requires": { "@babel/types": "^7.8.3", "jsesc": "^2.5.1", @@ -8433,7 +8430,6 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", - "dev": true, "requires": { "@babel/helper-get-function-arity": "^7.8.3", "@babel/template": "^7.8.3", @@ -8444,7 +8440,6 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", - "dev": true, "requires": { "@babel/types": "^7.8.3" } @@ -8453,7 +8448,6 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", - "dev": true, "requires": { "@babel/types": "^7.8.3" } @@ -8462,7 +8456,6 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, "requires": { "chalk": "^2.0.0", "esutils": "^2.0.2", @@ -8472,14 +8465,12 @@ "@babel/parser": { "version": "7.8.4", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", - "dev": true + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==" }, "@babel/template": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", - "dev": true, "requires": { "@babel/code-frame": "^7.8.3", "@babel/parser": "^7.8.3", @@ -8490,7 +8481,6 @@ "version": "7.8.4", "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", - "dev": true, "requires": { "@babel/code-frame": "^7.8.3", "@babel/generator": "^7.8.4", @@ -8507,7 +8497,6 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "dev": true, "requires": { "esutils": "^2.0.2", "lodash": "^4.17.13", @@ -8517,14 +8506,12 @@ "istanbul-lib-coverage": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", - "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", - "dev": true + "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==" }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" } } }, @@ -8552,11 +8539,6 @@ "which": "^2.0.1" } }, - "istanbul-lib-coverage": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", - "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==" - }, "p-map": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", @@ -8571,9 +8553,9 @@ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" }, "rimraf": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.0.tgz", - "integrity": "sha512-NDGVxTsjqfunkds7CqsOiEnxln4Bo7Nddl3XhS4pXg5OzwkLqJ971ZVAAnB+DDLnF76N+VnDEiBHaVV8I06SUg==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "requires": { "glob": "^7.1.3" } @@ -8592,9 +8574,9 @@ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" }, "uuid": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz", - "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==" + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" }, "which": { "version": "2.0.2", @@ -8621,11 +8603,6 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, - "istanbul-lib-coverage": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", - "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==" - }, "supports-color": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", @@ -8646,11 +8623,6 @@ "source-map": "^0.6.1" }, "dependencies": { - "istanbul-lib-coverage": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", - "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==" - }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -8659,9 +8631,9 @@ } }, "istanbul-reports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.0.tgz", - "integrity": "sha512-2osTcC8zcOSUkImzN2EWQta3Vdi4WjjKw99P2yWx5mLnigAM0Rd5uYFn1cf2i/Ois45GkNjaoTqc5CxgMSX80A==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", + "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", "requires": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" @@ -9284,9 +9256,9 @@ } }, "make-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.0.tgz", - "integrity": "sha512-grNJDhb8b1Jm1qeqW5R/O63wUo4UXo2v2HMic6YT9i/HBlF93S8jkMgH7yugvY9ABDShH4VZMn8I+U8+fCNegw==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.2.tgz", + "integrity": "sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w==", "requires": { "semver": "^6.0.0" }, @@ -13436,9 +13408,9 @@ "dev": true }, "nyc": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.0.0.tgz", - "integrity": "sha512-qcLBlNCKMDVuKb7d1fpxjPR8sHeMVX0CHarXAVzrVWoFrigCkYR8xcrjfXSPi5HXM7EU78L6ywO7w1c5rZNCNg==", + "version": "15.0.1", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.0.1.tgz", + "integrity": "sha512-n0MBXYBYRqa67IVt62qW1r/d9UH/Qtr7SF1w/nQLJ9KxvWF6b2xCHImRAixHN9tnMMYHC2P14uo6KddNGwMgGg==", "requires": { "@istanbuljs/load-nyc-config": "^1.0.0", "@istanbuljs/schema": "^0.1.2", @@ -13455,10 +13427,9 @@ "istanbul-lib-processinfo": "^2.0.2", "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.0", - "js-yaml": "^3.13.1", + "istanbul-reports": "^3.0.2", "make-dir": "^3.0.0", - "node-preload": "^0.2.0", + "node-preload": "^0.2.1", "p-map": "^3.0.0", "process-on-spawn": "^1.0.0", "resolve-from": "^5.0.0", @@ -13466,98 +13437,9 @@ "signal-exit": "^3.0.2", "spawn-wrap": "^2.0.0", "test-exclude": "^6.0.0", - "uuid": "^3.3.3", "yargs": "^15.0.2" }, "dependencies": { - "@babel/generator": { - "version": "7.7.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.7.7.tgz", - "integrity": "sha512-/AOIBpHh/JU1l0ZFS4kiRCBnLi6OTHzh0RPk3h9isBxkkqELtQNFi1Vr/tiG9p1yfoUdKVwISuXWQR+hwwM4VQ==", - "requires": { - "@babel/types": "^7.7.4", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "@babel/helper-function-name": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.7.4.tgz", - "integrity": "sha512-AnkGIdiBhEuiwdoMnKm7jfPfqItZhgRaZfMg1XX3bS25INOnLPjPG1Ppnajh8eqgt5kPJnfqrRHqFqmjKDZLzQ==", - "requires": { - "@babel/helper-get-function-arity": "^7.7.4", - "@babel/template": "^7.7.4", - "@babel/types": "^7.7.4" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.4.tgz", - "integrity": "sha512-QTGKEdCkjgzgfJ3bAyRwF4yyT3pg+vDgan8DSivq1eS0gwi+KGKE5x8kRcbeFTb/673mkO5SN1IZfmCfA5o+EA==", - "requires": { - "@babel/types": "^7.7.4" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.4.tgz", - "integrity": "sha512-guAg1SXFcVr04Guk9eq0S4/rWS++sbmyqosJzVs8+1fH5NI+ZcmkaSkc7dmtAFbHFva6yRJnjW3yAcGxjueDug==", - "requires": { - "@babel/types": "^7.7.4" - } - }, - "@babel/parser": { - "version": "7.7.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.7.tgz", - "integrity": "sha512-WtTZMZAZLbeymhkd/sEaPD8IQyGAhmuTuvTzLiCFM7iXiVdY0gc0IaI+cW0fh1BnSMbJSzXX6/fHllgHKwHhXw==" - }, - "@babel/template": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.7.4.tgz", - "integrity": "sha512-qUzihgVPguAzXCK7WXw8pqs6cEwi54s3E+HrejlkuWO6ivMKx9hZl3Y2fSXp9i5HgyWmj7RKP+ulaYnKM4yYxw==", - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.4", - "@babel/types": "^7.7.4" - } - }, - "@babel/traverse": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.7.4.tgz", - "integrity": "sha512-P1L58hQyupn8+ezVA2z5KBm4/Zr4lCC8dwKCMYzsa5jFMDMQAzaBNy9W5VjB+KAmBjb40U7a/H6ao+Xo+9saIw==", - "requires": { - "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.7.4", - "@babel/helper-function-name": "^7.7.4", - "@babel/helper-split-export-declaration": "^7.7.4", - "@babel/parser": "^7.7.4", - "@babel/types": "^7.7.4", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", - "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", - "requires": { - "@babel/highlight": "^7.0.0" - } - } - } - }, - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, "convert-source-map": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", @@ -13588,25 +13470,6 @@ "path-is-absolute": "^1.0.0" } }, - "istanbul-lib-coverage": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", - "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==" - }, - "istanbul-lib-instrument": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.0.tgz", - "integrity": "sha512-Nm4wVHdo7ZXSG30KjZ2Wl5SU/Bw7bDx1PdaiIFzEStdjs0H12mOTncn1GVYuqQSaZxpg87VGBRsVRPGD2cD1AQ==", - "requires": { - "@babel/core": "^7.7.5", - "@babel/parser": "^7.7.5", - "@babel/template": "^7.7.4", - "@babel/traverse": "^7.7.4", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - } - }, "locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", @@ -13637,32 +13500,12 @@ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" }, "rimraf": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.0.tgz", - "integrity": "sha512-NDGVxTsjqfunkds7CqsOiEnxln4Bo7Nddl3XhS4pXg5OzwkLqJ971ZVAAnB+DDLnF76N+VnDEiBHaVV8I06SUg==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "requires": { "glob": "^7.1.3" } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - }, - "test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "requires": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - } - }, - "uuid": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz", - "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==" } } }, @@ -16138,9 +15981,9 @@ }, "dependencies": { "rimraf": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.0.tgz", - "integrity": "sha512-NDGVxTsjqfunkds7CqsOiEnxln4Bo7Nddl3XhS4pXg5OzwkLqJ971ZVAAnB+DDLnF76N+VnDEiBHaVV8I06SUg==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "requires": { "glob": "^7.1.3" } @@ -16782,7 +16625,6 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, "requires": { "@istanbuljs/schema": "^0.1.2", "glob": "^7.1.4", @@ -16793,7 +16635,6 @@ "version": "7.1.6", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -17694,9 +17535,9 @@ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "write-file-atomic": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.1.tgz", - "integrity": "sha512-JPStrIyyVJ6oCSz/691fAjFtefZ6q+fP6tm+OS4Qw6o+TGQxNp1ziY2PgS+X/m0V8OWhZiO/m4xSj+Pr4RrZvw==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", "requires": { "imurmurhash": "^0.1.4", "is-typedarray": "^1.0.0", diff --git a/package.json b/package.json index 6dab80c72..e9caa4718 100644 --- a/package.json +++ b/package.json @@ -52,7 +52,7 @@ "@cypress/browserify-preprocessor": "2.1.4", "debug": "4.1.1", "execa": "4.0.0", - "nyc": "15.0.0", + "nyc": "15.0.1", "istanbul-lib-coverage": "3.0.0" }, "devDependencies": { From 9a556284041cb63eb4b696dec9d7a636ef5b3219 Mon Sep 17 00:00:00 2001 From: Gleb Bahmutov Date: Sat, 4 Apr 2020 15:37:46 -0400 Subject: [PATCH 37/85] fix: improve spec filtering (#171) * fix: better unit coverage filter * add to CI * fix path --- .circleci/config.yml | 28 ++++ examples/same-folder/.babelrc | 3 + examples/same-folder/README.md | 3 + examples/same-folder/cypress.json | 6 + .../same-folder/cypress/fixtures/example.json | 5 + examples/same-folder/index.html | 4 + examples/same-folder/main-instrumented.js | 146 ++++++++++++++++++ examples/same-folder/main.js | 3 + examples/same-folder/package.json | 8 + examples/same-folder/plugins.js | 4 + examples/same-folder/spec.js | 26 ++++ examples/same-folder/support.js | 1 + examples/same-folder/unit-utils.js | 5 + support.js | 8 +- 14 files changed, 246 insertions(+), 4 deletions(-) create mode 100644 examples/same-folder/.babelrc create mode 100644 examples/same-folder/README.md create mode 100644 examples/same-folder/cypress.json create mode 100644 examples/same-folder/cypress/fixtures/example.json create mode 100644 examples/same-folder/index.html create mode 100644 examples/same-folder/main-instrumented.js create mode 100644 examples/same-folder/main.js create mode 100644 examples/same-folder/package.json create mode 100644 examples/same-folder/plugins.js create mode 100644 examples/same-folder/spec.js create mode 100644 examples/same-folder/support.js create mode 100644 examples/same-folder/unit-utils.js diff --git a/.circleci/config.yml b/.circleci/config.yml index a097f80c5..b90df468f 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -168,6 +168,33 @@ workflows: command: npm run coverage:check working_directory: examples/ts-example + - cypress/run: + attach-workspace: true + name: example-same-folder + requires: + - cypress/install + # there are no jobs to follow this one + # so no need to save the workspace files (saves time) + no-workspace: true + command: npx cypress run --project examples/same-folder + # store screenshots and videos + store_artifacts: true + post-steps: + - run: cat examples/same-folder/.nyc_output/out.json + # store the created coverage report folder + # you can click on it in the CircleCI UI + # to see live static HTML site + - store_artifacts: + path: examples/same-folder/coverage + # make sure the examples captures 100% of code + - run: + command: npx nyc report --check-coverage true --lines 100 + working_directory: examples/same-folder + # how to fail if the specific file coverage is not found?! + - run: + command: npx nyc report --check-coverage true --lines 100 --include unit-utils.js + working_directory: examples/same-folder + - publish: filters: branches: @@ -181,3 +208,4 @@ workflows: - example-before-each-visit - example-before-all-visit - example-ts-example + - example-same-folder diff --git a/examples/same-folder/.babelrc b/examples/same-folder/.babelrc new file mode 100644 index 000000000..7a016cf8e --- /dev/null +++ b/examples/same-folder/.babelrc @@ -0,0 +1,3 @@ +{ + "plugins": ["istanbul"] +} diff --git a/examples/same-folder/README.md b/examples/same-folder/README.md new file mode 100644 index 000000000..7790124b3 --- /dev/null +++ b/examples/same-folder/README.md @@ -0,0 +1,3 @@ +# example: same-folder + +Check if test files are correctly filtered out diff --git a/examples/same-folder/cypress.json b/examples/same-folder/cypress.json new file mode 100644 index 000000000..d1d616ad9 --- /dev/null +++ b/examples/same-folder/cypress.json @@ -0,0 +1,6 @@ +{ + "integrationFolder": ".", + "testFiles": "**/spec.js", + "supportFile": "support.js", + "pluginsFile": "plugins.js" +} diff --git a/examples/same-folder/cypress/fixtures/example.json b/examples/same-folder/cypress/fixtures/example.json new file mode 100644 index 000000000..da18d9352 --- /dev/null +++ b/examples/same-folder/cypress/fixtures/example.json @@ -0,0 +1,5 @@ +{ + "name": "Using fixtures to represent data", + "email": "hello@cypress.io", + "body": "Fixtures are a great way to mock data for responses to routes" +} \ No newline at end of file diff --git a/examples/same-folder/index.html b/examples/same-folder/index.html new file mode 100644 index 000000000..b6691c8af --- /dev/null +++ b/examples/same-folder/index.html @@ -0,0 +1,4 @@ + + Page body + + diff --git a/examples/same-folder/main-instrumented.js b/examples/same-folder/main-instrumented.js new file mode 100644 index 000000000..0550e9bb7 --- /dev/null +++ b/examples/same-folder/main-instrumented.js @@ -0,0 +1,146 @@ +function cov_6k5v991cn() { + var path = 'main.js' + var hash = 'd384017ecd51a8d90283ba0dec593332209519de' + var global = new Function('return this')() + var gcv = '__coverage__' + var coverageData = { + path: 'main.js', + statementMap: { + '0': { + start: { + line: 1, + column: 0 + }, + end: { + line: 1, + column: 28 + } + }, + '1': { + start: { + line: 1, + column: 23 + }, + end: { + line: 1, + column: 28 + } + }, + '2': { + start: { + line: 3, + column: 0 + }, + end: { + line: 3, + column: 28 + } + }, + '3': { + start: { + line: 3, + column: 23 + }, + end: { + line: 3, + column: 28 + } + } + }, + fnMap: { + '0': { + name: '(anonymous_0)', + decl: { + start: { + line: 1, + column: 13 + }, + end: { + line: 1, + column: 14 + } + }, + loc: { + start: { + line: 1, + column: 23 + }, + end: { + line: 1, + column: 28 + } + }, + line: 1 + }, + '1': { + name: '(anonymous_1)', + decl: { + start: { + line: 3, + column: 13 + }, + end: { + line: 3, + column: 14 + } + }, + loc: { + start: { + line: 3, + column: 23 + }, + end: { + line: 3, + column: 28 + } + }, + line: 3 + } + }, + branchMap: {}, + s: { + '0': 0, + '1': 0, + '2': 0, + '3': 0 + }, + f: { + '0': 0, + '1': 0 + }, + b: {}, + _coverageSchema: '1a1c01bbd47fc00a2c39e90264f33305004495a9', + hash: 'd384017ecd51a8d90283ba0dec593332209519de' + } + var coverage = global[gcv] || (global[gcv] = {}) + + if (!coverage[path] || coverage[path].hash !== hash) { + coverage[path] = coverageData + } + + var actualCoverage = coverage[path] + + cov_6k5v991cn = function() { + return actualCoverage + } + + return actualCoverage +} + +cov_6k5v991cn() +cov_6k5v991cn().s[0]++ + +window.add = (a, b) => { + cov_6k5v991cn().f[0]++ + cov_6k5v991cn().s[1]++ + return a + b +} + +cov_6k5v991cn().s[2]++ + +window.sub = (a, b) => { + cov_6k5v991cn().f[1]++ + cov_6k5v991cn().s[3]++ + return a - b +} +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1haW4uanMiXSwibmFtZXMiOlsid2luZG93IiwiYWRkIiwiYSIsImIiLCJzdWIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBQSxNQUFNLENBQUNDLEdBQVAsR0FBYSxDQUFDQyxDQUFELEVBQUlDLENBQUosS0FBVTtBQUFBO0FBQUE7QUFBQSxTQUFBRCxDQUFDLEdBQUdDLENBQUo7QUFBSyxDQUE1Qjs7OztBQUVBSCxNQUFNLENBQUNJLEdBQVAsR0FBYSxDQUFDRixDQUFELEVBQUlDLENBQUosS0FBVTtBQUFBO0FBQUE7QUFBQSxTQUFBRCxDQUFDLEdBQUdDLENBQUo7QUFBSyxDQUE1QiIsInNvdXJjZXNDb250ZW50IjpbIndpbmRvdy5hZGQgPSAoYSwgYikgPT4gYSArIGJcblxud2luZG93LnN1YiA9IChhLCBiKSA9PiBhIC0gYlxuIl19 diff --git a/examples/same-folder/main.js b/examples/same-folder/main.js new file mode 100644 index 000000000..5dd69be2f --- /dev/null +++ b/examples/same-folder/main.js @@ -0,0 +1,3 @@ +window.add = (a, b) => a + b + +window.sub = (a, b) => a - b diff --git a/examples/same-folder/package.json b/examples/same-folder/package.json new file mode 100644 index 000000000..9f400043d --- /dev/null +++ b/examples/same-folder/package.json @@ -0,0 +1,8 @@ +{ + "name": "example-same-folder", + "description": "Check if test files are correctly filtered out", + "devDependencies": {}, + "scripts": { + "cy:open": "../../node_modules/.bin/cypress open" + } +} diff --git a/examples/same-folder/plugins.js b/examples/same-folder/plugins.js new file mode 100644 index 000000000..723dd9e11 --- /dev/null +++ b/examples/same-folder/plugins.js @@ -0,0 +1,4 @@ +module.exports = (on, config) => { + on('task', require('../../task')) + on('file:preprocessor', require('../../use-babelrc')) +} diff --git a/examples/same-folder/spec.js b/examples/same-folder/spec.js new file mode 100644 index 000000000..6c74ecb6e --- /dev/null +++ b/examples/same-folder/spec.js @@ -0,0 +1,26 @@ +/// + +import { reverse } from './unit-utils' + +describe('coverage information', () => { + before(() => { + cy.log('visiting index.html') + cy.visit('index.html') + }) + + it('calls add', () => { + cy.window() + .invoke('add', 2, 3) + .should('equal', 5) + }) + + it('calls sub', () => { + cy.window() + .invoke('sub', 2, 3) + .should('equal', -1) + }) + + it('reverses a string', () => { + expect(reverse('Hello')).to.equal('olleH') + }) +}) diff --git a/examples/same-folder/support.js b/examples/same-folder/support.js new file mode 100644 index 000000000..f63286498 --- /dev/null +++ b/examples/same-folder/support.js @@ -0,0 +1 @@ +import '../../support' diff --git a/examples/same-folder/unit-utils.js b/examples/same-folder/unit-utils.js new file mode 100644 index 000000000..c67737079 --- /dev/null +++ b/examples/same-folder/unit-utils.js @@ -0,0 +1,5 @@ +export const reverse = s => + s + .split('') + .reverse() + .join('') diff --git a/support.js b/support.js index b815b5109..9b719a4d1 100644 --- a/support.js +++ b/support.js @@ -134,8 +134,6 @@ if (Cypress.env('coverage') === false) { after(function mergeUnitTestCoverage() { // collect and merge frontend coverage - const specFolder = Cypress.config('integrationFolder') - const supportFolder = Cypress.config('supportFolder') // if spec bundle has been instrumented (using Cypress preprocessor) // then we will have unit test coverage @@ -145,10 +143,12 @@ if (Cypress.env('coverage') === false) { if (unitTestCoverage) { // remove coverage for the spec files themselves, // only keep "external" application source file coverage + const supportFile = Cypress.config('supportFile') + const testFilePattern = Cypress.config('testFiles') - // does this handle unset support file? const isTestFile = (fileCoverage, filename) => - filename.startsWith(specFolder) || filename.startsWith(supportFolder) + Cypress.minimatch(filename, testFilePattern) || filename === supportFile + const coverage = Cypress._.omitBy(window.__coverage__, isTestFile) sendCoverage(coverage, 'unit') } From ad976a5ec399bb7bef87c1793c16b9963dbdb7ce Mon Sep 17 00:00:00 2001 From: Gleb Bahmutov Date: Sat, 4 Apr 2020 17:16:48 -0400 Subject: [PATCH 38/85] fix: update spec filter depending on the mask (#173) --- support.js | 39 ++++++++++++++++++++++++++++----------- 1 file changed, 28 insertions(+), 11 deletions(-) diff --git a/support.js b/support.js index 9b719a4d1..5d6cda23c 100644 --- a/support.js +++ b/support.js @@ -6,8 +6,10 @@ */ const sendCoverage = (coverage, pathname = '/') => { logMessage(`Saving code coverage for **${pathname}**`) + + const appCoverageOnly = filterSpecsFromCoverage(coverage) // stringify coverage object for speed - cy.task('combineCoverage', JSON.stringify(coverage), { + cy.task('combineCoverage', JSON.stringify(appCoverageOnly), { log: false }) } @@ -21,6 +23,30 @@ const logMessage = s => { cy.log(`${s} \`[@cypress/code-coverage]\``) } +const filterSpecsFromCoverage = totalCoverage => { + // remove coverage for the spec files themselves, + // only keep "external" application source file coverage + const integrationFolder = Cypress.config('integrationFolder') + const supportFile = Cypress.config('supportFile') + const testFilePattern = Cypress.config('testFiles') + const isUsingDefaultTestPattern = testFilePattern === '**/*.*' + + const isInIntegrationFolder = filename => + filename.startsWith(integrationFolder) + const isTestFile = filename => Cypress.minimatch(filename, testFilePattern) + const isSupportFile = filename => filename === supportFile + + const isA = (fileCoverge, filename) => + isInIntegrationFolder(filename) || isSupportFile(filename) + const isB = (fileCoverge, filename) => + isTestFile(filename) || isSupportFile(filename) + + const isTestFileFilter = isUsingDefaultTestPattern ? isA : isB + + const coverage = Cypress._.omitBy(totalCoverage, isTestFileFilter) + return coverage +} + // to disable code coverage commands and save time // pass environment variable coverage=false // cypress run --env coverage=false @@ -141,16 +167,7 @@ if (Cypress.env('coverage') === false) { // the coverage information only once after all tests have finished const unitTestCoverage = window.__coverage__ if (unitTestCoverage) { - // remove coverage for the spec files themselves, - // only keep "external" application source file coverage - const supportFile = Cypress.config('supportFile') - const testFilePattern = Cypress.config('testFiles') - - const isTestFile = (fileCoverage, filename) => - Cypress.minimatch(filename, testFilePattern) || filename === supportFile - - const coverage = Cypress._.omitBy(window.__coverage__, isTestFile) - sendCoverage(coverage, 'unit') + sendCoverage(unitTestCoverage, 'unit') } }) From bbb215fff841d0c45af7c002a1ceea3189ef1094 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sat, 4 Apr 2020 22:04:39 +0000 Subject: [PATCH 39/85] fix(deps): update dependency @cypress/browserify-preprocessor to v2.2.1 --- package-lock.json | 604 +++++++++++++++++++++++++--------------------- package.json | 2 +- 2 files changed, 333 insertions(+), 273 deletions(-) diff --git a/package-lock.json b/package-lock.json index 810c571af..85f4d6a29 100644 --- a/package-lock.json +++ b/package-lock.json @@ -263,15 +263,15 @@ } }, "@babel/helper-create-class-features-plugin": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.8.3.tgz", - "integrity": "sha512-qmp4pD7zeTxsv0JNecSBsEmG1ei2MqwJq4YQcK3ZWm/0t07QstWfvuV/vm3Qt5xNMFETn2SZqpMx2MQzbtq+KA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.8.6.tgz", + "integrity": "sha512-klTBDdsr+VFFqaDHm5rR69OpEQtO2Qv8ECxHS1mNhJJvaHArR6a1xTf5K/eZW7eZpJbhCx3NW1Yt/sKsLXLblg==", "requires": { "@babel/helper-function-name": "^7.8.3", "@babel/helper-member-expression-to-functions": "^7.8.3", "@babel/helper-optimise-call-expression": "^7.8.3", "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-replace-supers": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.6", "@babel/helper-split-export-declaration": "^7.8.3" }, "dependencies": { @@ -323,36 +323,36 @@ } }, "@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", + "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", "requires": { + "@babel/helper-validator-identifier": "^7.9.0", "chalk": "^2.0.0", - "esutils": "^2.0.2", "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==" + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz", + "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==" }, "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", + "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", "requires": { "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/parser": "^7.8.6", + "@babel/types": "^7.8.6" } }, "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz", + "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==", "requires": { - "esutils": "^2.0.2", + "@babel/helper-validator-identifier": "^7.9.0", "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } @@ -360,14 +360,23 @@ } }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.3.tgz", - "integrity": "sha512-Gcsm1OHCUr9o9TcJln57xhWHtdXbA2pgQ58S0Lxlks0WMGNXuki4+GLfX0p+L2ZkINUGZvfkz8rzoqJQSthI+Q==", + "version": "7.8.8", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.8.tgz", + "integrity": "sha512-LYVPdwkrQEiX9+1R29Ld/wTrmQu1SSKYnuOk3g0CkcZMA1p0gsNxJFj/3gBdaJ7Cg0Fnek5z0DsMULePP7Lrqg==", "requires": { + "@babel/helper-annotate-as-pure": "^7.8.3", "@babel/helper-regex": "^7.8.3", - "regexpu-core": "^4.6.0" + "regexpu-core": "^4.7.0" }, "dependencies": { + "@babel/helper-annotate-as-pure": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz", + "integrity": "sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw==", + "requires": { + "@babel/types": "^7.8.3" + } + }, "@babel/helper-regex": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.8.3.tgz", @@ -375,6 +384,16 @@ "requires": { "lodash": "^4.17.13" } + }, + "@babel/types": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz", + "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==", + "requires": { + "@babel/helper-validator-identifier": "^7.9.0", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } } } }, @@ -415,36 +434,36 @@ } }, "@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", + "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", "requires": { + "@babel/helper-validator-identifier": "^7.9.0", "chalk": "^2.0.0", - "esutils": "^2.0.2", "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==" + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz", + "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==" }, "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", + "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", "requires": { "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/parser": "^7.8.6", + "@babel/types": "^7.8.6" } }, "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz", + "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==", "requires": { - "esutils": "^2.0.2", + "@babel/helper-validator-identifier": "^7.9.0", "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } @@ -562,14 +581,14 @@ } }, "@babel/helper-replace-supers": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.3.tgz", - "integrity": "sha512-xOUssL6ho41U81etpLoT2RTdvdus4VfHamCuAm4AHxGr+0it5fnwoVdwUJ7GFEqCsQYzJUhcbsN9wB9apcYKFA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.6.tgz", + "integrity": "sha512-PeMArdA4Sv/Wf4zXwBKPqVj7n9UF/xg6slNRtZW84FM7JpE1CbG8B612FyM4cxrf4fMAMGO0kR7voy1ForHHFA==", "requires": { "@babel/helper-member-expression-to-functions": "^7.8.3", "@babel/helper-optimise-call-expression": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/traverse": "^7.8.6", + "@babel/types": "^7.8.6" }, "dependencies": { "@babel/code-frame": { @@ -581,11 +600,11 @@ } }, "@babel/generator": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", - "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.4.tgz", + "integrity": "sha512-rjP8ahaDy/ouhrvCoU1E5mqaitWrxwuNGU+dy1EpaoK48jZay4MdkskKGIMHLZNewg8sAsqpGSREJwP0zH3YQA==", "requires": { - "@babel/types": "^7.8.3", + "@babel/types": "^7.9.0", "jsesc": "^2.5.1", "lodash": "^4.17.13", "source-map": "^0.5.0" @@ -626,52 +645,52 @@ } }, "@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", + "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", "requires": { + "@babel/helper-validator-identifier": "^7.9.0", "chalk": "^2.0.0", - "esutils": "^2.0.2", "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==" + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz", + "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==" }, "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", + "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", "requires": { "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/parser": "^7.8.6", + "@babel/types": "^7.8.6" } }, "@babel/traverse": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", - "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.0.tgz", + "integrity": "sha512-jAZQj0+kn4WTHO5dUZkZKhbFrqZE7K5LAQ5JysMnmvGij+wOdr+8lWqPeW0BcF4wFwrEXXtdGO7wcV6YPJcf3w==", "requires": { "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", + "@babel/generator": "^7.9.0", "@babel/helper-function-name": "^7.8.3", "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.4", - "@babel/types": "^7.8.3", + "@babel/parser": "^7.9.0", + "@babel/types": "^7.9.0", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.13" } }, "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz", + "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==", "requires": { - "esutils": "^2.0.2", + "@babel/helper-validator-identifier": "^7.9.0", "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } @@ -712,13 +731,13 @@ } }, "@babel/helpers": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.8.4.tgz", - "integrity": "sha512-VPbe7wcQ4chu4TDQjimHv/5tj73qz88o12EPkO2ValS2QiQS/1F2SsjyIGNnAD0vF/nZS6Cf9i+vW6HIlnaR8w==", + "version": "7.9.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.9.2.tgz", + "integrity": "sha512-JwLvzlXVPjO8eU9c/wF9/zOIN7X6h8DYf7mG4CiFRZRvZNKEF5dQ3H3V+ASkHoIB3mWhatgl5ONhyqHRI6MppA==", "requires": { "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.4", - "@babel/types": "^7.8.3" + "@babel/traverse": "^7.9.0", + "@babel/types": "^7.9.0" }, "dependencies": { "@babel/code-frame": { @@ -730,11 +749,11 @@ } }, "@babel/generator": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", - "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.4.tgz", + "integrity": "sha512-rjP8ahaDy/ouhrvCoU1E5mqaitWrxwuNGU+dy1EpaoK48jZay4MdkskKGIMHLZNewg8sAsqpGSREJwP0zH3YQA==", "requires": { - "@babel/types": "^7.8.3", + "@babel/types": "^7.9.0", "jsesc": "^2.5.1", "lodash": "^4.17.13", "source-map": "^0.5.0" @@ -767,52 +786,52 @@ } }, "@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", + "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", "requires": { + "@babel/helper-validator-identifier": "^7.9.0", "chalk": "^2.0.0", - "esutils": "^2.0.2", "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==" + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz", + "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==" }, "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", + "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", "requires": { "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/parser": "^7.8.6", + "@babel/types": "^7.8.6" } }, "@babel/traverse": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", - "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.0.tgz", + "integrity": "sha512-jAZQj0+kn4WTHO5dUZkZKhbFrqZE7K5LAQ5JysMnmvGij+wOdr+8lWqPeW0BcF4wFwrEXXtdGO7wcV6YPJcf3w==", "requires": { "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", + "@babel/generator": "^7.9.0", "@babel/helper-function-name": "^7.8.3", "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.4", - "@babel/types": "^7.8.3", + "@babel/parser": "^7.9.0", + "@babel/types": "^7.9.0", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.13" } }, "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz", + "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==", "requires": { - "esutils": "^2.0.2", + "@babel/helper-validator-identifier": "^7.9.0", "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } @@ -892,11 +911,11 @@ } }, "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.3.tgz", - "integrity": "sha512-1/1/rEZv2XGweRwwSkLpY+s60za9OZ1hJs4YDqFHCw0kYWYwL5IFljVY1MYBL+weT1l9pokDO2uhSTLVxzoHkQ==", + "version": "7.8.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.8.tgz", + "integrity": "sha512-EVhjVsMpbhLw9ZfHWSx2iy13Q8Z/eg8e8ccVWt23sWQK5l1UdkoLJPN5w69UA4uITGBnEZD2JOe4QOHycYKv8A==", "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.8.3", + "@babel/helper-create-regexp-features-plugin": "^7.8.8", "@babel/helper-plugin-utils": "^7.8.3" }, "dependencies": { @@ -992,11 +1011,11 @@ } }, "@babel/generator": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", - "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.4.tgz", + "integrity": "sha512-rjP8ahaDy/ouhrvCoU1E5mqaitWrxwuNGU+dy1EpaoK48jZay4MdkskKGIMHLZNewg8sAsqpGSREJwP0zH3YQA==", "requires": { - "@babel/types": "^7.8.3", + "@babel/types": "^7.9.0", "jsesc": "^2.5.1", "lodash": "^4.17.13", "source-map": "^0.5.0" @@ -1073,52 +1092,52 @@ } }, "@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", + "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", "requires": { + "@babel/helper-validator-identifier": "^7.9.0", "chalk": "^2.0.0", - "esutils": "^2.0.2", "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==" + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz", + "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==" }, "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", + "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", "requires": { "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/parser": "^7.8.6", + "@babel/types": "^7.8.6" } }, "@babel/traverse": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", - "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.0.tgz", + "integrity": "sha512-jAZQj0+kn4WTHO5dUZkZKhbFrqZE7K5LAQ5JysMnmvGij+wOdr+8lWqPeW0BcF4wFwrEXXtdGO7wcV6YPJcf3w==", "requires": { "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", + "@babel/generator": "^7.9.0", "@babel/helper-function-name": "^7.8.3", "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.4", - "@babel/types": "^7.8.3", + "@babel/parser": "^7.9.0", + "@babel/types": "^7.9.0", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.13" } }, "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz", + "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==", "requires": { - "esutils": "^2.0.2", + "@babel/helper-validator-identifier": "^7.9.0", "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } @@ -1150,16 +1169,16 @@ } }, "@babel/plugin-transform-classes": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.8.3.tgz", - "integrity": "sha512-SjT0cwFJ+7Rbr1vQsvphAHwUHvSUPmMjMU/0P59G8U2HLFqSa082JO7zkbDNWs9kH/IUqpHI6xWNesGf8haF1w==", + "version": "7.9.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.9.2.tgz", + "integrity": "sha512-TC2p3bPzsfvSsqBZo0kJnuelnoK9O3welkUpqSqBQuBF6R5MN2rysopri8kNvtlGIb2jmUO7i15IooAZJjZuMQ==", "requires": { "@babel/helper-annotate-as-pure": "^7.8.3", "@babel/helper-define-map": "^7.8.3", "@babel/helper-function-name": "^7.8.3", "@babel/helper-optimise-call-expression": "^7.8.3", "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-replace-supers": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.6", "@babel/helper-split-export-declaration": "^7.8.3", "globals": "^11.1.0" }, @@ -1220,36 +1239,36 @@ } }, "@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", + "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", "requires": { + "@babel/helper-validator-identifier": "^7.9.0", "chalk": "^2.0.0", - "esutils": "^2.0.2", "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==" + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz", + "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==" }, "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", + "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", "requires": { "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/parser": "^7.8.6", + "@babel/types": "^7.8.6" } }, "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz", + "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==", "requires": { - "esutils": "^2.0.2", + "@babel/helper-validator-identifier": "^7.9.0", "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } @@ -1265,9 +1284,9 @@ } }, "@babel/plugin-transform-destructuring": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.8.3.tgz", - "integrity": "sha512-H4X646nCkiEcHZUZaRkhE2XVsoz0J/1x3VVujnn96pSoGCtKPA99ZZA+va+gK+92Zycd6OBKCD8tDb/731bhgQ==", + "version": "7.8.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.8.8.tgz", + "integrity": "sha512-eRJu4Vs2rmttFCdhPUM3bV0Yo/xPSdPw6ML9KHs/bjB4bLA5HXlbvYXPOD5yASodGod+krjYx21xm1QmL8dCJQ==", "requires": { "@babel/helper-plugin-utils": "^7.8.3" }, @@ -1363,11 +1382,11 @@ } }, "@babel/plugin-transform-modules-amd": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.8.3.tgz", - "integrity": "sha512-MadJiU3rLKclzT5kBH4yxdry96odTUwuqrZM+GllFI/VhxfPz+k9MshJM+MwhfkCdxxclSbSBbUGciBngR+kEQ==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.9.0.tgz", + "integrity": "sha512-vZgDDF003B14O8zJy0XXLnPH4sg+9X5hFBBGN1V+B2rgrB+J2xIypSN6Rk9imB2hSTHQi5OHLrFWsZab1GMk+Q==", "requires": { - "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-module-transforms": "^7.9.0", "@babel/helper-plugin-utils": "^7.8.3", "babel-plugin-dynamic-import-node": "^2.3.0" }, @@ -1389,15 +1408,16 @@ } }, "@babel/helper-module-transforms": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.8.3.tgz", - "integrity": "sha512-C7NG6B7vfBa/pwCOshpMbOYUmrYQDfCpVL/JCRu0ek8B5p8kue1+BCXpg2vOYs7w5ACB9GTOBYQ5U6NwrMg+3Q==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz", + "integrity": "sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA==", "requires": { "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.6", "@babel/helper-simple-access": "^7.8.3", "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3", + "@babel/template": "^7.8.6", + "@babel/types": "^7.9.0", "lodash": "^4.17.13" } }, @@ -1424,36 +1444,36 @@ } }, "@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", + "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", "requires": { + "@babel/helper-validator-identifier": "^7.9.0", "chalk": "^2.0.0", - "esutils": "^2.0.2", "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==" + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz", + "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==" }, "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", + "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", "requires": { "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/parser": "^7.8.6", + "@babel/types": "^7.8.6" } }, "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz", + "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==", "requires": { - "esutils": "^2.0.2", + "@babel/helper-validator-identifier": "^7.9.0", "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } @@ -1472,12 +1492,12 @@ } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.8.3.tgz", - "integrity": "sha512-8cESMCJjmArMYqa9AO5YuMEkE4ds28tMpZcGZB/jl3n0ZzlsxOAi3mC+SKypTfT8gjMupCnd3YiXCkMjj2jfOg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.9.0.tgz", + "integrity": "sha512-FsiAv/nao/ud2ZWy4wFacoLOm5uxl0ExSQ7ErvP7jpoihLR6Cq90ilOFyX9UXct3rbtKsAiZ9kFt5XGfPe/5SQ==", "requires": { "@babel/helper-hoist-variables": "^7.8.3", - "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-module-transforms": "^7.9.0", "@babel/helper-plugin-utils": "^7.8.3", "babel-plugin-dynamic-import-node": "^2.3.0" }, @@ -1507,15 +1527,16 @@ } }, "@babel/helper-module-transforms": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.8.3.tgz", - "integrity": "sha512-C7NG6B7vfBa/pwCOshpMbOYUmrYQDfCpVL/JCRu0ek8B5p8kue1+BCXpg2vOYs7w5ACB9GTOBYQ5U6NwrMg+3Q==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz", + "integrity": "sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA==", "requires": { "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.6", "@babel/helper-simple-access": "^7.8.3", "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3", + "@babel/template": "^7.8.6", + "@babel/types": "^7.9.0", "lodash": "^4.17.13" } }, @@ -1542,36 +1563,36 @@ } }, "@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", + "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", "requires": { + "@babel/helper-validator-identifier": "^7.9.0", "chalk": "^2.0.0", - "esutils": "^2.0.2", "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==" + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz", + "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==" }, "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", + "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", "requires": { "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/parser": "^7.8.6", + "@babel/types": "^7.8.6" } }, "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz", + "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==", "requires": { - "esutils": "^2.0.2", + "@babel/helper-validator-identifier": "^7.9.0", "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } @@ -1678,9 +1699,9 @@ } }, "@babel/plugin-transform-react-jsx-self": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.8.3.tgz", - "integrity": "sha512-01OT7s5oa0XTLf2I8XGsL8+KqV9lx3EZV+jxn/L2LQ97CGKila2YMroTkCEIE0HV/FF7CMSRsIAybopdN9NTdg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.9.0.tgz", + "integrity": "sha512-K2ObbWPKT7KUTAoyjCsFilOkEgMvFG+y0FqOl6Lezd0/13kMkkjHskVsZvblRPj1PHA44PrToaZANrryppzTvQ==", "requires": { "@babel/helper-plugin-utils": "^7.8.3", "@babel/plugin-syntax-jsx": "^7.8.3" @@ -1702,9 +1723,9 @@ } }, "@babel/plugin-transform-react-jsx-source": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.8.3.tgz", - "integrity": "sha512-PLMgdMGuVDtRS/SzjNEQYUT8f4z1xb2BAT54vM1X5efkVuYBf5WyGUMbpmARcfq3NaglIwz08UVQK4HHHbC6ag==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.9.0.tgz", + "integrity": "sha512-K6m3LlSnTSfRkM6FcRk8saNEeaeyG5k7AVkBU2bZK3+1zdkSED3qNdsWrUgQBeTVD2Tp3VMmerxVO2yM5iITmw==", "requires": { "@babel/helper-plugin-utils": "^7.8.3", "@babel/plugin-syntax-jsx": "^7.8.3" @@ -2188,9 +2209,9 @@ } }, "@cypress/browserify-preprocessor": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@cypress/browserify-preprocessor/-/browserify-preprocessor-2.1.4.tgz", - "integrity": "sha512-149D1E2UzY7kCjnXDofx61MeJ6HQczj5XCAPjRUPpYr/A7T/O4C0IlTLZYV2xxnDD68d71NfT/cT8s0sfi27RQ==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@cypress/browserify-preprocessor/-/browserify-preprocessor-2.2.1.tgz", + "integrity": "sha512-97vJ1ulp6sIBJ00FJHAP8JDrJmBXV1UudNNs5r2LmXl5ESiVrPc/5wv5zfJuW2toOSOHa9IbJpwJj/4RbvRYXg==", "requires": { "@babel/core": "7.4.5", "@babel/plugin-proposal-class-properties": "7.3.0", @@ -2208,6 +2229,7 @@ "debug": "4.1.1", "fs-extra": "7.0.1", "lodash.clonedeep": "4.5.0", + "through2": "^2.0.0", "watchify": "3.11.1" }, "dependencies": { @@ -2251,21 +2273,21 @@ } }, "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", + "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", "requires": { "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/parser": "^7.8.6", + "@babel/types": "^7.8.6" } }, "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz", + "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==", "requires": { - "esutils": "^2.0.2", + "@babel/helper-validator-identifier": "^7.9.0", "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } @@ -2281,11 +2303,11 @@ }, "dependencies": { "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz", + "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==", "requires": { - "esutils": "^2.0.2", + "@babel/helper-validator-identifier": "^7.9.0", "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } @@ -2301,11 +2323,11 @@ }, "dependencies": { "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz", + "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==", "requires": { - "esutils": "^2.0.2", + "@babel/helper-validator-identifier": "^7.9.0", "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } @@ -2313,19 +2335,19 @@ } }, "@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", + "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", "requires": { + "@babel/helper-validator-identifier": "^7.9.0", "chalk": "^2.0.0", - "esutils": "^2.0.2", "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", - "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==" + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz", + "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==" }, "@babel/plugin-proposal-object-rest-spread": { "version": "7.3.2", @@ -2392,9 +2414,9 @@ }, "dependencies": { "@babel/plugin-proposal-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-8qvuPwU/xxUCt78HocNlv0mXXo0wdh9VT1R04WU8HGOfaOob26pF+9P5/lYjN/q7DHOX1bvX60hnhOvuQUJdbA==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.0.tgz", + "integrity": "sha512-UgqBv6bjq4fDb8uku9f+wcm1J7YxJ5nT7WO/jBr0cl0PLKb7t1O6RNR1kZbjgx2LQtsDI9hwoQVmn0yhXeQyow==", "requires": { "@babel/helper-plugin-utils": "^7.8.3", "@babel/plugin-syntax-object-rest-spread": "^7.8.0" @@ -2426,16 +2448,16 @@ } }, "@babel/traverse": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", - "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.0.tgz", + "integrity": "sha512-jAZQj0+kn4WTHO5dUZkZKhbFrqZE7K5LAQ5JysMnmvGij+wOdr+8lWqPeW0BcF4wFwrEXXtdGO7wcV6YPJcf3w==", "requires": { "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", + "@babel/generator": "^7.9.0", "@babel/helper-function-name": "^7.8.3", "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.4", - "@babel/types": "^7.8.3", + "@babel/parser": "^7.9.0", + "@babel/types": "^7.9.0", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.13" @@ -2450,22 +2472,22 @@ } }, "@babel/generator": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", - "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.4.tgz", + "integrity": "sha512-rjP8ahaDy/ouhrvCoU1E5mqaitWrxwuNGU+dy1EpaoK48jZay4MdkskKGIMHLZNewg8sAsqpGSREJwP0zH3YQA==", "requires": { - "@babel/types": "^7.8.3", + "@babel/types": "^7.9.0", "jsesc": "^2.5.1", "lodash": "^4.17.13", "source-map": "^0.5.0" } }, "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz", + "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==", "requires": { - "esutils": "^2.0.2", + "@babel/helper-validator-identifier": "^7.9.0", "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } @@ -2488,12 +2510,17 @@ } }, "json5": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz", - "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.2.tgz", + "integrity": "sha512-MoUOQ4WdiN3yxhm7NEVJSJrieAo5hNSLQ5sj05OTRHPL9HOBy8u4Bu88jsC1jvqAdN+E1bJmsUcZH+1HQxliqQ==", "requires": { - "minimist": "^1.2.0" + "minimist": "^1.2.5" } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" } } }, @@ -3402,9 +3429,9 @@ }, "dependencies": { "acorn": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.0.tgz", - "integrity": "sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ==" + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz", + "integrity": "sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==" }, "acorn-walk": { "version": "7.1.1", @@ -4129,9 +4156,9 @@ }, "dependencies": { "buffer": { - "version": "5.4.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.4.3.tgz", - "integrity": "sha512-zvj65TkFeIt3i6aj5bIvJDzjjQQGs4o/sNoezg1F1kYap9Nu2jcUdpwzRSJTHMMzG0H7bZkn4rNQpImhuxWX2A==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.5.0.tgz", + "integrity": "sha512-9FTEDjLjwoAkEwyMGDjYJQN2gfRgOKBKRfiglhvibGbpeeU/pQn1bJxQqm32OD/AIeEuHxU9roxXxg34Byp/Ww==", "requires": { "base64-js": "^1.0.2", "ieee754": "^1.1.4" @@ -15056,16 +15083,49 @@ } }, "regexpu-core": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.6.0.tgz", - "integrity": "sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg==", + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz", + "integrity": "sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ==", "requires": { "regenerate": "^1.4.0", - "regenerate-unicode-properties": "^8.1.0", - "regjsgen": "^0.5.0", - "regjsparser": "^0.6.0", + "regenerate-unicode-properties": "^8.2.0", + "regjsgen": "^0.5.1", + "regjsparser": "^0.6.4", "unicode-match-property-ecmascript": "^1.0.4", - "unicode-match-property-value-ecmascript": "^1.1.0" + "unicode-match-property-value-ecmascript": "^1.2.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" + }, + "regenerate-unicode-properties": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", + "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", + "requires": { + "regenerate": "^1.4.0" + } + }, + "regjsgen": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz", + "integrity": "sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==" + }, + "regjsparser": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz", + "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==", + "requires": { + "jsesc": "~0.5.0" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", + "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==" + } } }, "registry-auth-token": { diff --git a/package.json b/package.json index e9caa4718..b5dd71797 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,7 @@ }, "private": false, "dependencies": { - "@cypress/browserify-preprocessor": "2.1.4", + "@cypress/browserify-preprocessor": "2.2.1", "debug": "4.1.1", "execa": "4.0.0", "nyc": "15.0.1", From 50acb2367a2160588f0dfc7340057ac0250239a9 Mon Sep 17 00:00:00 2001 From: Gleb Bahmutov Date: Sun, 5 Apr 2020 11:42:24 -0400 Subject: [PATCH 40/85] add coverage check after same-folder example --- .circleci/config.yml | 4 ++++ scripts/check-coverage.js | 47 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 scripts/check-coverage.js diff --git a/.circleci/config.yml b/.circleci/config.yml index b90df468f..d9cd881b1 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -194,6 +194,10 @@ workflows: - run: command: npx nyc report --check-coverage true --lines 100 --include unit-utils.js working_directory: examples/same-folder + - run: + command: node ../../scripts/check-coverage main.js + - run: + command: node ../../scripts/check-coverage unit-utils.js - publish: filters: diff --git a/scripts/check-coverage.js b/scripts/check-coverage.js new file mode 100644 index 000000000..6fa80eb7e --- /dev/null +++ b/scripts/check-coverage.js @@ -0,0 +1,47 @@ +const { join } = require('path') + +const filename = process.argv[2] +if (!filename) { + console.error('Usage: node %s ', __filename) + process.exit(1) +} +const coverageFilename = join(process.cwd(), '.nyc_output', 'out.json') +const coverage = require(coverageFilename) +const fileCoverageKey = Object.keys(coverage).find(name => { + const fileCover = coverage[name] + if (fileCover.path.endsWith(filename)) { + return fileCover + } +}) + +if (!fileCoverageKey) { + console.error( + 'Could not find file %s in coverage in file %s', + filename, + coverageFilename + ) + process.exit(1) +} + +const fileCoverage = coverage[fileCoverageKey] +const statementCounters = fileCoverage.s +const isThereUncoveredStatement = Object.keys(statementCounters).some( + (k, key) => { + return statementCounters[key] === 0 + } +) +if (isThereUncoveredStatement) { + console.error( + 'file %s has statements that were not covered by tests', + fileCoverage.path + ) + console.log('statement counters %o', statementCounters) + + process.exit(1) +} + +console.log( + 'All statements in file %s (found for %s) were covered', + fileCoverage.path, + filename +) From 251dc7595650cda8c8079c7005509addedaad05d Mon Sep 17 00:00:00 2001 From: Gleb Bahmutov Date: Sun, 5 Apr 2020 11:46:20 -0400 Subject: [PATCH 41/85] move folder --- .circleci/config.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index d9cd881b1..ec0bade2b 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -196,8 +196,10 @@ workflows: working_directory: examples/same-folder - run: command: node ../../scripts/check-coverage main.js + working_directory: examples/same-folder - run: command: node ../../scripts/check-coverage unit-utils.js + working_directory: examples/same-folder - publish: filters: From 055f924a7f17a1801168fb5fed266000cc4e27f2 Mon Sep 17 00:00:00 2001 From: Gleb Bahmutov Date: Sun, 5 Apr 2020 16:07:26 -0400 Subject: [PATCH 42/85] check if extra files are covered --- .circleci/config.yml | 9 ++++---- scripts/only-covered.js | 49 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+), 4 deletions(-) create mode 100644 scripts/only-covered.js diff --git a/.circleci/config.yml b/.circleci/config.yml index ec0bade2b..a43f4c7c5 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -195,10 +195,11 @@ workflows: command: npx nyc report --check-coverage true --lines 100 --include unit-utils.js working_directory: examples/same-folder - run: - command: node ../../scripts/check-coverage main.js - working_directory: examples/same-folder - - run: - command: node ../../scripts/check-coverage unit-utils.js + name: Check code coverage 📈 + command: | + node ../../scripts/check-coverage main.js + node ../../scripts/check-coverage unit-utils.js + node ../../scripts/only-covered main.js unit-utils.js working_directory: examples/same-folder - publish: diff --git a/scripts/only-covered.js b/scripts/only-covered.js new file mode 100644 index 000000000..74288e342 --- /dev/null +++ b/scripts/only-covered.js @@ -0,0 +1,49 @@ +const { join } = require('path') +const _ = require('lodash') + +const filenames = process.argv.slice(2) +if (!filenames.length) { + console.error('Usage: node %s ', __filename) + process.exit(1) +} + +const shouldBeCovered = filepath => + filenames.some(name => filepath.endsWith(name)) + +const coverageFilename = join(process.cwd(), '.nyc_output', 'out.json') +const coverage = require(coverageFilename) + +const coveredFilepaths = Object.keys(coverage).map(name => coverage[name].path) + +// console.log(coveredFilepaths) + +const [covered, extraCoveredFiles] = _.partition( + coveredFilepaths, + shouldBeCovered +) + +if (extraCoveredFiles.length) { + console.error('Error: found extra covered files 🔥') + console.error('Expected the following files in coverage results') + console.error(filenames.join('\n')) + console.error('extra files covered 🔥') + console.error(extraCoveredFiles.join('\n')) + process.exit(1) +} + +if (covered.length < filenames.length) { + console.error('Error: expected all files from the list to be covered 🔥') + console.error('Expected the following files in coverage results') + console.error(filenames.join('\n')) + console.error('But found only these files to be covered') + console.error(covered.join('\n')) + + console.error('Files missing from the coverage 🔥') + const missingFiles = filenames.filter( + filename => + !covered.some(coveredFilename => coveredFilename.endsWith(filename)) + ) + console.error(missingFiles.join('\n')) + + process.exit(1) +} From e8c072032caf07efcb80d0b8e0b4edef5c8dd300 Mon Sep 17 00:00:00 2001 From: Gleb Bahmutov Date: Sun, 5 Apr 2020 16:14:49 -0400 Subject: [PATCH 43/85] ad more validation --- .circleci/config.yml | 19 +++++++++++++++++++ scripts/check-coverage.js | 2 +- scripts/only-covered.js | 2 ++ 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index a43f4c7c5..d4182b2e7 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -122,6 +122,12 @@ workflows: - run: command: npx nyc report --check-coverage true --lines 100 working_directory: examples/before-each-visit + - run: + name: Check code coverage 📈 + command: | + node ../../scripts/check-coverage main.js + node ../../scripts/only-covered main.js + working_directory: examples/before-each-visit - cypress/run: attach-workspace: true @@ -145,6 +151,12 @@ workflows: - run: command: npx nyc report --check-coverage true --lines 100 working_directory: examples/before-all-visit + - run: + name: Check code coverage 📈 + command: | + node ../../scripts/check-coverage main.js + node ../../scripts/only-covered main.js + working_directory: examples/before-all-visit - cypress/run: attach-workspace: true @@ -168,6 +180,13 @@ workflows: command: npm run coverage:check working_directory: examples/ts-example + - run: + name: Check code coverage 📈 + command: | + node ../../scripts/check-coverage main.ts + node ../../scripts/only-covered main.ts + working_directory: examples/ts-example + - cypress/run: attach-workspace: true name: example-same-folder diff --git a/scripts/check-coverage.js b/scripts/check-coverage.js index 6fa80eb7e..4ff6bad11 100644 --- a/scripts/check-coverage.js +++ b/scripts/check-coverage.js @@ -41,7 +41,7 @@ if (isThereUncoveredStatement) { } console.log( - 'All statements in file %s (found for %s) were covered', + '✅ All statements in file %s (found for %s) were covered', fileCoverage.path, filename ) diff --git a/scripts/only-covered.js b/scripts/only-covered.js index 74288e342..073d397fe 100644 --- a/scripts/only-covered.js +++ b/scripts/only-covered.js @@ -47,3 +47,5 @@ if (covered.length < filenames.length) { process.exit(1) } + +console.log('✅ All and only expected files were covered') From 7ae74425038ef2b423e8acfde029c5d469d9c874 Mon Sep 17 00:00:00 2001 From: Gleb Bahmutov Date: Sun, 5 Apr 2020 17:58:45 -0400 Subject: [PATCH 44/85] fix: better filtering of support files (#177) * add filtering example with support files * working example * run example job on CI * start the server before testing * update support file filtering --- .circleci/config.yml | 33 ++++++++++++- examples/support-files/.babelrc | 3 ++ examples/support-files/README.md | 3 ++ examples/support-files/cypress.json | 5 ++ .../support-files/cypress/integration/spec.js | 5 ++ .../support-files/cypress/plugins/index.js | 4 ++ .../support-files/cypress/support/commands.js | 2 + .../support-files/cypress/support/index.js | 1 + examples/support-files/index.html | 13 ++++++ examples/support-files/main.js | 3 ++ examples/support-files/package.json | 12 +++++ support.js | 46 +++++++++++++++---- 12 files changed, 120 insertions(+), 10 deletions(-) create mode 100644 examples/support-files/.babelrc create mode 100644 examples/support-files/README.md create mode 100644 examples/support-files/cypress.json create mode 100644 examples/support-files/cypress/integration/spec.js create mode 100644 examples/support-files/cypress/plugins/index.js create mode 100644 examples/support-files/cypress/support/commands.js create mode 100644 examples/support-files/cypress/support/index.js create mode 100644 examples/support-files/index.html create mode 100644 examples/support-files/main.js create mode 100644 examples/support-files/package.json diff --git a/.circleci/config.yml b/.circleci/config.yml index d4182b2e7..c2a1fa2a1 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -209,7 +209,6 @@ workflows: - run: command: npx nyc report --check-coverage true --lines 100 working_directory: examples/same-folder - # how to fail if the specific file coverage is not found?! - run: command: npx nyc report --check-coverage true --lines 100 --include unit-utils.js working_directory: examples/same-folder @@ -221,6 +220,37 @@ workflows: node ../../scripts/only-covered main.js unit-utils.js working_directory: examples/same-folder + - cypress/run: + attach-workspace: true + name: example-support-files + requires: + - cypress/install + # there are no jobs to follow this one + # so no need to save the workspace files (saves time) + no-workspace: true + start: npm start --prefix examples/support-files + wait-on: 'http://localhost:1234' + command: npx cypress run --project examples/support-files + # store screenshots and videos + store_artifacts: true + post-steps: + - run: cat examples/support-files/.nyc_output/out.json + # store the created coverage report folder + # you can click on it in the CircleCI UI + # to see live static HTML site + - store_artifacts: + path: examples/support-files/coverage + # make sure the examples captures 100% of code + - run: + command: npx nyc report --check-coverage true --lines 100 + working_directory: examples/support-files + - run: + name: Check code coverage 📈 + command: | + node ../../scripts/check-coverage main.js + node ../../scripts/only-covered main.js + working_directory: examples/support-files + - publish: filters: branches: @@ -235,3 +265,4 @@ workflows: - example-before-all-visit - example-ts-example - example-same-folder + - example-support-files diff --git a/examples/support-files/.babelrc b/examples/support-files/.babelrc new file mode 100644 index 000000000..7a016cf8e --- /dev/null +++ b/examples/support-files/.babelrc @@ -0,0 +1,3 @@ +{ + "plugins": ["istanbul"] +} diff --git a/examples/support-files/README.md b/examples/support-files/README.md new file mode 100644 index 000000000..da3beaa0f --- /dev/null +++ b/examples/support-files/README.md @@ -0,0 +1,3 @@ +# example: support-files + +Filtering out support files diff --git a/examples/support-files/cypress.json b/examples/support-files/cypress.json new file mode 100644 index 000000000..c7994dc62 --- /dev/null +++ b/examples/support-files/cypress.json @@ -0,0 +1,5 @@ +{ + "fixturesFolder": false, + "pluginsFile": "cypress/plugins/index.js", + "baseUrl": "http://localhost:1234" +} diff --git a/examples/support-files/cypress/integration/spec.js b/examples/support-files/cypress/integration/spec.js new file mode 100644 index 000000000..6736cc661 --- /dev/null +++ b/examples/support-files/cypress/integration/spec.js @@ -0,0 +1,5 @@ +/// +it('works', () => { + cy.visit('/') + cy.contains('Page body') +}) diff --git a/examples/support-files/cypress/plugins/index.js b/examples/support-files/cypress/plugins/index.js new file mode 100644 index 000000000..42aa38ea8 --- /dev/null +++ b/examples/support-files/cypress/plugins/index.js @@ -0,0 +1,4 @@ +module.exports = (on, config) => { + on('task', require('../../../../task')) + on('file:preprocessor', require('../../../../use-babelrc')) +} diff --git a/examples/support-files/cypress/support/commands.js b/examples/support-files/cypress/support/commands.js new file mode 100644 index 000000000..219920ee8 --- /dev/null +++ b/examples/support-files/cypress/support/commands.js @@ -0,0 +1,2 @@ +import '../../../../support' +console.log('this is commands file') diff --git a/examples/support-files/cypress/support/index.js b/examples/support-files/cypress/support/index.js new file mode 100644 index 000000000..b5c578c9d --- /dev/null +++ b/examples/support-files/cypress/support/index.js @@ -0,0 +1 @@ +require('./commands') diff --git a/examples/support-files/index.html b/examples/support-files/index.html new file mode 100644 index 000000000..47d050a3c --- /dev/null +++ b/examples/support-files/index.html @@ -0,0 +1,13 @@ + + Page body + + + diff --git a/examples/support-files/main.js b/examples/support-files/main.js new file mode 100644 index 000000000..5dd69be2f --- /dev/null +++ b/examples/support-files/main.js @@ -0,0 +1,3 @@ +window.add = (a, b) => a + b + +window.sub = (a, b) => a - b diff --git a/examples/support-files/package.json b/examples/support-files/package.json new file mode 100644 index 000000000..9092eca74 --- /dev/null +++ b/examples/support-files/package.json @@ -0,0 +1,12 @@ +{ + "name": "example-support-files", + "description": "Filtering out support files", + "devDependencies": { + "@babel/core": "7.9.0" + }, + "scripts": { + "start": "../../node_modules/.bin/parcel serve index.html", + "cy:open": "../../node_modules/.bin/cypress open", + "dev": "../../node_modules/.bin/start-test 1234 cy:open" + } +} diff --git a/support.js b/support.js index 5d6cda23c..0f71ca4f1 100644 --- a/support.js +++ b/support.js @@ -7,7 +7,9 @@ const sendCoverage = (coverage, pathname = '/') => { logMessage(`Saving code coverage for **${pathname}**`) - const appCoverageOnly = filterSpecsFromCoverage(coverage) + const withoutSpecs = filterSpecsFromCoverage(coverage) + const appCoverageOnly = filterSupportFilesFromCoverage(withoutSpecs) + // stringify coverage object for speed cy.task('combineCoverage', JSON.stringify(appCoverageOnly), { log: false @@ -23,23 +25,49 @@ const logMessage = s => { cy.log(`${s} \`[@cypress/code-coverage]\``) } -const filterSpecsFromCoverage = totalCoverage => { - // remove coverage for the spec files themselves, - // only keep "external" application source file coverage +/** + * Removes support file from the coverage object. + * If there are more files loaded from support folder, also removes them + */ +const filterSupportFilesFromCoverage = totalCoverage => { const integrationFolder = Cypress.config('integrationFolder') const supportFile = Cypress.config('supportFile') + const supportFolder = Cypress.config('supportFolder') + + const isSupportFile = filename => filename === supportFile + + let coverage = Cypress._.omitBy(totalCoverage, (fileCoverage, filename) => + isSupportFile(filename) + ) + + // check the edge case + // if we have files from support folder AND the support folder is not same + // as the integration, or its prefix (this might remove all app source files) + // then remove all files from the support folder + if (!integrationFolder.startsWith(supportFolder)) { + // remove all covered files from support folder + coverage = Cypress._.omitBy(totalCoverage, (fileCoverage, filename) => + filename.startsWith(supportFolder) + ) + } + return coverage +} + +/** + * remove coverage for the spec files themselves, + * only keep "external" application source file coverage + */ +const filterSpecsFromCoverage = totalCoverage => { + const integrationFolder = Cypress.config('integrationFolder') const testFilePattern = Cypress.config('testFiles') const isUsingDefaultTestPattern = testFilePattern === '**/*.*' const isInIntegrationFolder = filename => filename.startsWith(integrationFolder) const isTestFile = filename => Cypress.minimatch(filename, testFilePattern) - const isSupportFile = filename => filename === supportFile - const isA = (fileCoverge, filename) => - isInIntegrationFolder(filename) || isSupportFile(filename) - const isB = (fileCoverge, filename) => - isTestFile(filename) || isSupportFile(filename) + const isA = (fileCoverge, filename) => isInIntegrationFolder(filename) + const isB = (fileCoverge, filename) => isTestFile(filename) const isTestFileFilter = isUsingDefaultTestPattern ? isA : isB From b74bda0c32c25e58a10bb4d7a3aac26099491dbd Mon Sep 17 00:00:00 2001 From: Gleb Bahmutov Date: Mon, 6 Apr 2020 15:17:44 -0400 Subject: [PATCH 45/85] feat: set flag from plugins task that they were registered (#180) * feat: set flag from plugins task that they were registered BREAKING CHANGE: the task sets an environment variable and needs to return its config. The new registration thus looks like this ```js // your plugins file module.exports = (on, config) => { require('cypress/code-coverage/task')(on, config) // IMPORTANT to return the config object // with the any changed environment variables return config } ``` Support code can check variable `Cypress.env('codeCoverageTasksRegistered')` before calling `cy.task` * update readme * update examples * add small plugins file * update readme * add example using plugins and support * add new example to CI * no need to start server in the example --- .circleci/config.yml | 30 ++++ README.md | 42 ++++- cypress/plugins/index.js | 5 +- .../before-all-visit/cypress/plugins/index.js | 5 +- .../cypress/plugins/index.js | 5 +- examples/same-folder/plugins.js | 3 +- .../support-files/cypress/plugins/index.js | 3 +- examples/ts-example/cypress/plugins/index.js | 3 +- examples/use-plugins-and-support/README.md | 5 + examples/use-plugins-and-support/cypress.json | 5 + .../cypress/integration/spec.js | 18 +++ examples/use-plugins-and-support/index.html | 4 + .../main-instrumented.js | 146 ++++++++++++++++++ examples/use-plugins-and-support/main.js | 3 + .../use-plugins-and-support/package-lock.json | 4 + examples/use-plugins-and-support/package.json | 8 + plugins.js | 13 ++ support.js | 27 +++- task.js | 29 +++- 19 files changed, 341 insertions(+), 17 deletions(-) create mode 100644 examples/use-plugins-and-support/README.md create mode 100644 examples/use-plugins-and-support/cypress.json create mode 100644 examples/use-plugins-and-support/cypress/integration/spec.js create mode 100644 examples/use-plugins-and-support/index.html create mode 100644 examples/use-plugins-and-support/main-instrumented.js create mode 100644 examples/use-plugins-and-support/main.js create mode 100644 examples/use-plugins-and-support/package-lock.json create mode 100644 examples/use-plugins-and-support/package.json create mode 100644 plugins.js diff --git a/.circleci/config.yml b/.circleci/config.yml index c2a1fa2a1..58e7a99cb 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -251,6 +251,35 @@ workflows: node ../../scripts/only-covered main.js working_directory: examples/support-files + - cypress/run: + attach-workspace: true + name: example-use-plugins-and-support + requires: + - cypress/install + # there are no jobs to follow this one + # so no need to save the workspace files (saves time) + no-workspace: true + command: npx cypress run --project examples/use-plugins-and-support + # store screenshots and videos + store_artifacts: true + post-steps: + - run: cat examples/use-plugins-and-support/.nyc_output/out.json + # store the created coverage report folder + # you can click on it in the CircleCI UI + # to see live static HTML site + - store_artifacts: + path: examples/use-plugins-and-support/coverage + # make sure the examples captures 100% of code + - run: + command: npx nyc report --check-coverage true --lines 100 + working_directory: examples/use-plugins-and-support + - run: + name: Check code coverage 📈 + command: | + node ../../scripts/check-coverage main.js + node ../../scripts/only-covered main.js + working_directory: examples/use-plugins-and-support + - publish: filters: branches: @@ -266,3 +295,4 @@ workflows: - example-ts-example - example-same-folder - example-support-files + - example-use-plugins-and-support diff --git a/README.md b/README.md index b65e42dc0..dbf0c5329 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,10 @@ Register tasks in your `cypress/plugins/index.js` file ```js module.exports = (on, config) => { - on('task', require('@cypress/code-coverage/task')) + require('@cypress/code-coverage/task')(on, config) + // IMPORTANT to return the config object + // with the any changed environment variables + return config } ``` @@ -109,8 +112,9 @@ Put the following in `cypress/plugins/index.js` file to use `.babelrc` file ```js module.exports = (on, config) => { - on('task', require('@cypress/code-coverage/task')) + require('@cypress/code-coverage/task')(on, config) on('file:preprocessor', require('@cypress/code-coverage/use-babelrc')) + return config } ``` @@ -122,11 +126,12 @@ If you cannot use `.babelrc` for some reason (maybe it is used by other tools?), ```js module.exports = (on, config) => { - on('task', require('@cypress/code-coverage/task')) + require('@cypress/code-coverage/task')(on, config) on( 'file:preprocessor', require('@cypress/code-coverage/use-browserify-istanbul') ) + return config } ``` @@ -349,6 +354,37 @@ npm run dev:no:coverage - [bahmutov/code-coverage-subfolder-example](https://github.com/bahmutov/code-coverage-subfolder-example) shows how to instrument `app` folder using `nyc instrument` as a separate step before running E2E tests - [bahmutov/docker-with-cypress-included-code-coverage-example](https://github.com/bahmutov/docker-with-cypress-included-code-coverage-example) runs tests inside pre-installed Cypress using [cypress/included:x.y.z](https://github.com/cypress-io/cypress-docker-images/tree/master/included) Docker image and reports code coverage. +## Migrations + +### v2 to v3 + +Change the plugins file `cypress/plugins/index.js` + +```js +// BEFORE +module.exports = (on, config) => { + on('task', require('@cypress/code-coverage/task')) +} +// AFTER +module.exports = (on, config) => { + require('@cypress/code-coverage/task')(on, config) + // IMPORTANT to return the config object + // with the any changed environment variables + return config +} +``` + +**Tip:** we include [plugins.js](plugins.js) file you can point at from your code in simple cases. From your `cypress.json` file: + +```json +{ + "pluginsFile": "node_modules/@cypress/code-coverage/plugins", + "supportFile": "node_modules/@cypress/code-coverage/support" +} +``` + +See [examples/use-plugins-and-support](examples/use-plugins-and-support) + ## Debugging This plugin uses [debug](https://github.com/visionmedia/debug) module to output additional logging messages from its [task.js](task.js) file. This can help with debugging errors while saving code coverage or reporting. In order to see these messages, run Cypress from the terminal with environment variable `DEBUG=code-coverage`. Example using Unix syntax to set the variable: diff --git a/cypress/plugins/index.js b/cypress/plugins/index.js index f45185fc4..689350e64 100644 --- a/cypress/plugins/index.js +++ b/cypress/plugins/index.js @@ -1,5 +1,5 @@ module.exports = (on, config) => { - on('task', require('../../task')) + require('../../task')(on, config) // also use .babelrc file when bundling spec files // to get the code coverage from unit tests @@ -9,4 +9,7 @@ module.exports = (on, config) => { // or use browserify and just push babel-plugin-istanbul // directory to the list of babelify plugins // on('file:preprocessor', require('../../use-browserify-istanbul')) + + // IMPORTANT to return the config object with changed environment variable + return config } diff --git a/examples/before-all-visit/cypress/plugins/index.js b/examples/before-all-visit/cypress/plugins/index.js index 172deda45..a7fb752b7 100644 --- a/examples/before-all-visit/cypress/plugins/index.js +++ b/examples/before-all-visit/cypress/plugins/index.js @@ -1,3 +1,6 @@ module.exports = (on, config) => { - on('task', require('../../../../task')) + require('../../../../task')(on, config) + // IMPORTANT to return the config object + // with the any changed environment variables + return config } diff --git a/examples/before-each-visit/cypress/plugins/index.js b/examples/before-each-visit/cypress/plugins/index.js index 172deda45..a7fb752b7 100644 --- a/examples/before-each-visit/cypress/plugins/index.js +++ b/examples/before-each-visit/cypress/plugins/index.js @@ -1,3 +1,6 @@ module.exports = (on, config) => { - on('task', require('../../../../task')) + require('../../../../task')(on, config) + // IMPORTANT to return the config object + // with the any changed environment variables + return config } diff --git a/examples/same-folder/plugins.js b/examples/same-folder/plugins.js index 723dd9e11..2df3f068a 100644 --- a/examples/same-folder/plugins.js +++ b/examples/same-folder/plugins.js @@ -1,4 +1,5 @@ module.exports = (on, config) => { - on('task', require('../../task')) + require('../../task')(on, config) on('file:preprocessor', require('../../use-babelrc')) + return config } diff --git a/examples/support-files/cypress/plugins/index.js b/examples/support-files/cypress/plugins/index.js index 42aa38ea8..b17c48db1 100644 --- a/examples/support-files/cypress/plugins/index.js +++ b/examples/support-files/cypress/plugins/index.js @@ -1,4 +1,5 @@ module.exports = (on, config) => { - on('task', require('../../../../task')) + require('../../../../task')(on, config) on('file:preprocessor', require('../../../../use-babelrc')) + return config } diff --git a/examples/ts-example/cypress/plugins/index.js b/examples/ts-example/cypress/plugins/index.js index 172deda45..fa838f18c 100644 --- a/examples/ts-example/cypress/plugins/index.js +++ b/examples/ts-example/cypress/plugins/index.js @@ -1,3 +1,4 @@ module.exports = (on, config) => { - on('task', require('../../../../task')) + require('../../../../task')(on, config) + return config } diff --git a/examples/use-plugins-and-support/README.md b/examples/use-plugins-and-support/README.md new file mode 100644 index 000000000..0f1251b3b --- /dev/null +++ b/examples/use-plugins-and-support/README.md @@ -0,0 +1,5 @@ +# example: use-plugins-and-support + +Using included plugins and support files + +See [cypress.json](cypress.json) file diff --git a/examples/use-plugins-and-support/cypress.json b/examples/use-plugins-and-support/cypress.json new file mode 100644 index 000000000..3681940e8 --- /dev/null +++ b/examples/use-plugins-and-support/cypress.json @@ -0,0 +1,5 @@ +{ + "pluginsFile": "../../plugins", + "supportFile": "../../support", + "fixturesFolder": false +} diff --git a/examples/use-plugins-and-support/cypress/integration/spec.js b/examples/use-plugins-and-support/cypress/integration/spec.js new file mode 100644 index 000000000..401618d11 --- /dev/null +++ b/examples/use-plugins-and-support/cypress/integration/spec.js @@ -0,0 +1,18 @@ +/// +describe('coverage information', () => { + beforeEach(() => { + cy.visit('index.html') + }) + + it('calls add', () => { + cy.window() + .invoke('add', 2, 3) + .should('equal', 5) + }) + + it('calls sub', () => { + cy.window() + .invoke('sub', 2, 3) + .should('equal', -1) + }) +}) diff --git a/examples/use-plugins-and-support/index.html b/examples/use-plugins-and-support/index.html new file mode 100644 index 000000000..b6691c8af --- /dev/null +++ b/examples/use-plugins-and-support/index.html @@ -0,0 +1,4 @@ + + Page body + + diff --git a/examples/use-plugins-and-support/main-instrumented.js b/examples/use-plugins-and-support/main-instrumented.js new file mode 100644 index 000000000..0550e9bb7 --- /dev/null +++ b/examples/use-plugins-and-support/main-instrumented.js @@ -0,0 +1,146 @@ +function cov_6k5v991cn() { + var path = 'main.js' + var hash = 'd384017ecd51a8d90283ba0dec593332209519de' + var global = new Function('return this')() + var gcv = '__coverage__' + var coverageData = { + path: 'main.js', + statementMap: { + '0': { + start: { + line: 1, + column: 0 + }, + end: { + line: 1, + column: 28 + } + }, + '1': { + start: { + line: 1, + column: 23 + }, + end: { + line: 1, + column: 28 + } + }, + '2': { + start: { + line: 3, + column: 0 + }, + end: { + line: 3, + column: 28 + } + }, + '3': { + start: { + line: 3, + column: 23 + }, + end: { + line: 3, + column: 28 + } + } + }, + fnMap: { + '0': { + name: '(anonymous_0)', + decl: { + start: { + line: 1, + column: 13 + }, + end: { + line: 1, + column: 14 + } + }, + loc: { + start: { + line: 1, + column: 23 + }, + end: { + line: 1, + column: 28 + } + }, + line: 1 + }, + '1': { + name: '(anonymous_1)', + decl: { + start: { + line: 3, + column: 13 + }, + end: { + line: 3, + column: 14 + } + }, + loc: { + start: { + line: 3, + column: 23 + }, + end: { + line: 3, + column: 28 + } + }, + line: 3 + } + }, + branchMap: {}, + s: { + '0': 0, + '1': 0, + '2': 0, + '3': 0 + }, + f: { + '0': 0, + '1': 0 + }, + b: {}, + _coverageSchema: '1a1c01bbd47fc00a2c39e90264f33305004495a9', + hash: 'd384017ecd51a8d90283ba0dec593332209519de' + } + var coverage = global[gcv] || (global[gcv] = {}) + + if (!coverage[path] || coverage[path].hash !== hash) { + coverage[path] = coverageData + } + + var actualCoverage = coverage[path] + + cov_6k5v991cn = function() { + return actualCoverage + } + + return actualCoverage +} + +cov_6k5v991cn() +cov_6k5v991cn().s[0]++ + +window.add = (a, b) => { + cov_6k5v991cn().f[0]++ + cov_6k5v991cn().s[1]++ + return a + b +} + +cov_6k5v991cn().s[2]++ + +window.sub = (a, b) => { + cov_6k5v991cn().f[1]++ + cov_6k5v991cn().s[3]++ + return a - b +} +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1haW4uanMiXSwibmFtZXMiOlsid2luZG93IiwiYWRkIiwiYSIsImIiLCJzdWIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBQSxNQUFNLENBQUNDLEdBQVAsR0FBYSxDQUFDQyxDQUFELEVBQUlDLENBQUosS0FBVTtBQUFBO0FBQUE7QUFBQSxTQUFBRCxDQUFDLEdBQUdDLENBQUo7QUFBSyxDQUE1Qjs7OztBQUVBSCxNQUFNLENBQUNJLEdBQVAsR0FBYSxDQUFDRixDQUFELEVBQUlDLENBQUosS0FBVTtBQUFBO0FBQUE7QUFBQSxTQUFBRCxDQUFDLEdBQUdDLENBQUo7QUFBSyxDQUE1QiIsInNvdXJjZXNDb250ZW50IjpbIndpbmRvdy5hZGQgPSAoYSwgYikgPT4gYSArIGJcblxud2luZG93LnN1YiA9IChhLCBiKSA9PiBhIC0gYlxuIl19 diff --git a/examples/use-plugins-and-support/main.js b/examples/use-plugins-and-support/main.js new file mode 100644 index 000000000..5dd69be2f --- /dev/null +++ b/examples/use-plugins-and-support/main.js @@ -0,0 +1,3 @@ +window.add = (a, b) => a + b + +window.sub = (a, b) => a - b diff --git a/examples/use-plugins-and-support/package-lock.json b/examples/use-plugins-and-support/package-lock.json new file mode 100644 index 000000000..6ec504937 --- /dev/null +++ b/examples/use-plugins-and-support/package-lock.json @@ -0,0 +1,4 @@ +{ + "name": "example-before-each-visit", + "lockfileVersion": 1 +} diff --git a/examples/use-plugins-and-support/package.json b/examples/use-plugins-and-support/package.json new file mode 100644 index 000000000..c56dbb885 --- /dev/null +++ b/examples/use-plugins-and-support/package.json @@ -0,0 +1,8 @@ +{ + "name": "use-plugins-and-support", + "description": "Using included plugins and support files", + "devDependencies": {}, + "scripts": { + "cy:open": "../../node_modules/.bin/cypress open" + } +} diff --git a/plugins.js b/plugins.js new file mode 100644 index 000000000..0ba5ce57f --- /dev/null +++ b/plugins.js @@ -0,0 +1,13 @@ +// common Cypress plugin file you can point at to have the +// code coverage tasks registered correctly. From your "cypress.json" file +// { +// "pluginsFile": "@cypress/code-coverage/plugins", +// "supportFile": "@cypress/code-coverage/support" +// } +// +module.exports = (on, config) => { + require('./task')(on, config) + // IMPORTANT to return the config object + // with the any changed environment variables + return config +} diff --git a/support.js b/support.js index 0f71ca4f1..fc2c052de 100644 --- a/support.js +++ b/support.js @@ -75,13 +75,7 @@ const filterSpecsFromCoverage = totalCoverage => { return coverage } -// to disable code coverage commands and save time -// pass environment variable coverage=false -// cypress run --env coverage=false -// see https://on.cypress.io/environment-variables -if (Cypress.env('coverage') === false) { - console.log('Skipping code coverage hooks') -} else { +const registerHooks = () => { let windowCoverageObjects const hasE2ECoverage = () => Boolean(windowCoverageObjects.length) @@ -206,3 +200,22 @@ if (Cypress.env('coverage') === false) { }) }) } + +// to disable code coverage commands and save time +// pass environment variable coverage=false +// cypress run --env coverage=false +// see https://on.cypress.io/environment-variables +if (Cypress.env('coverage') === false) { + console.log('Skipping code coverage hooks') +} else if (Cypress.env('codeCoverageTasksRegistered') !== true) { + // register a hook just to log a message + before(() => { + logMessage(` + ⚠️ Code coverage tasks were not registered by the plugins file. + See [support issue](https://github.com/cypress-io/code-coverage/issues/179) + for possible workarounds. + `) + }) +} else { + registerHooks() +} diff --git a/task.js b/task.js index b597c909a..206548c36 100644 --- a/task.js +++ b/task.js @@ -37,7 +37,7 @@ function saveCoverage(coverage) { writeFileSync(nycFilename, JSON.stringify(coverage, null, 2)) } -module.exports = { +const tasks = { /** * Clears accumulated code coverage information. * @@ -133,3 +133,30 @@ module.exports = { return nyc.report().then(returnReportFolder) } } + +/** + * Registers code coverage collection and reporting tasks. + * Sets an environment variable to tell the browser code that it can + * send the coverage. + * @example + ``` + // your plugins file + module.exports = (on, config) => { + require('cypress/code-coverage/task')(on, config) + // IMPORTANT to return the config object + // with the any changed environment variables + return config + } + ``` +*/ +function registerCodeCoverageTasks(on, config) { + on('task', tasks) + + // set a variable to let the hooks running in the browser + // know that they can send coverage commands + config.env.codeCoverageTasksRegistered = true + + return config +} + +module.exports = registerCodeCoverageTasks From 3954d7666780c98dcef288437714b8d93f72467b Mon Sep 17 00:00:00 2001 From: Cory Armbrecht Date: Mon, 6 Apr 2020 15:18:52 -0400 Subject: [PATCH 46/85] Removed Performance Warning, fixed by PR #98 (#178) Removed Performance Warning, which was fixed by PR #98 --- README.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/README.md b/README.md index dbf0c5329..5cdc0009c 100644 --- a/README.md +++ b/README.md @@ -2,9 +2,6 @@ > Saves the code coverage collected during Cypress tests -**⚠️ Performance Warning** -This plugin will slow down your tests. There will be more web application JavaScript code to execute due to instrumentation, and there will be code coverage information to merge and save after each test. Track issue [#26](https://github.com/cypress-io/code-coverage/issues/26) for current progress. - ## Install ```shell From cda9e5ec7dd5338c0a1f4c9fc99091359c78969b Mon Sep 17 00:00:00 2001 From: Gleb Bahmutov Date: Tue, 7 Apr 2020 18:09:28 -0400 Subject: [PATCH 47/85] fix: filtering against list of specs (#182) * fix: filtering against list of specs * add example project with single spec selected * update example * add example to CI * more coverage for one-spec * lower backend example coverage limit --- .circleci/config.yml | 33 +++- cypress/integration/filtering.js | 84 ++++++++++ examples/one-spec/.babelrc | 3 + examples/one-spec/README.md | 3 + examples/one-spec/cypress.json | 5 + .../one-spec/cypress/integration/spec-a.js | 13 ++ .../one-spec/cypress/integration/spec-b.js | 5 + examples/one-spec/cypress/plugins/index.js | 5 + examples/one-spec/cypress/support/index.js | 1 + examples/one-spec/index.html | 4 + examples/one-spec/main-instrumented.js | 146 ++++++++++++++++++ examples/one-spec/main.js | 3 + examples/one-spec/package.json | 7 + support.js | 25 +-- utils.js | 79 ++++++++-- 15 files changed, 376 insertions(+), 40 deletions(-) create mode 100644 cypress/integration/filtering.js create mode 100644 examples/one-spec/.babelrc create mode 100644 examples/one-spec/README.md create mode 100644 examples/one-spec/cypress.json create mode 100644 examples/one-spec/cypress/integration/spec-a.js create mode 100644 examples/one-spec/cypress/integration/spec-b.js create mode 100644 examples/one-spec/cypress/plugins/index.js create mode 100644 examples/one-spec/cypress/support/index.js create mode 100644 examples/one-spec/index.html create mode 100644 examples/one-spec/main-instrumented.js create mode 100644 examples/one-spec/main.js create mode 100644 examples/one-spec/package.json diff --git a/.circleci/config.yml b/.circleci/config.yml index 58e7a99cb..bccc2604a 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -75,6 +75,7 @@ workflows: - run: npx nyc report --check-coverage true --lines 100 --include cypress/unit.js - cypress/run: + # TODO switch to separate example in "examples/..." name: backend coverage requires: - cypress/install @@ -96,7 +97,7 @@ workflows: path: coverage # print code coverage summary to the terminal # and make sure there the coverage is above certain limit - - run: npx nyc report --check-coverage true --lines 85 + - run: npx nyc report --check-coverage true --lines 72 # and look at the server index file - should be fully covered - run: npx nyc report --check-coverage true --lines 100 --include test-backend/index.js @@ -280,6 +281,35 @@ workflows: node ../../scripts/only-covered main.js working_directory: examples/use-plugins-and-support + - cypress/run: + attach-workspace: true + name: example-one-spec + requires: + - cypress/install + # there are no jobs to follow this one + # so no need to save the workspace files (saves time) + no-workspace: true + command: npx cypress run --project examples/one-spec + # store screenshots and videos + store_artifacts: true + post-steps: + - run: cat examples/one-spec/.nyc_output/out.json + # store the created coverage report folder + # you can click on it in the CircleCI UI + # to see live static HTML site + - store_artifacts: + path: examples/one-spec/coverage + # make sure the examples captures 100% of code + - run: + command: npx nyc report --check-coverage true --lines 100 + working_directory: examples/one-spec + - run: + name: Check code coverage 📈 + command: | + node ../../scripts/check-coverage main.js + node ../../scripts/only-covered main.js + working_directory: examples/one-spec + - publish: filters: branches: @@ -296,3 +326,4 @@ workflows: - example-same-folder - example-support-files - example-use-plugins-and-support + - example-one-spec diff --git a/cypress/integration/filtering.js b/cypress/integration/filtering.js new file mode 100644 index 000000000..212c8618d --- /dev/null +++ b/cypress/integration/filtering.js @@ -0,0 +1,84 @@ +const { filterSpecsFromCoverage } = require('../../utils') + +describe('minimatch', () => { + it('string matches', () => { + expect( + Cypress.minimatch('/path/to/specA.js', '/path/to/specA.js'), + 'matches full strings' + ).to.be.true + + expect( + Cypress.minimatch('/path/to/specA.js', 'specA.js'), + 'does not match just the end' + ).to.be.false + + expect( + Cypress.minimatch('/path/to/specA.js', '**/specA.js'), + 'matches using **' + ).to.be.true + }) +}) + +describe('filtering specs', () => { + it('filters list of specs by single string', () => { + const config = cy.stub() + config.withArgs('testFiles').returns(['specA.js']) + config.withArgs('integrationFolder').returns('/path/to/integration/') + + const totalCoverage = { + '/path/to/specA.js': {}, + '/path/to/specB.js': {} + } + const result = filterSpecsFromCoverage(totalCoverage, config) + expect(result).to.deep.equal({ + '/path/to/specB.js': {} + }) + }) + + it('filters list of specs by pattern', () => { + const config = cy.stub() + config.withArgs('testFiles').returns(['**/*B.js']) + config.withArgs('integrationFolder').returns('/path/to/integration/') + + const totalCoverage = { + '/path/to/specA.js': {}, + '/path/to/specB.js': {} + } + const result = filterSpecsFromCoverage(totalCoverage, config) + expect(result).to.deep.equal({ + '/path/to/specA.js': {} + }) + }) + + it('filters list of specs by pattern and single spec', () => { + const config = cy.stub() + config.withArgs('testFiles').returns(['**/*B.js', 'specA.js']) + config.withArgs('integrationFolder').returns('/path/to/integration/') + + const totalCoverage = { + '/path/to/specA.js': {}, + '/path/to/specB.js': {} + } + const result = filterSpecsFromCoverage(totalCoverage, config) + expect(result, 'all specs have been filtered out').to.deep.equal({}) + }) + + it('filters list of specs in integration folder', () => { + const config = cy.stub() + config.withArgs('testFiles').returns('**/*.*') // default pattern + config.withArgs('integrationFolder').returns('/path/to/integration/') + + const totalCoverage = { + '/path/to/specA.js': {}, + '/path/to/specB.js': {}, + // these files should be removed + '/path/to/integration/spec1.js': {}, + '/path/to/integration/spec2.js': {} + } + const result = filterSpecsFromCoverage(totalCoverage, config) + expect(result).to.deep.equal({ + '/path/to/specA.js': {}, + '/path/to/specB.js': {} + }) + }) +}) diff --git a/examples/one-spec/.babelrc b/examples/one-spec/.babelrc new file mode 100644 index 000000000..7a016cf8e --- /dev/null +++ b/examples/one-spec/.babelrc @@ -0,0 +1,3 @@ +{ + "plugins": ["istanbul"] +} diff --git a/examples/one-spec/README.md b/examples/one-spec/README.md new file mode 100644 index 000000000..8341c68a7 --- /dev/null +++ b/examples/one-spec/README.md @@ -0,0 +1,3 @@ +# example: one-spec + +Only running a single spec diff --git a/examples/one-spec/cypress.json b/examples/one-spec/cypress.json new file mode 100644 index 000000000..e5a25c6e9 --- /dev/null +++ b/examples/one-spec/cypress.json @@ -0,0 +1,5 @@ +{ + "fixturesFolder": false, + "pluginsFile": "cypress/plugins/index.js", + "testFiles": ["spec-a.js"] +} diff --git a/examples/one-spec/cypress/integration/spec-a.js b/examples/one-spec/cypress/integration/spec-a.js new file mode 100644 index 000000000..92b53c229 --- /dev/null +++ b/examples/one-spec/cypress/integration/spec-a.js @@ -0,0 +1,13 @@ +/// +it('spec a', () => { + cy.visit('index.html') + cy.contains('Page body') + + cy.window() + .invoke('add', 2, 3) + .should('equal', 5) + + cy.window() + .invoke('sub', 2, 3) + .should('equal', -1) +}) diff --git a/examples/one-spec/cypress/integration/spec-b.js b/examples/one-spec/cypress/integration/spec-b.js new file mode 100644 index 000000000..a9a644cd9 --- /dev/null +++ b/examples/one-spec/cypress/integration/spec-b.js @@ -0,0 +1,5 @@ +/// +it('spec b', () => { + // should not run + throw new Error('Spec b should not run') +}) diff --git a/examples/one-spec/cypress/plugins/index.js b/examples/one-spec/cypress/plugins/index.js new file mode 100644 index 000000000..b17c48db1 --- /dev/null +++ b/examples/one-spec/cypress/plugins/index.js @@ -0,0 +1,5 @@ +module.exports = (on, config) => { + require('../../../../task')(on, config) + on('file:preprocessor', require('../../../../use-babelrc')) + return config +} diff --git a/examples/one-spec/cypress/support/index.js b/examples/one-spec/cypress/support/index.js new file mode 100644 index 000000000..dd60efa28 --- /dev/null +++ b/examples/one-spec/cypress/support/index.js @@ -0,0 +1 @@ +import '../../../../support' diff --git a/examples/one-spec/index.html b/examples/one-spec/index.html new file mode 100644 index 000000000..b6691c8af --- /dev/null +++ b/examples/one-spec/index.html @@ -0,0 +1,4 @@ + + Page body + + diff --git a/examples/one-spec/main-instrumented.js b/examples/one-spec/main-instrumented.js new file mode 100644 index 000000000..0550e9bb7 --- /dev/null +++ b/examples/one-spec/main-instrumented.js @@ -0,0 +1,146 @@ +function cov_6k5v991cn() { + var path = 'main.js' + var hash = 'd384017ecd51a8d90283ba0dec593332209519de' + var global = new Function('return this')() + var gcv = '__coverage__' + var coverageData = { + path: 'main.js', + statementMap: { + '0': { + start: { + line: 1, + column: 0 + }, + end: { + line: 1, + column: 28 + } + }, + '1': { + start: { + line: 1, + column: 23 + }, + end: { + line: 1, + column: 28 + } + }, + '2': { + start: { + line: 3, + column: 0 + }, + end: { + line: 3, + column: 28 + } + }, + '3': { + start: { + line: 3, + column: 23 + }, + end: { + line: 3, + column: 28 + } + } + }, + fnMap: { + '0': { + name: '(anonymous_0)', + decl: { + start: { + line: 1, + column: 13 + }, + end: { + line: 1, + column: 14 + } + }, + loc: { + start: { + line: 1, + column: 23 + }, + end: { + line: 1, + column: 28 + } + }, + line: 1 + }, + '1': { + name: '(anonymous_1)', + decl: { + start: { + line: 3, + column: 13 + }, + end: { + line: 3, + column: 14 + } + }, + loc: { + start: { + line: 3, + column: 23 + }, + end: { + line: 3, + column: 28 + } + }, + line: 3 + } + }, + branchMap: {}, + s: { + '0': 0, + '1': 0, + '2': 0, + '3': 0 + }, + f: { + '0': 0, + '1': 0 + }, + b: {}, + _coverageSchema: '1a1c01bbd47fc00a2c39e90264f33305004495a9', + hash: 'd384017ecd51a8d90283ba0dec593332209519de' + } + var coverage = global[gcv] || (global[gcv] = {}) + + if (!coverage[path] || coverage[path].hash !== hash) { + coverage[path] = coverageData + } + + var actualCoverage = coverage[path] + + cov_6k5v991cn = function() { + return actualCoverage + } + + return actualCoverage +} + +cov_6k5v991cn() +cov_6k5v991cn().s[0]++ + +window.add = (a, b) => { + cov_6k5v991cn().f[0]++ + cov_6k5v991cn().s[1]++ + return a + b +} + +cov_6k5v991cn().s[2]++ + +window.sub = (a, b) => { + cov_6k5v991cn().f[1]++ + cov_6k5v991cn().s[3]++ + return a - b +} +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1haW4uanMiXSwibmFtZXMiOlsid2luZG93IiwiYWRkIiwiYSIsImIiLCJzdWIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBQSxNQUFNLENBQUNDLEdBQVAsR0FBYSxDQUFDQyxDQUFELEVBQUlDLENBQUosS0FBVTtBQUFBO0FBQUE7QUFBQSxTQUFBRCxDQUFDLEdBQUdDLENBQUo7QUFBSyxDQUE1Qjs7OztBQUVBSCxNQUFNLENBQUNJLEdBQVAsR0FBYSxDQUFDRixDQUFELEVBQUlDLENBQUosS0FBVTtBQUFBO0FBQUE7QUFBQSxTQUFBRCxDQUFDLEdBQUdDLENBQUo7QUFBSyxDQUE1QiIsInNvdXJjZXNDb250ZW50IjpbIndpbmRvdy5hZGQgPSAoYSwgYikgPT4gYSArIGJcblxud2luZG93LnN1YiA9IChhLCBiKSA9PiBhIC0gYlxuIl19 diff --git a/examples/one-spec/main.js b/examples/one-spec/main.js new file mode 100644 index 000000000..5dd69be2f --- /dev/null +++ b/examples/one-spec/main.js @@ -0,0 +1,3 @@ +window.add = (a, b) => a + b + +window.sub = (a, b) => a - b diff --git a/examples/one-spec/package.json b/examples/one-spec/package.json new file mode 100644 index 000000000..a3db5393f --- /dev/null +++ b/examples/one-spec/package.json @@ -0,0 +1,7 @@ +{ + "name": "example-one-spec", + "description": "Only running a single spec", + "scripts": { + "cy:open": "../../node_modules/.bin/cypress open" + } +} diff --git a/support.js b/support.js index fc2c052de..9351290f8 100644 --- a/support.js +++ b/support.js @@ -1,4 +1,7 @@ /// +// @ts-check + +const { filterSpecsFromCoverage } = require('./utils') /** * Sends collected code coverage object to the backend code @@ -53,28 +56,6 @@ const filterSupportFilesFromCoverage = totalCoverage => { return coverage } -/** - * remove coverage for the spec files themselves, - * only keep "external" application source file coverage - */ -const filterSpecsFromCoverage = totalCoverage => { - const integrationFolder = Cypress.config('integrationFolder') - const testFilePattern = Cypress.config('testFiles') - const isUsingDefaultTestPattern = testFilePattern === '**/*.*' - - const isInIntegrationFolder = filename => - filename.startsWith(integrationFolder) - const isTestFile = filename => Cypress.minimatch(filename, testFilePattern) - - const isA = (fileCoverge, filename) => isInIntegrationFolder(filename) - const isB = (fileCoverge, filename) => isTestFile(filename) - - const isTestFileFilter = isUsingDefaultTestPattern ? isA : isB - - const coverage = Cypress._.omitBy(totalCoverage, isTestFileFilter) - return coverage -} - const registerHooks = () => { let windowCoverageObjects diff --git a/utils.js b/utils.js index ba778d767..75a43f84d 100644 --- a/utils.js +++ b/utils.js @@ -1,19 +1,64 @@ -module.exports = { - /** - * Replace source-map's path by the corresponding absolute file path - * (coverage report wouldn't work with source-map path being relative - * or containing Webpack loaders and query parameters) - */ - fixSourcePathes(coverage) { - Object.values(coverage).forEach(file => { - const { path: absolutePath, inputSourceMap } = file - const fileName = /([^\/\\]+)$/.exec(absolutePath)[1] - if (!inputSourceMap || !fileName) return - - if (inputSourceMap.sourceRoot) inputSourceMap.sourceRoot = '' - inputSourceMap.sources = inputSourceMap.sources.map(source => - source.includes(fileName) ? absolutePath : source - ) - }) +/// + +/** + * remove coverage for the spec files themselves, + * only keep "external" application source file coverage + */ +const filterSpecsFromCoverage = (totalCoverage, config = Cypress.config) => { + const integrationFolder = config('integrationFolder') + const testFilePattern = config('testFiles') + + // test files chould be: + // wild card string "**/*.*" (default) + // wild card string "**/*spec.js" + // list of wild card strings or names ["**/*spec.js", "spec-one.js"] + const testFilePatterns = Array.isArray(testFilePattern) + ? testFilePattern + : [testFilePattern] + + const isUsingDefaultTestPattern = testFilePattern === '**/*.*' + + const isTestFile = filename => { + const matchedPattern = testFilePatterns.some(specPattern => + Cypress.minimatch(filename, specPattern) + ) + const matchedEndOfPath = testFilePatterns.some(specPattern => + filename.endsWith(specPattern) + ) + return matchedPattern || matchedEndOfPath } + + const isInIntegrationFolder = filename => + filename.startsWith(integrationFolder) + + const isA = (fileCoverge, filename) => isInIntegrationFolder(filename) + const isB = (fileCoverge, filename) => isTestFile(filename) + + const isTestFileFilter = isUsingDefaultTestPattern ? isA : isB + + const coverage = Cypress._.omitBy(totalCoverage, isTestFileFilter) + return coverage +} + +/** + * Replace source-map's path by the corresponding absolute file path + * (coverage report wouldn't work with source-map path being relative + * or containing Webpack loaders and query parameters) + */ +function fixSourcePathes(coverage) { + Object.values(coverage).forEach(file => { + const { path: absolutePath, inputSourceMap } = file + const fileName = /([^\/\\]+)$/.exec(absolutePath)[1] + if (!inputSourceMap || !fileName) return + + if (inputSourceMap.sourceRoot) inputSourceMap.sourceRoot = '' + inputSourceMap.sources = inputSourceMap.sources.map(source => + source.includes(fileName) ? absolutePath : source + ) + }) +} + +module.exports = { + fixSourcePathes, + filterSpecsFromCoverage } From 0a4af8b7ddfac1a6b5a4ad9034ce73f5346e0e96 Mon Sep 17 00:00:00 2001 From: Gleb Bahmutov Date: Tue, 7 Apr 2020 20:04:53 -0400 Subject: [PATCH 48/85] Move full stack coverage example (#183) * rename to backend * update circle file * fix circle yml * remove extra package scripts --- .circleci/config.yml | 26 ++++++++++--------- README.md | 6 +++-- examples/backend/README.md | 3 +++ examples/backend/cypress.json | 9 +++++++ .../backend/cypress/integration}/spec.js | 0 examples/backend/cypress/plugins/index.js | 5 ++++ examples/backend/cypress/support/index.js | 1 + examples/backend/package.json | 11 ++++++++ .../backend/server}/index.html | 0 .../backend/server/server.js | 2 +- package.json | 3 --- 11 files changed, 48 insertions(+), 18 deletions(-) create mode 100644 examples/backend/README.md create mode 100644 examples/backend/cypress.json rename {cypress/test-backend => examples/backend/cypress/integration}/spec.js (100%) create mode 100644 examples/backend/cypress/plugins/index.js create mode 100644 examples/backend/cypress/support/index.js create mode 100644 examples/backend/package.json rename {test-backend => examples/backend/server}/index.html (100%) rename test-backend/index.js => examples/backend/server/server.js (92%) diff --git a/.circleci/config.yml b/.circleci/config.yml index bccc2604a..733dc2830 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -75,16 +75,15 @@ workflows: - run: npx nyc report --check-coverage true --lines 100 --include cypress/unit.js - cypress/run: - # TODO switch to separate example in "examples/..." name: backend coverage requires: - cypress/install - # grab the workspace created by cypress/install job attach-workspace: true - - start: npm run start:test:backend - command: npx cypress run --config-file cypress-backend.json + working_directory: examples/backend + start: npm start + wait-on: 'http://localhost:3003' + command: '../../node_modules/.bin/cypress run' # there are no jobs to follow this one # so no need to save the workspace files (saves time) @@ -94,12 +93,16 @@ workflows: # you can click on it in the CircleCI UI # to see live static HTML site - store_artifacts: - path: coverage - # print code coverage summary to the terminal - # and make sure there the coverage is above certain limit - - run: npx nyc report --check-coverage true --lines 72 - # and look at the server index file - should be fully covered - - run: npx nyc report --check-coverage true --lines 100 --include test-backend/index.js + path: examples/backend/coverage + - run: + command: npm run coverage:report + working_directory: examples/backend + - run: + name: Check code coverage 📈 + command: | + node ../../scripts/check-coverage server.js + node ../../scripts/only-covered server.js + working_directory: examples/backend - cypress/run: attach-workspace: true @@ -180,7 +183,6 @@ workflows: - run: command: npm run coverage:check working_directory: examples/ts-example - - run: name: Check code coverage 📈 command: | diff --git a/README.md b/README.md index 5cdc0009c..4d1eb56d2 100644 --- a/README.md +++ b/README.md @@ -134,7 +134,9 @@ module.exports = (on, config) => { ## Instrument backend code -You can also instrument your server-side code and produce combined coverage report that covers both the backend and frontend code. +Example in [examples/backend](examples/backend) folder. + +You can also instrument your server-side code and produce combined coverage report that covers both the backend and frontend code 1. Run the server code with instrumentation. The simplest way is to use [nyc](https://github.com/istanbuljs/nyc). If normally you run `node src/server` then to run instrumented version you can do `nyc --silent node src/server`. 2. Add an endpoint that returns collected coverage. If you are using Express, you can simply do @@ -184,7 +186,7 @@ if (global.__coverage__) { } ``` -That should be enough - the code coverage from the server will be requested at the end of the test run and merged with the client-side code coverage, producing a combined report +That should be enough - the code coverage from the server will be requested at the end of the test run and merged with the client-side code coverage, producing a combined report. ## Custom report folder diff --git a/examples/backend/README.md b/examples/backend/README.md new file mode 100644 index 000000000..65c8eac43 --- /dev/null +++ b/examples/backend/README.md @@ -0,0 +1,3 @@ +# example: backend + +> Getting code coverage from backend diff --git a/examples/backend/cypress.json b/examples/backend/cypress.json new file mode 100644 index 000000000..3fdedda2b --- /dev/null +++ b/examples/backend/cypress.json @@ -0,0 +1,9 @@ +{ + "fixturesFolder": false, + "baseUrl": "http://localhost:3003", + "env": { + "codeCoverage": { + "url": "http://localhost:3003/__coverage__" + } + } +} diff --git a/cypress/test-backend/spec.js b/examples/backend/cypress/integration/spec.js similarity index 100% rename from cypress/test-backend/spec.js rename to examples/backend/cypress/integration/spec.js diff --git a/examples/backend/cypress/plugins/index.js b/examples/backend/cypress/plugins/index.js new file mode 100644 index 000000000..b17c48db1 --- /dev/null +++ b/examples/backend/cypress/plugins/index.js @@ -0,0 +1,5 @@ +module.exports = (on, config) => { + require('../../../../task')(on, config) + on('file:preprocessor', require('../../../../use-babelrc')) + return config +} diff --git a/examples/backend/cypress/support/index.js b/examples/backend/cypress/support/index.js new file mode 100644 index 000000000..dd60efa28 --- /dev/null +++ b/examples/backend/cypress/support/index.js @@ -0,0 +1 @@ +import '../../../../support' diff --git a/examples/backend/package.json b/examples/backend/package.json new file mode 100644 index 000000000..c39c662fd --- /dev/null +++ b/examples/backend/package.json @@ -0,0 +1,11 @@ +{ + "name": "example-backend", + "description": "Code coverage for backend", + "devDependencies": {}, + "scripts": { + "start": "../../node_modules/.bin/nyc --silent node server/server", + "cy:open": "../../node_modules/.bin/cypress open", + "dev": "../../node_modules/.bin/start-test 3003 cy:open", + "coverage:report": "../../node_modules/.bin/nyc report" + } +} diff --git a/test-backend/index.html b/examples/backend/server/index.html similarity index 100% rename from test-backend/index.html rename to examples/backend/server/index.html diff --git a/test-backend/index.js b/examples/backend/server/server.js similarity index 92% rename from test-backend/index.js rename to examples/backend/server/server.js index 542860a93..7e4786e7c 100644 --- a/test-backend/index.js +++ b/examples/backend/server/server.js @@ -8,7 +8,7 @@ const port = 3003 if (global.__coverage__) { console.log('have code coverage, will add middleware for express') console.log(`to fetch: GET :${port}/__coverage__`) - require('../middleware/express')(app) + require('../../../middleware/express')(app) } app.use(express.static(__dirname)) diff --git a/package.json b/package.json index b5dd71797..a0ac8603a 100644 --- a/package.json +++ b/package.json @@ -14,9 +14,6 @@ "dev:no:coverage": "start-test 1234 'cypress open --env coverage=false'", "format": "prettier --write '*.js'", "format:check": "prettier --check '*.js'", - "start:test:backend": "nyc --silent node test-backend", - "cy:backend": "cypress open --config-file cypress-backend.json", - "dev:backend": "start-test start:test:backend 3003 cy:backend", "check:markdown": "find *.md -exec npx markdown-link-check {} \\;", "effective:config": "circleci config process .circleci/config.yml | sed /^#/d" }, From 53ff53be142a64ca1f943c72affa572da0ddbcdc Mon Sep 17 00:00:00 2001 From: Gleb Bahmutov Date: Wed, 8 Apr 2020 17:28:02 -0400 Subject: [PATCH 49/85] =?UTF-8?q?fix:=20do=20not=20ask=20for=20backend=20c?= =?UTF-8?q?ode=20coverage=20from=20non-integration=20s=E2=80=A6=20(#186)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- support.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/support.js b/support.js index 9351290f8..b061b6d48 100644 --- a/support.js +++ b/support.js @@ -135,7 +135,10 @@ const registerHooks = () => { // we should grab it once after all tests finish const baseUrl = Cypress.config('baseUrl') || cy.state('window').origin const runningEndToEndTests = baseUrl !== Cypress.config('proxyUrl') - if (runningEndToEndTests) { + const specType = Cypress._.get(Cypress.spec, 'specType', 'integration') + const isIntegrationSpec = specType === 'integration' + + if (runningEndToEndTests && isIntegrationSpec) { // we can only request server-side code coverage // if we are running end-to-end tests, // otherwise where do we send the request? From 50423ccb644e186db31f03c277292afb3adf016d Mon Sep 17 00:00:00 2001 From: Gleb Bahmutov Date: Thu, 9 Apr 2020 17:26:46 -0400 Subject: [PATCH 50/85] Add fullstack example (#187) * add more links to internal examples * start fullstack example * instrument specs on the fly * add screenshot and unit tests * add circle job * add link to example from README --- .circleci/config.yml | 33 ++++ README.md | 7 +- examples/fullstack/README.md | 21 +++ examples/fullstack/cypress.json | 9 ++ .../fullstack/cypress/integration/spec.js | 23 +++ examples/fullstack/cypress/plugins/index.js | 6 + examples/fullstack/cypress/support/index.js | 1 + examples/fullstack/images/fullstack.png | Bin 0 -> 193203 bytes examples/fullstack/main.js | 3 + examples/fullstack/package.json | 11 ++ examples/fullstack/server/index.html | 4 + .../fullstack/server/main-instrumented.js | 146 ++++++++++++++++++ examples/fullstack/server/server.js | 21 +++ examples/fullstack/string-utils.js | 10 ++ 14 files changed, 294 insertions(+), 1 deletion(-) create mode 100644 examples/fullstack/README.md create mode 100644 examples/fullstack/cypress.json create mode 100644 examples/fullstack/cypress/integration/spec.js create mode 100644 examples/fullstack/cypress/plugins/index.js create mode 100644 examples/fullstack/cypress/support/index.js create mode 100644 examples/fullstack/images/fullstack.png create mode 100644 examples/fullstack/main.js create mode 100644 examples/fullstack/package.json create mode 100644 examples/fullstack/server/index.html create mode 100644 examples/fullstack/server/main-instrumented.js create mode 100644 examples/fullstack/server/server.js create mode 100644 examples/fullstack/string-utils.js diff --git a/.circleci/config.yml b/.circleci/config.yml index 733dc2830..ee5db1471 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -104,6 +104,38 @@ workflows: node ../../scripts/only-covered server.js working_directory: examples/backend + - cypress/run: + name: fullstack coverage + requires: + - cypress/install + # grab the workspace created by cypress/install job + attach-workspace: true + working_directory: examples/fullstack + start: npm start + wait-on: 'http://localhost:3003' + command: '../../node_modules/.bin/cypress run' + + # there are no jobs to follow this one + # so no need to save the workspace files (saves time) + no-workspace: true + post-steps: + # store the created coverage report folder + # you can click on it in the CircleCI UI + # to see live static HTML site + - store_artifacts: + path: examples/backend/coverage + - run: + command: npm run report + working_directory: examples/fullstack + - run: + name: Check code coverage 📈 + command: | + node ../../scripts/check-coverage server.js + node ../../scripts/check-coverage main.js + node ../../scripts/check-coverage string-utils.js + node ../../scripts/only-covered server.js main.js string-utils.js + working_directory: examples/fullstack + - cypress/run: attach-workspace: true name: example-before-each-visit @@ -322,6 +354,7 @@ workflows: - unit - frontend coverage - backend coverage + - fullstack coverage - example-before-each-visit - example-before-all-visit - example-ts-example diff --git a/README.md b/README.md index 4d1eb56d2..c7102a164 100644 --- a/README.md +++ b/README.md @@ -332,8 +332,13 @@ npm run dev:no:coverage ### Internal examples -- [examples/before-each-visit](examples/before-each-visit) checks if code coverage correctly keeps track of code when doing `cy.visit` before each test +Full examples we use for testing in this repository: + +- [examples/backend](examples/backend) only instruments the backend Node server and saves the coverage report +- [examples/fullstack](examples/fullstack) instruments and merges backend, e2e and unit test coverage into a single report - [examples/before-all-visit](examples/before-all-visit) checks if code coverage works when `cy.visit` is made once in the `before` hook +- [examples/before-each-visit](examples/before-each-visit) checks if code coverage correctly keeps track of code when doing `cy.visit` before each test +- [examples/one-spec.js](examples/one-spec.js) confirms that coverage is collected and filtered correctly if the user only executes a single Cypress test - [examples/ts-example](examples/ts-example) uses Babel + Parcel to instrument and serve TypeScript file ### External examples diff --git a/examples/fullstack/README.md b/examples/fullstack/README.md new file mode 100644 index 000000000..b2e554ded --- /dev/null +++ b/examples/fullstack/README.md @@ -0,0 +1,21 @@ +# example: fullstack + +> Combined code coverage from the backend code, and e2e and unit tests + +This example runs instrumented server code, that serves instrumented frontend code, and instruments the unit tests on the fly. The final report combines all 3 sources of information. + +To run + +```sh +$ npm run dev +``` + +You should see messages from the plugin when it saves each coverage object + +![Coverage messages](images/fullstack.png) + +In the produced report, you should see + +- `server/server.js` coverage for backend +- `main.js` coverage from end-to-end tests +- `string-utils.js` coverage from unit tests diff --git a/examples/fullstack/cypress.json b/examples/fullstack/cypress.json new file mode 100644 index 000000000..3fdedda2b --- /dev/null +++ b/examples/fullstack/cypress.json @@ -0,0 +1,9 @@ +{ + "fixturesFolder": false, + "baseUrl": "http://localhost:3003", + "env": { + "codeCoverage": { + "url": "http://localhost:3003/__coverage__" + } + } +} diff --git a/examples/fullstack/cypress/integration/spec.js b/examples/fullstack/cypress/integration/spec.js new file mode 100644 index 000000000..7b4d9d7d5 --- /dev/null +++ b/examples/fullstack/cypress/integration/spec.js @@ -0,0 +1,23 @@ +/// + +// load extra files to instrument on the fly +const { reverse } = require('../../string-utils') + +it('uses frontend code and calls backend', () => { + cy.visit('/') + cy.contains('Page body').should('be.visible') + + cy.window() + .invoke('add', 2, 3) + .should('equal', 5) + + cy.window() + .invoke('sub', 2, 3) + .should('equal', -1) + + cy.log('**backend request**') + cy.request('/hello') + + cy.log('**unit test**') + expect(reverse('Hello')).to.equal('olleH') +}) diff --git a/examples/fullstack/cypress/plugins/index.js b/examples/fullstack/cypress/plugins/index.js new file mode 100644 index 000000000..e459c8114 --- /dev/null +++ b/examples/fullstack/cypress/plugins/index.js @@ -0,0 +1,6 @@ +module.exports = (on, config) => { + require('../../../../task')(on, config) + // instrument loaded spec files (and the application code loaded from them) + on('file:preprocessor', require('../../../../use-browserify-istanbul')) + return config +} diff --git a/examples/fullstack/cypress/support/index.js b/examples/fullstack/cypress/support/index.js new file mode 100644 index 000000000..dd60efa28 --- /dev/null +++ b/examples/fullstack/cypress/support/index.js @@ -0,0 +1 @@ +import '../../../../support' diff --git a/examples/fullstack/images/fullstack.png b/examples/fullstack/images/fullstack.png new file mode 100644 index 0000000000000000000000000000000000000000..7a59b082ed765039fbd959d7f2b7996991e75f0c GIT binary patch literal 193203 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 DcC+Pn literal 0 HcmV?d00001 diff --git a/examples/fullstack/main.js b/examples/fullstack/main.js new file mode 100644 index 000000000..5dd69be2f --- /dev/null +++ b/examples/fullstack/main.js @@ -0,0 +1,3 @@ +window.add = (a, b) => a + b + +window.sub = (a, b) => a - b diff --git a/examples/fullstack/package.json b/examples/fullstack/package.json new file mode 100644 index 000000000..b44811b0c --- /dev/null +++ b/examples/fullstack/package.json @@ -0,0 +1,11 @@ +{ + "name": "example-fullstack", + "description": "Combined code coverage from the backend code, and e2e and unit tests", + "devDependencies": {}, + "scripts": { + "start": "../../node_modules/.bin/nyc --silent node server/server", + "cy:open": "../../node_modules/.bin/cypress open", + "dev": "../../node_modules/.bin/start-test 3003 cy:open", + "report": "../../node_modules/.bin/nyc report --reporter text" + } +} diff --git a/examples/fullstack/server/index.html b/examples/fullstack/server/index.html new file mode 100644 index 000000000..b6691c8af --- /dev/null +++ b/examples/fullstack/server/index.html @@ -0,0 +1,4 @@ + + Page body + + diff --git a/examples/fullstack/server/main-instrumented.js b/examples/fullstack/server/main-instrumented.js new file mode 100644 index 000000000..0550e9bb7 --- /dev/null +++ b/examples/fullstack/server/main-instrumented.js @@ -0,0 +1,146 @@ +function cov_6k5v991cn() { + var path = 'main.js' + var hash = 'd384017ecd51a8d90283ba0dec593332209519de' + var global = new Function('return this')() + var gcv = '__coverage__' + var coverageData = { + path: 'main.js', + statementMap: { + '0': { + start: { + line: 1, + column: 0 + }, + end: { + line: 1, + column: 28 + } + }, + '1': { + start: { + line: 1, + column: 23 + }, + end: { + line: 1, + column: 28 + } + }, + '2': { + start: { + line: 3, + column: 0 + }, + end: { + line: 3, + column: 28 + } + }, + '3': { + start: { + line: 3, + column: 23 + }, + end: { + line: 3, + column: 28 + } + } + }, + fnMap: { + '0': { + name: '(anonymous_0)', + decl: { + start: { + line: 1, + column: 13 + }, + end: { + line: 1, + column: 14 + } + }, + loc: { + start: { + line: 1, + column: 23 + }, + end: { + line: 1, + column: 28 + } + }, + line: 1 + }, + '1': { + name: '(anonymous_1)', + decl: { + start: { + line: 3, + column: 13 + }, + end: { + line: 3, + column: 14 + } + }, + loc: { + start: { + line: 3, + column: 23 + }, + end: { + line: 3, + column: 28 + } + }, + line: 3 + } + }, + branchMap: {}, + s: { + '0': 0, + '1': 0, + '2': 0, + '3': 0 + }, + f: { + '0': 0, + '1': 0 + }, + b: {}, + _coverageSchema: '1a1c01bbd47fc00a2c39e90264f33305004495a9', + hash: 'd384017ecd51a8d90283ba0dec593332209519de' + } + var coverage = global[gcv] || (global[gcv] = {}) + + if (!coverage[path] || coverage[path].hash !== hash) { + coverage[path] = coverageData + } + + var actualCoverage = coverage[path] + + cov_6k5v991cn = function() { + return actualCoverage + } + + return actualCoverage +} + +cov_6k5v991cn() +cov_6k5v991cn().s[0]++ + +window.add = (a, b) => { + cov_6k5v991cn().f[0]++ + cov_6k5v991cn().s[1]++ + return a + b +} + +cov_6k5v991cn().s[2]++ + +window.sub = (a, b) => { + cov_6k5v991cn().f[1]++ + cov_6k5v991cn().s[3]++ + return a - b +} +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1haW4uanMiXSwibmFtZXMiOlsid2luZG93IiwiYWRkIiwiYSIsImIiLCJzdWIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBQSxNQUFNLENBQUNDLEdBQVAsR0FBYSxDQUFDQyxDQUFELEVBQUlDLENBQUosS0FBVTtBQUFBO0FBQUE7QUFBQSxTQUFBRCxDQUFDLEdBQUdDLENBQUo7QUFBSyxDQUE1Qjs7OztBQUVBSCxNQUFNLENBQUNJLEdBQVAsR0FBYSxDQUFDRixDQUFELEVBQUlDLENBQUosS0FBVTtBQUFBO0FBQUE7QUFBQSxTQUFBRCxDQUFDLEdBQUdDLENBQUo7QUFBSyxDQUE1QiIsInNvdXJjZXNDb250ZW50IjpbIndpbmRvdy5hZGQgPSAoYSwgYikgPT4gYSArIGJcblxud2luZG93LnN1YiA9IChhLCBiKSA9PiBhIC0gYlxuIl19 diff --git a/examples/fullstack/server/server.js b/examples/fullstack/server/server.js new file mode 100644 index 000000000..7e4786e7c --- /dev/null +++ b/examples/fullstack/server/server.js @@ -0,0 +1,21 @@ +const express = require('express') +const app = express() +const port = 3003 + +// if there is code coverage information +// then expose an endpoint that returns it +/* istanbul ignore next */ +if (global.__coverage__) { + console.log('have code coverage, will add middleware for express') + console.log(`to fetch: GET :${port}/__coverage__`) + require('../../../middleware/express')(app) +} + +app.use(express.static(__dirname)) + +app.get('/hello', (req, res) => { + console.log('sending hello world') + res.send('Hello World!') +}) + +app.listen(port, () => console.log(`Example app listening on port ${port}!`)) diff --git a/examples/fullstack/string-utils.js b/examples/fullstack/string-utils.js new file mode 100644 index 000000000..0d14f807c --- /dev/null +++ b/examples/fullstack/string-utils.js @@ -0,0 +1,10 @@ +// reverses a string +const reverse = s => { + return s + .split('') + .reverse() + .join('') +} +module.exports = { + reverse +} From 118e469091a2d0b7f6b49392334287074ecb9d5e Mon Sep 17 00:00:00 2001 From: Gleb Bahmutov Date: Thu, 9 Apr 2020 17:47:20 -0400 Subject: [PATCH 51/85] feat: automatically resolve non-absolute paths to files (#189) * feat: automatically try to resolve relative paths to files * only save coverage file if it has been updated --- .circleci/config.yml | 6 +++--- task.js | 33 ++++++++++++++++++++++++++++++++- 2 files changed, 35 insertions(+), 4 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index ee5db1471..96b131a3c 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -130,9 +130,9 @@ workflows: - run: name: Check code coverage 📈 command: | - node ../../scripts/check-coverage server.js - node ../../scripts/check-coverage main.js - node ../../scripts/check-coverage string-utils.js + node ../../scripts/check-coverage fullstack/server/server.js + node ../../scripts/check-coverage fullstack/main.js + node ../../scripts/check-coverage fullstack/string-utils.js node ../../scripts/only-covered server.js main.js string-utils.js working_directory: examples/fullstack diff --git a/task.js b/task.js index 206548c36..f56219601 100644 --- a/task.js +++ b/task.js @@ -1,6 +1,6 @@ // @ts-check const istanbul = require('istanbul-lib-coverage') -const { join, resolve } = require('path') +const { join, resolve, isAbsolute } = require('path') const { existsSync, mkdirSync, readFileSync, writeFileSync } = require('fs') const execa = require('execa') const fs = require('fs') @@ -37,6 +37,35 @@ function saveCoverage(coverage) { writeFileSync(nycFilename, JSON.stringify(coverage, null, 2)) } +/** + * Looks at all coverage objects in the given JSON coverage file + * and if the file is relative, and exists, changes its path to + * be absolute. + */ +function resolvePaths(nycFilename) { + const nycCoverage = JSON.parse(readFileSync(nycFilename, 'utf8')) + let changed + Object.keys(nycCoverage).forEach(key => { + const coverage = nycCoverage[key] + if (coverage.path && !isAbsolute(coverage.path)) { + if (existsSync(coverage.path)) { + debug('resolving path %s', coverage.path) + coverage.path = resolve(coverage.path) + changed = true + } + } + }) + + if (changed) { + debug('saving updated file %s', nycFilename) + writeFileSync( + nycFilename, + JSON.stringify(nycCoverage, null, 2) + '\n', + 'utf8' + ) + } +} + const tasks = { /** * Clears accumulated code coverage information. @@ -97,6 +126,8 @@ const tasks = { return null } + resolvePaths(nycFilename) + if (customNycReportScript) { debug( 'saving coverage report using script "%s" from package.json, command: %s', From f1ce847312461788a2ca45380552200ccc64e7e6 Mon Sep 17 00:00:00 2001 From: Gleb Bahmutov Date: Fri, 10 Apr 2020 14:47:32 -0400 Subject: [PATCH 52/85] use check-code-coverage module (#190) --- .circleci/config.yml | 42 ++++++++++++++++---------------- package-lock.json | 9 +++++++ package.json | 1 + scripts/check-coverage.js | 47 ------------------------------------ scripts/only-covered.js | 51 --------------------------------------- 5 files changed, 31 insertions(+), 119 deletions(-) delete mode 100644 scripts/check-coverage.js delete mode 100644 scripts/only-covered.js diff --git a/.circleci/config.yml b/.circleci/config.yml index 96b131a3c..0d20df9f8 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -100,8 +100,8 @@ workflows: - run: name: Check code coverage 📈 command: | - node ../../scripts/check-coverage server.js - node ../../scripts/only-covered server.js + ../../node_modules/.bin/check-coverage server.js + ../../node_modules/.bin/only-covered server.js working_directory: examples/backend - cypress/run: @@ -130,10 +130,10 @@ workflows: - run: name: Check code coverage 📈 command: | - node ../../scripts/check-coverage fullstack/server/server.js - node ../../scripts/check-coverage fullstack/main.js - node ../../scripts/check-coverage fullstack/string-utils.js - node ../../scripts/only-covered server.js main.js string-utils.js + ../../node_modules/.bin/check-coverage fullstack/server/server.js + ../../node_modules/.bin/check-coverage fullstack/main.js + ../../node_modules/.bin/check-coverage fullstack/string-utils.js + ../../node_modules/.bin/only-covered server.js main.js string-utils.js working_directory: examples/fullstack - cypress/run: @@ -161,8 +161,8 @@ workflows: - run: name: Check code coverage 📈 command: | - node ../../scripts/check-coverage main.js - node ../../scripts/only-covered main.js + ../../node_modules/.bin/check-coverage main.js + ../../node_modules/.bin/only-covered main.js working_directory: examples/before-each-visit - cypress/run: @@ -190,8 +190,8 @@ workflows: - run: name: Check code coverage 📈 command: | - node ../../scripts/check-coverage main.js - node ../../scripts/only-covered main.js + ../../node_modules/.bin/check-coverage main.js + ../../node_modules/.bin/only-covered main.js working_directory: examples/before-all-visit - cypress/run: @@ -218,8 +218,8 @@ workflows: - run: name: Check code coverage 📈 command: | - node ../../scripts/check-coverage main.ts - node ../../scripts/only-covered main.ts + ../../node_modules/.bin/check-coverage main.ts + ../../node_modules/.bin/only-covered main.ts working_directory: examples/ts-example - cypress/run: @@ -250,9 +250,9 @@ workflows: - run: name: Check code coverage 📈 command: | - node ../../scripts/check-coverage main.js - node ../../scripts/check-coverage unit-utils.js - node ../../scripts/only-covered main.js unit-utils.js + ../../node_modules/.bin/check-coverage main.js + ../../node_modules/.bin/check-coverage unit-utils.js + ../../node_modules/.bin/only-covered main.js unit-utils.js working_directory: examples/same-folder - cypress/run: @@ -282,8 +282,8 @@ workflows: - run: name: Check code coverage 📈 command: | - node ../../scripts/check-coverage main.js - node ../../scripts/only-covered main.js + ../../node_modules/.bin/check-coverage main.js + ../../node_modules/.bin/only-covered main.js working_directory: examples/support-files - cypress/run: @@ -311,8 +311,8 @@ workflows: - run: name: Check code coverage 📈 command: | - node ../../scripts/check-coverage main.js - node ../../scripts/only-covered main.js + ../../node_modules/.bin/check-coverage main.js + ../../node_modules/.bin/only-covered main.js working_directory: examples/use-plugins-and-support - cypress/run: @@ -340,8 +340,8 @@ workflows: - run: name: Check code coverage 📈 command: | - node ../../scripts/check-coverage main.js - node ../../scripts/only-covered main.js + ../../node_modules/.bin/check-coverage main.js + ../../node_modules/.bin/only-covered main.js working_directory: examples/one-spec - publish: diff --git a/package-lock.json b/package-lock.json index 85f4d6a29..7a4094928 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4468,6 +4468,15 @@ } } }, + "check-code-coverage": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/check-code-coverage/-/check-code-coverage-1.0.1.tgz", + "integrity": "sha512-gQ61+sUoChj5krJoIi2CYWqrnLrol7VVRV5XksslabXfX4tle9KqARVuL6NqbcKSa2yQ1eN2kloKDwmib8ut9g==", + "dev": true, + "requires": { + "lodash": "4.17.15" + } + }, "check-more-types": { "version": "2.24.0", "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", diff --git a/package.json b/package.json index a0ac8603a..53a008c33 100644 --- a/package.json +++ b/package.json @@ -56,6 +56,7 @@ "@babel/core": "7.9.0", "@istanbuljs/nyc-config-typescript": "1.0.1", "babel-plugin-istanbul": "6.0.0", + "check-code-coverage": "1.0.1", "cypress": "4.3.0", "express": "4.17.1", "lodash": "4.17.15", diff --git a/scripts/check-coverage.js b/scripts/check-coverage.js deleted file mode 100644 index 4ff6bad11..000000000 --- a/scripts/check-coverage.js +++ /dev/null @@ -1,47 +0,0 @@ -const { join } = require('path') - -const filename = process.argv[2] -if (!filename) { - console.error('Usage: node %s ', __filename) - process.exit(1) -} -const coverageFilename = join(process.cwd(), '.nyc_output', 'out.json') -const coverage = require(coverageFilename) -const fileCoverageKey = Object.keys(coverage).find(name => { - const fileCover = coverage[name] - if (fileCover.path.endsWith(filename)) { - return fileCover - } -}) - -if (!fileCoverageKey) { - console.error( - 'Could not find file %s in coverage in file %s', - filename, - coverageFilename - ) - process.exit(1) -} - -const fileCoverage = coverage[fileCoverageKey] -const statementCounters = fileCoverage.s -const isThereUncoveredStatement = Object.keys(statementCounters).some( - (k, key) => { - return statementCounters[key] === 0 - } -) -if (isThereUncoveredStatement) { - console.error( - 'file %s has statements that were not covered by tests', - fileCoverage.path - ) - console.log('statement counters %o', statementCounters) - - process.exit(1) -} - -console.log( - '✅ All statements in file %s (found for %s) were covered', - fileCoverage.path, - filename -) diff --git a/scripts/only-covered.js b/scripts/only-covered.js deleted file mode 100644 index 073d397fe..000000000 --- a/scripts/only-covered.js +++ /dev/null @@ -1,51 +0,0 @@ -const { join } = require('path') -const _ = require('lodash') - -const filenames = process.argv.slice(2) -if (!filenames.length) { - console.error('Usage: node %s ', __filename) - process.exit(1) -} - -const shouldBeCovered = filepath => - filenames.some(name => filepath.endsWith(name)) - -const coverageFilename = join(process.cwd(), '.nyc_output', 'out.json') -const coverage = require(coverageFilename) - -const coveredFilepaths = Object.keys(coverage).map(name => coverage[name].path) - -// console.log(coveredFilepaths) - -const [covered, extraCoveredFiles] = _.partition( - coveredFilepaths, - shouldBeCovered -) - -if (extraCoveredFiles.length) { - console.error('Error: found extra covered files 🔥') - console.error('Expected the following files in coverage results') - console.error(filenames.join('\n')) - console.error('extra files covered 🔥') - console.error(extraCoveredFiles.join('\n')) - process.exit(1) -} - -if (covered.length < filenames.length) { - console.error('Error: expected all files from the list to be covered 🔥') - console.error('Expected the following files in coverage results') - console.error(filenames.join('\n')) - console.error('But found only these files to be covered') - console.error(covered.join('\n')) - - console.error('Files missing from the coverage 🔥') - const missingFiles = filenames.filter( - filename => - !covered.some(coveredFilename => coveredFilename.endsWith(filename)) - ) - console.error(missingFiles.join('\n')) - - process.exit(1) -} - -console.log('✅ All and only expected files were covered') From b4c662b59d465af62bac9252acbc8bbd10de36e7 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sat, 11 Apr 2020 04:08:55 +0000 Subject: [PATCH 53/85] chore(deps): update dependency markdown-link-check to v3.8.1 --- package-lock.json | 178 ++++++++++++++++++++++++++++++++++++++++------ package.json | 2 +- 2 files changed, 156 insertions(+), 24 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7a4094928..7fd63bd3a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8906,15 +8906,15 @@ "dev": true }, "link-check": { - "version": "4.4.7", - "resolved": "https://registry.npmjs.org/link-check/-/link-check-4.4.7.tgz", - "integrity": "sha512-E5MJf3+4OiHJzqDw9CQpOeJT3yOoKUxLHVaPPzNPXvaYPJ20C5MRzk1lPoojWnf5xwoRZjK+ydzfq2kPTwJr/g==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/link-check/-/link-check-4.5.0.tgz", + "integrity": "sha512-7PWHakA/+O5uaZ9yD290fiG2PUK9weoHAMgtoH3VPllL8ukYHe1YEbwgK9jjnUSE7Xa3zgT41mg+7TnZAPLxkQ==", "dev": true, "requires": { "is-relative-url": "^3.0.0", "isemail": "^3.2.0", "ms": "^2.1.2", - "request": "^2.88.0" + "request": "^2.88.2" }, "dependencies": { "ms": { @@ -8922,6 +8922,44 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + } + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } } } }, @@ -9332,42 +9370,136 @@ } }, "markdown-link-check": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/markdown-link-check/-/markdown-link-check-3.8.0.tgz", - "integrity": "sha512-tpBlUsnJfJ5xMHAjBC/10s8Un/WT/FmF+xXaZjeaegESmjcPlEcxZ+UuCtxArETovLS5gZ8lZXzdhgslHziLsg==", + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/markdown-link-check/-/markdown-link-check-3.8.1.tgz", + "integrity": "sha512-R6k8ytdJZePDAdb8NT0NvrNvu6n25IwLPIoJ4guHWC5yqyTlnUpRT7j3XE4ioBXwqOhG/LlUcuckD621kZkl4w==", "dev": true, "requires": { - "async": "^3.1.0", - "chalk": "^2.4.2", - "commander": "^3.0.2", - "link-check": "^4.4.6", + "async": "^3.2.0", + "chalk": "^4.0.0", + "commander": "^5.0.0", + "link-check": "^4.5.0", "lodash": "^4.17.15", - "markdown-link-extractor": "^1.2.2", + "markdown-link-extractor": "^1.2.3", "progress": "^2.0.3", - "request": "^2.88.0" + "request": "^2.88.2" }, "dependencies": { + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "async": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz", + "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==", + "dev": true + }, + "chalk": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "commander": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", - "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.0.0.tgz", + "integrity": "sha512-JrDGPAKjMGSP1G0DUoaceEJ3DZgAfr/q6X7FVk4+U5KxUSKviYGM2k6zWkfyyBHy5rAtzgYJFa1ro2O9PtoxwQ==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + } + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } } } }, "markdown-link-extractor": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/markdown-link-extractor/-/markdown-link-extractor-1.2.2.tgz", - "integrity": "sha512-VYDUhlC70hKl0coCY6dXyJ4OCRAX5dTh0/oSTdidhYS7dYIJ9kYAez6KR0vc3HWySMuo564J1rN0NOAPBDI0iA==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/markdown-link-extractor/-/markdown-link-extractor-1.2.3.tgz", + "integrity": "sha512-BGgBPPNjRpwKzkMxuY5YG2ntPmSL8UMnGiYxRR/9etK3ABLv9SsKHt70PUxv6MaBSC3TnpRsvcIOmnCFWvjcRA==", "dev": true, "requires": { - "marked": "^0.7.0" + "marked": "^0.8.2" }, "dependencies": { "marked": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-0.7.0.tgz", - "integrity": "sha512-c+yYdCZJQrsRjTPhUx7VKkApw9bwDkNbHUKo1ovgcfDjb2kc8rLuRbIFyXL5WOEUwzSSKo3IXpph2K6DqB/KZg==", + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.8.2.tgz", + "integrity": "sha512-EGwzEeCcLniFX51DhTpmTom+dSA/MG/OBUDjnWtHbEnjAH180VzUeAw+oE4+Zv+CoYBWyRlYOTR0N8SO9R1PVw==", "dev": true } } diff --git a/package.json b/package.json index 53a008c33..79888dc1f 100644 --- a/package.json +++ b/package.json @@ -60,7 +60,7 @@ "cypress": "4.3.0", "express": "4.17.1", "lodash": "4.17.15", - "markdown-link-check": "3.8.0", + "markdown-link-check": "3.8.1", "parcel-bundler": "1.12.4", "prettier": "1.19.1", "semantic-release": "17.0.4", From d71f32aae2f7f3e5d557f39bbd1f5e1029cbda9c Mon Sep 17 00:00:00 2001 From: Gleb Bahmutov Date: Wed, 15 Apr 2020 10:29:07 -0400 Subject: [PATCH 54/85] feat: read nyc report options from package 192 (#193) * feat: support include and exclude nyc in package * add CI example --- .circleci/config.yml | 32 +++++++++++++++++++ examples/exclude-files/.babelrc | 3 ++ examples/exclude-files/README.md | 3 ++ examples/exclude-files/cypress.json | 5 +++ .../exclude-files/cypress/integration/spec.js | 9 ++++++ .../exclude-files/cypress/plugins/index.js | 5 +++ .../exclude-files/cypress/support/commands.js | 2 ++ .../exclude-files/cypress/support/index.js | 1 + examples/exclude-files/index.html | 17 ++++++++++ examples/exclude-files/main.js | 3 ++ examples/exclude-files/package.json | 15 +++++++++ examples/exclude-files/second.js | 7 ++++ task.js | 5 ++- 13 files changed, 106 insertions(+), 1 deletion(-) create mode 100644 examples/exclude-files/.babelrc create mode 100644 examples/exclude-files/README.md create mode 100644 examples/exclude-files/cypress.json create mode 100644 examples/exclude-files/cypress/integration/spec.js create mode 100644 examples/exclude-files/cypress/plugins/index.js create mode 100644 examples/exclude-files/cypress/support/commands.js create mode 100644 examples/exclude-files/cypress/support/index.js create mode 100644 examples/exclude-files/index.html create mode 100644 examples/exclude-files/main.js create mode 100644 examples/exclude-files/package.json create mode 100644 examples/exclude-files/second.js diff --git a/.circleci/config.yml b/.circleci/config.yml index 0d20df9f8..937a23872 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -286,6 +286,37 @@ workflows: ../../node_modules/.bin/only-covered main.js working_directory: examples/support-files + - cypress/run: + attach-workspace: true + name: example-exclude-files + requires: + - cypress/install + # there are no jobs to follow this one + # so no need to save the workspace files (saves time) + no-workspace: true + start: npm start --prefix examples/exclude-files + wait-on: 'http://localhost:1234' + command: npx cypress run --project examples/exclude-files + # store screenshots and videos + store_artifacts: true + post-steps: + - run: cat examples/exclude-files/.nyc_output/out.json + # store the created coverage report folder + # you can click on it in the CircleCI UI + # to see live static HTML site + - store_artifacts: + path: examples/exclude-files/coverage + # make sure the examples captures 100% of code + - run: + command: npx nyc report --check-coverage true --lines 100 + working_directory: examples/exclude-files + - run: + name: Check code coverage 📈 + command: | + ../../node_modules/.bin/check-coverage main.js + ../../node_modules/.bin/only-covered main.js + working_directory: examples/exclude-files + - cypress/run: attach-workspace: true name: example-use-plugins-and-support @@ -362,3 +393,4 @@ workflows: - example-support-files - example-use-plugins-and-support - example-one-spec + - example-exclude-files diff --git a/examples/exclude-files/.babelrc b/examples/exclude-files/.babelrc new file mode 100644 index 000000000..7a016cf8e --- /dev/null +++ b/examples/exclude-files/.babelrc @@ -0,0 +1,3 @@ +{ + "plugins": ["istanbul"] +} diff --git a/examples/exclude-files/README.md b/examples/exclude-files/README.md new file mode 100644 index 000000000..3975988e5 --- /dev/null +++ b/examples/exclude-files/README.md @@ -0,0 +1,3 @@ +# example: exclude files + +Exclude some files from final coverage report by using `nyc` object in [package.json](package.json) file. diff --git a/examples/exclude-files/cypress.json b/examples/exclude-files/cypress.json new file mode 100644 index 000000000..c7994dc62 --- /dev/null +++ b/examples/exclude-files/cypress.json @@ -0,0 +1,5 @@ +{ + "fixturesFolder": false, + "pluginsFile": "cypress/plugins/index.js", + "baseUrl": "http://localhost:1234" +} diff --git a/examples/exclude-files/cypress/integration/spec.js b/examples/exclude-files/cypress/integration/spec.js new file mode 100644 index 000000000..3d30a8aff --- /dev/null +++ b/examples/exclude-files/cypress/integration/spec.js @@ -0,0 +1,9 @@ +/// +it('works', () => { + cy.visit('/') + cy.contains('Page body') + + cy.window() + .invoke('reverse', 'super') + .should('equal', 'repus') +}) diff --git a/examples/exclude-files/cypress/plugins/index.js b/examples/exclude-files/cypress/plugins/index.js new file mode 100644 index 000000000..b17c48db1 --- /dev/null +++ b/examples/exclude-files/cypress/plugins/index.js @@ -0,0 +1,5 @@ +module.exports = (on, config) => { + require('../../../../task')(on, config) + on('file:preprocessor', require('../../../../use-babelrc')) + return config +} diff --git a/examples/exclude-files/cypress/support/commands.js b/examples/exclude-files/cypress/support/commands.js new file mode 100644 index 000000000..219920ee8 --- /dev/null +++ b/examples/exclude-files/cypress/support/commands.js @@ -0,0 +1,2 @@ +import '../../../../support' +console.log('this is commands file') diff --git a/examples/exclude-files/cypress/support/index.js b/examples/exclude-files/cypress/support/index.js new file mode 100644 index 000000000..b5c578c9d --- /dev/null +++ b/examples/exclude-files/cypress/support/index.js @@ -0,0 +1 @@ +require('./commands') diff --git a/examples/exclude-files/index.html b/examples/exclude-files/index.html new file mode 100644 index 000000000..993f0c189 --- /dev/null +++ b/examples/exclude-files/index.html @@ -0,0 +1,17 @@ + + Page body + + + + diff --git a/examples/exclude-files/main.js b/examples/exclude-files/main.js new file mode 100644 index 000000000..5dd69be2f --- /dev/null +++ b/examples/exclude-files/main.js @@ -0,0 +1,3 @@ +window.add = (a, b) => a + b + +window.sub = (a, b) => a - b diff --git a/examples/exclude-files/package.json b/examples/exclude-files/package.json new file mode 100644 index 000000000..12c1e965c --- /dev/null +++ b/examples/exclude-files/package.json @@ -0,0 +1,15 @@ +{ + "name": "example-exclude-files", + "description": "Exclude some files from final coverage report", + "scripts": { + "start": "../../node_modules/.bin/parcel serve index.html", + "cy:open": "../../node_modules/.bin/cypress open", + "dev": "../../node_modules/.bin/start-test 1234 cy:open" + }, + "nyc": { + "exclude": ["second.js"] + }, + "devDependencies": { + "@babel/core": "7.9.0" + } +} diff --git a/examples/exclude-files/second.js b/examples/exclude-files/second.js new file mode 100644 index 000000000..494a0c5fc --- /dev/null +++ b/examples/exclude-files/second.js @@ -0,0 +1,7 @@ +// this file should be excluded from the final coverage numbers +// using "nyc.exclude" list in package.json +window.reverse = s => + s + .split('') + .reverse() + .join('') diff --git a/task.js b/task.js index f56219601..5be673bf4 100644 --- a/task.js +++ b/task.js @@ -151,8 +151,11 @@ const tasks = { const nycReportOptions = { reportDir, tempDir: coverageFolder, - reporter: [].concat(reporter) // make sure this is a list + reporter: [].concat(reporter), // make sure this is a list + include: nycOptions.include, + exclude: nycOptions.exclude } + debug('calling NYC reporter with options %o', nycReportOptions) debug('current working directory is %s', process.cwd()) const nyc = new NYC(nycReportOptions) From ffcf2b210060c0b629fb0aff3bc32b0c4082daf7 Mon Sep 17 00:00:00 2001 From: Gleb Bahmutov Date: Wed, 15 Apr 2020 11:05:54 -0400 Subject: [PATCH 55/85] fix: add a few more options to support exclude --- task.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/task.js b/task.js index 5be673bf4..2aa09bb8f 100644 --- a/task.js +++ b/task.js @@ -153,7 +153,10 @@ const tasks = { tempDir: coverageFolder, reporter: [].concat(reporter), // make sure this is a list include: nycOptions.include, - exclude: nycOptions.exclude + exclude: nycOptions.exclude, + // from working with TypeScript code seems we need these settings too + excludeAfterRemap: true, + extension: ['.js', '.cjs', '.mjs', '.ts', '.tsx', '.jsx'] } debug('calling NYC reporter with options %o', nycReportOptions) From 9c7eed4288a7c69af987efe5f63b9ee83964f57e Mon Sep 17 00:00:00 2001 From: Gleb Bahmutov Date: Fri, 17 Apr 2020 07:42:39 -0400 Subject: [PATCH 56/85] fix: pass nyc option all from package json, close #194 --- task.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/task.js b/task.js index 2aa09bb8f..a0a0445cd 100644 --- a/task.js +++ b/task.js @@ -156,7 +156,8 @@ const tasks = { exclude: nycOptions.exclude, // from working with TypeScript code seems we need these settings too excludeAfterRemap: true, - extension: ['.js', '.cjs', '.mjs', '.ts', '.tsx', '.jsx'] + extension: ['.js', '.cjs', '.mjs', '.ts', '.tsx', '.jsx'], + all: nycOptions.all } debug('calling NYC reporter with options %o', nycReportOptions) From 015a58f9472d2cc2af72c9735878d6ef81c7c138 Mon Sep 17 00:00:00 2001 From: Gleb Bahmutov Date: Fri, 17 Apr 2020 08:24:35 -0400 Subject: [PATCH 57/85] add more questions to the bug issue template --- .github/ISSUE_TEMPLATE/bug_report.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 96d594713..b8a9a45af 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -5,6 +5,7 @@ title: '' labels: '' assignees: '' --- + **Versions** - What is this plugin's version? @@ -12,6 +13,9 @@ assignees: '' - What is your operating system? - What is the Node version? - What is the NPM version? +- Is there `.nyc_output` folder? Is there `.nyc_output/out.json` file. Is it empty? +- Do you have any custom NYC settings in `package.json` (`nyc` object) or in other [NYC config files](https://github.com/istanbuljs/nyc#configuration-files) +- Do you run Cypress tests in a Docker container? **Describe the bug** A clear and concise description of what the bug is. From 917fe2e563a520cc95aca10933e8c433064dccb8 Mon Sep 17 00:00:00 2001 From: Gleb Bahmutov Date: Fri, 17 Apr 2020 12:34:07 -0400 Subject: [PATCH 58/85] more items for bug report --- .github/ISSUE_TEMPLATE/bug_report.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index b8a9a45af..a7b4cdbab 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -11,9 +11,10 @@ assignees: '' - What is this plugin's version? - What is Cypress version? - What is your operating system? +- What is the shell? - What is the Node version? - What is the NPM version? -- Is there `.nyc_output` folder? Is there `.nyc_output/out.json` file. Is it empty? +- Is there `.nyc_output` folder? Is there `.nyc_output/out.json` file. Is it empty? Can you paste at least part of it so we can see the keys and file paths? - Do you have any custom NYC settings in `package.json` (`nyc` object) or in other [NYC config files](https://github.com/istanbuljs/nyc#configuration-files) - Do you run Cypress tests in a Docker container? From 171f77d02909cbae014c79ab595c7e3dc5b2c595 Mon Sep 17 00:00:00 2001 From: Gleb Bahmutov Date: Fri, 17 Apr 2020 13:15:50 -0400 Subject: [PATCH 59/85] fix: simpler TypeScript advice (#195) * fix: and pass extension from package nyc object if provided --- .circleci/config.yml | 3 ++- .github/ISSUE_TEMPLATE/bug_report.md | 6 +++--- README.md | 23 ++++------------------- examples/ts-example/calc.ts | 3 +++ examples/ts-example/main.ts | 4 +--- examples/ts-example/package.json | 4 ---- package.json | 2 -- task.js | 10 +++++++++- 8 files changed, 22 insertions(+), 33 deletions(-) create mode 100644 examples/ts-example/calc.ts diff --git a/.circleci/config.yml b/.circleci/config.yml index 937a23872..799407b92 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -219,7 +219,8 @@ workflows: name: Check code coverage 📈 command: | ../../node_modules/.bin/check-coverage main.ts - ../../node_modules/.bin/only-covered main.ts + ../../node_modules/.bin/check-coverage calc.ts + ../../node_modules/.bin/only-covered main.ts calc.ts working_directory: examples/ts-example - cypress/run: diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index a7b4cdbab..f7718ec45 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -6,6 +6,9 @@ labels: '' assignees: '' --- +**Logs and screenshots** +Please provide debug logs by running Cypress from the terminal with `DEBUG=code-coverage` environment variable set, see the [Debugging](https://github.com/cypress-io/code-coverage#debugging) section of the README file. + **Versions** - What is this plugin's version? @@ -21,8 +24,5 @@ assignees: '' **Describe the bug** A clear and concise description of what the bug is. -**Logs and screenshots** -If possible, add the log from the terminal. You can turn on debugging logging, see [Debugging](https://github.com/cypress-io/code-coverage#debugging) section of the README file. - **Link to the repo** Bugs with a reproducible example, like an open source repo showing the bug, are the most likely to be resolved. diff --git a/README.md b/README.md index c7102a164..d462bc04b 100644 --- a/README.md +++ b/README.md @@ -229,26 +229,9 @@ Sometimes NYC tool might be installed in a different folder not in the current o ## TypeScript users -TypeScript source files are NOT included in the code coverage report by default, even if they are properly instrumented. In order to tell `nyc` to include TS files in the report, you need to: +TypeScript source files should be automatically included in the report, if they are instrumented. -1. Add these dev dependencies that let Istanbul work with TypeScript - -```shell -npm i -D @istanbuljs/nyc-config-typescript source-map-support -``` - -2. In `package.json` use the following `nyc` configuration object - -```json -{ - "nyc": { - "extends": "@istanbuljs/nyc-config-typescript", - "all": true - } -} -``` - -See [examples/ts-example](examples/ts-example) +See [examples/ts-example](examples/ts-example) and [bahmutov/cra-ts-code-coverage-example](https://github.com/bahmutov/cra-ts-code-coverage-example). ## Exclude code @@ -413,6 +396,8 @@ npx nyc report --check-coverage true --lines 100 --include cypress/about.js npx nyc report --check-coverage true --lines 100 --include cypress/unit.js ``` +**Tip:** use [check-code-coverage](https://github.com/bahmutov/check-code-coverage) for stricter code coverage checks than `nyc report --check-coverage` allows. + ### Markdown You can validate links in Markdown files in this directory by executing (Linux + Mac only) script diff --git a/examples/ts-example/calc.ts b/examples/ts-example/calc.ts new file mode 100644 index 000000000..e29e78dc3 --- /dev/null +++ b/examples/ts-example/calc.ts @@ -0,0 +1,3 @@ +export const add = (a: number, b: number) => { + return a + b +} diff --git a/examples/ts-example/main.ts b/examples/ts-example/main.ts index 61e93ad42..18b1d1dcb 100644 --- a/examples/ts-example/main.ts +++ b/examples/ts-example/main.ts @@ -1,6 +1,4 @@ -const add = (a: number, b: number) => { - return a + b -} +import { add } from './calc' const sub = (a: number, b: number) => { return a - b diff --git a/examples/ts-example/package.json b/examples/ts-example/package.json index 3f296f798..b45541ca1 100644 --- a/examples/ts-example/package.json +++ b/examples/ts-example/package.json @@ -4,10 +4,6 @@ "devDependencies": { "@babel/core": "7.9.0" }, - "nyc": { - "extends": "@istanbuljs/nyc-config-typescript", - "all": true - }, "scripts": { "start": "../../node_modules/.bin/parcel serve index.html", "build": "../../node_modules/.bin/parcel build index.html", diff --git a/package.json b/package.json index 79888dc1f..ad715ebed 100644 --- a/package.json +++ b/package.json @@ -54,7 +54,6 @@ }, "devDependencies": { "@babel/core": "7.9.0", - "@istanbuljs/nyc-config-typescript": "1.0.1", "babel-plugin-istanbul": "6.0.0", "check-code-coverage": "1.0.1", "cypress": "4.3.0", @@ -65,7 +64,6 @@ "prettier": "1.19.1", "semantic-release": "17.0.4", "serve": "11.3.0", - "source-map-support": "0.5.16", "start-server-and-test": "1.10.11", "typescript": "3.8.3" } diff --git a/task.js b/task.js index a0a0445cd..64bd0406c 100644 --- a/task.js +++ b/task.js @@ -148,6 +148,7 @@ const tasks = { // I am mostly worried about additional NYC options that are stored in // package.json and .nycrc resource files. // for now let's just camel case all options + // https://github.com/istanbuljs/nyc#common-configuration-options const nycReportOptions = { reportDir, tempDir: coverageFolder, @@ -156,7 +157,14 @@ const tasks = { exclude: nycOptions.exclude, // from working with TypeScript code seems we need these settings too excludeAfterRemap: true, - extension: ['.js', '.cjs', '.mjs', '.ts', '.tsx', '.jsx'], + extension: nycOptions.extension || [ + '.js', + '.cjs', + '.mjs', + '.ts', + '.tsx', + '.jsx' + ], all: nycOptions.all } From 8905419937f276c9a6f1288e6f0d1c6eb4e5d6f8 Mon Sep 17 00:00:00 2001 From: Gleb Bahmutov Date: Fri, 17 Apr 2020 13:32:56 -0400 Subject: [PATCH 60/85] add another example link --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index d462bc04b..72b17a273 100644 --- a/README.md +++ b/README.md @@ -231,7 +231,7 @@ Sometimes NYC tool might be installed in a different folder not in the current o TypeScript source files should be automatically included in the report, if they are instrumented. -See [examples/ts-example](examples/ts-example) and [bahmutov/cra-ts-code-coverage-example](https://github.com/bahmutov/cra-ts-code-coverage-example). +See [examples/ts-example](examples/ts-example), [bahmutov/cra-ts-code-coverage-example](https://github.com/bahmutov/cra-ts-code-coverage-example) or [bahmutov/cypress-angular-coverage-example](https://github.com/bahmutov/cypress-angular-coverage-example). ## Exclude code @@ -326,6 +326,8 @@ Full examples we use for testing in this repository: ### External examples +Look up the list of examples under GitHub topic [cypress-code-coverage-example](https://github.com/topics/cypress-code-coverage-example) + - [cypress-io/cypress-example-todomvc-redux](https://github.com/cypress-io/cypress-example-todomvc-redux) is a React / Redux application with 100% code coverage. - [cypress-io/cypress-example-realworld](https://github.com/cypress-io/cypress-example-realworld) shows how to collect the coverage information from both back and front end code and merge it into a single report. The E2E test step runs in parallel in several CI containers, each saving just partial test coverage information. Then a merge job runs taking artifacts and combining coverage into the final report to be sent to an exteral coverage as a service app. - [bahmutov/code-coverage-webpack-dev-server](https://github.com/bahmutov/code-coverage-webpack-dev-server) shows how to collect code coverage from an application that uses webpack-dev-server. @@ -333,7 +335,7 @@ Full examples we use for testing in this repository: - [lluia/cypress-typescript-coverage-example](https://github.com/lluia/cypress-typescript-coverage-example) shows coverage for React App that uses TypeScript. See discussion in issue [#19](https://github.com/cypress-io/code-coverage/issues/19). - [bahmutov/cypress-and-jest](https://github.com/bahmutov/cypress-and-jest) shows how to run Jest unit tests and Cypress unit tests, collecting code coverage from both test runners, and then produce merged report. - [rootstrap/react-redux-base](https://github.com/rootstrap/react-redux-base) shows an example with a realistic Webpack config. Instruments the source code using `babel-plugin-istanbul` during tests. -- [skylock/cypress-angular-coverage-example](https://github.com/skylock/cypress-angular-coverage-example) shows Angular 8 + TypeScript application with instrumentation done using [istanbul-instrumenter-loader](https://github.com/webpack-contrib/istanbul-instrumenter-loader). +- [bahmutov/cypress-angular-coverage-example](https://github.com/bahmutov/cypress-angular-coverage-example) forked from [skylock/cypress-angular-coverage-example](https://github.com/skylock/cypress-angular-coverage-example) shows Angular 8 + TypeScript application with instrumentation done using [istanbul-instrumenter-loader](https://github.com/webpack-contrib/istanbul-instrumenter-loader). - [bahmutov/testing-react](https://github.com/bahmutov/testing-react) shows how to get code coverage for a React application created using [CRA v3](https://github.com/facebook/create-react-app) without ejecting `react-scripts`. - [bahmutov/cra-ts-code-coverage-example](https://github.com/bahmutov/cra-ts-code-coverage-example) instruments TypeScript React application on the fly without ejecting `react-scripts` by using [@cypress/instrument-cra](https://github.com/cypress-io/instrument-cra). - [bahmutov/next-and-cypress-example](https://github.com/bahmutov/next-and-cypress-example) shows how to get backend and frontend coverage for a [Next.js](https://nextjs.org) project. Uses [middleware/nextjs.js](middleware/nextjs.js). From 466b95dd175061fb7677f28acc1d47bf0ebe3468 Mon Sep 17 00:00:00 2001 From: Gleb Bahmutov Date: Fri, 17 Apr 2020 14:09:27 -0400 Subject: [PATCH 61/85] fix: print number of keys and few paths for simpler debugging --- task.js | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/task.js b/task.js index 64bd0406c..c48f5e65a 100644 --- a/task.js +++ b/task.js @@ -44,9 +44,26 @@ function saveCoverage(coverage) { */ function resolvePaths(nycFilename) { const nycCoverage = JSON.parse(readFileSync(nycFilename, 'utf8')) + + const coverageKeys = Object.keys(nycCoverage) + if (!coverageKeys.length) { + console.error('⚠️ file %s has no coverage information', nycFilename) + return + } + debug('NYC file %s has %d key(s)', nycFilename, coverageKeys.length) + let changed - Object.keys(nycCoverage).forEach(key => { + const maxPrintKeys = 3 + + Object.keys(nycCoverage).forEach((key, k) => { const coverage = nycCoverage[key] + + // printing a few found keys and file paths from the coverage file + // will make debugging any problems much much easier + if (k < maxPrintKeys) { + debug('%d key %s file path %s', k + 1, key, coverage.path) + } + if (coverage.path && !isAbsolute(coverage.path)) { if (existsSync(coverage.path)) { debug('resolving path %s', coverage.path) From b80d89f21587e2c6782b8d9b991ed8934b94b4fb Mon Sep 17 00:00:00 2001 From: Gleb Bahmutov Date: Fri, 17 Apr 2020 18:15:34 -0400 Subject: [PATCH 62/85] feat: find local files better (#197) * chore: refactor * adding detecting folder that matches current folder root * move utility functions * feat: find matching folder example * add docker paths example to circleci * exclude utils file from coverage --- .circleci/config.yml | 25 +++ examples/docker-paths/README.md | 38 ++++ examples/docker-paths/app/index.html | 17 ++ examples/docker-paths/app/main.js | 3 + examples/docker-paths/app/second.js | 7 + examples/docker-paths/cypress.json | 5 + .../docker-paths/cypress/integration/spec.js | 11 + examples/docker-paths/dist/index.html | 17 ++ examples/docker-paths/dist/main.js | 58 +++++ examples/docker-paths/dist/second.js | 48 +++++ examples/docker-paths/images/file.png | Bin 0 -> 70964 bytes examples/docker-paths/images/files.png | Bin 0 -> 88215 bytes examples/docker-paths/package.json | 14 ++ package.json | 3 + task.js | 69 ++---- utils.js | 198 +++++++++++++++++- 16 files changed, 460 insertions(+), 53 deletions(-) create mode 100644 examples/docker-paths/README.md create mode 100644 examples/docker-paths/app/index.html create mode 100644 examples/docker-paths/app/main.js create mode 100644 examples/docker-paths/app/second.js create mode 100644 examples/docker-paths/cypress.json create mode 100644 examples/docker-paths/cypress/integration/spec.js create mode 100644 examples/docker-paths/dist/index.html create mode 100644 examples/docker-paths/dist/main.js create mode 100644 examples/docker-paths/dist/second.js create mode 100644 examples/docker-paths/images/file.png create mode 100644 examples/docker-paths/images/files.png create mode 100644 examples/docker-paths/package.json diff --git a/.circleci/config.yml b/.circleci/config.yml index 799407b92..e5e67f839 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -194,6 +194,30 @@ workflows: ../../node_modules/.bin/only-covered main.js working_directory: examples/before-all-visit + - cypress/run: + attach-workspace: true + name: example-docker-paths + requires: + - cypress/install + # there are no jobs to follow this one + # so no need to save the workspace files (saves time) + no-workspace: true + working_directory: examples/docker-paths + command: '../../node_modules/.bin/cypress run' + post-steps: + # store the created coverage report folder + # you can click on it in the CircleCI UI + # to see live static HTML site + - store_artifacts: + path: examples/docker-paths/coverage + - run: + name: Check code coverage 📈 + command: | + ../../node_modules/.bin/check-coverage main.js + ../../node_modules/.bin/check-coverage second.js + ../../node_modules/.bin/only-covered main.js second.js + working_directory: examples/docker-paths + - cypress/run: attach-workspace: true name: example-ts-example @@ -395,3 +419,4 @@ workflows: - example-use-plugins-and-support - example-one-spec - example-exclude-files + - example-docker-paths diff --git a/examples/docker-paths/README.md b/examples/docker-paths/README.md new file mode 100644 index 000000000..0e8c20d19 --- /dev/null +++ b/examples/docker-paths/README.md @@ -0,0 +1,38 @@ +# example-docker-paths + +In this example, the source files are "instrumented" as if they were instrumented inside a Docker container. Still, Cypress code coverage plugin should find the matching current folder where same files exist and update `.nyc_output/out.json` file before generating reports. + +Source files from `app` folder were instrumented into `dist` folder with command + +```shell +$ npx nyc instrument app dist +``` + +Then the `index.html` file was copied into `dist` folder. + +Then the source paths in [dist/main.js](dist/main.js) and [dist/second.js](dist/second.js) were changed to non-existent prefix folder `/var/www/test/site`. + +When Cypress runs, the `.nyc_output/out.json` is updated, so the path is valid local path like: + +``` +{ + "/var/www/test/site/app/main.js": { + "path": "/Users/gleb/git/code-coverage/examples/docker-paths/app/main.js", + "statementMap": { + ... +``` + +And the report has valid HTML with sources + +![All files](images/files.png) + +![Single file](images/file.png) + +**Note:** remember to remove existing `.nyc_output` folder if running Cypress in non-interactive mode `rm -rf .nyc_output/`. + +When running with [debug logs](https://github.com/cypress-io/code-coverage#debugging) you should see messages: + +``` +found common folder /var/www/test/site that matches +current working directory /Users/gleb/git/code-coverage/examples/docker-paths +``` diff --git a/examples/docker-paths/app/index.html b/examples/docker-paths/app/index.html new file mode 100644 index 000000000..993f0c189 --- /dev/null +++ b/examples/docker-paths/app/index.html @@ -0,0 +1,17 @@ + + Page body + + + + diff --git a/examples/docker-paths/app/main.js b/examples/docker-paths/app/main.js new file mode 100644 index 000000000..5dd69be2f --- /dev/null +++ b/examples/docker-paths/app/main.js @@ -0,0 +1,3 @@ +window.add = (a, b) => a + b + +window.sub = (a, b) => a - b diff --git a/examples/docker-paths/app/second.js b/examples/docker-paths/app/second.js new file mode 100644 index 000000000..494a0c5fc --- /dev/null +++ b/examples/docker-paths/app/second.js @@ -0,0 +1,7 @@ +// this file should be excluded from the final coverage numbers +// using "nyc.exclude" list in package.json +window.reverse = s => + s + .split('') + .reverse() + .join('') diff --git a/examples/docker-paths/cypress.json b/examples/docker-paths/cypress.json new file mode 100644 index 000000000..3681940e8 --- /dev/null +++ b/examples/docker-paths/cypress.json @@ -0,0 +1,5 @@ +{ + "pluginsFile": "../../plugins", + "supportFile": "../../support", + "fixturesFolder": false +} diff --git a/examples/docker-paths/cypress/integration/spec.js b/examples/docker-paths/cypress/integration/spec.js new file mode 100644 index 000000000..3da439de4 --- /dev/null +++ b/examples/docker-paths/cypress/integration/spec.js @@ -0,0 +1,11 @@ +/// +describe('docker-paths', () => { + it('works', () => { + cy.visit('dist/index.html') + cy.contains('Page body') + + cy.window() + .invoke('reverse', 'super') + .should('equal', 'repus') + }) +}) diff --git a/examples/docker-paths/dist/index.html b/examples/docker-paths/dist/index.html new file mode 100644 index 000000000..993f0c189 --- /dev/null +++ b/examples/docker-paths/dist/index.html @@ -0,0 +1,17 @@ + + Page body + + + + diff --git a/examples/docker-paths/dist/main.js b/examples/docker-paths/dist/main.js new file mode 100644 index 000000000..9bb7cd411 --- /dev/null +++ b/examples/docker-paths/dist/main.js @@ -0,0 +1,58 @@ +function cov_25n278q6qe() { + var path = '/var/www/test/site/app/main.js' + var hash = '8817d7301264befa6a587eeb9305a1bf2cbde8bc' + var global = new Function('return this')() + var gcv = '__coverage__' + var coverageData = { + path: '/var/www/test/site/app/main.js', + statementMap: { + '0': { start: { line: 1, column: 0 }, end: { line: 1, column: 28 } }, + '1': { start: { line: 1, column: 23 }, end: { line: 1, column: 28 } }, + '2': { start: { line: 3, column: 0 }, end: { line: 3, column: 28 } }, + '3': { start: { line: 3, column: 23 }, end: { line: 3, column: 28 } } + }, + fnMap: { + '0': { + name: '(anonymous_0)', + decl: { start: { line: 1, column: 13 }, end: { line: 1, column: 14 } }, + loc: { start: { line: 1, column: 23 }, end: { line: 1, column: 28 } }, + line: 1 + }, + '1': { + name: '(anonymous_1)', + decl: { start: { line: 3, column: 13 }, end: { line: 3, column: 14 } }, + loc: { start: { line: 3, column: 23 }, end: { line: 3, column: 28 } }, + line: 3 + } + }, + branchMap: {}, + s: { '0': 0, '1': 0, '2': 0, '3': 0 }, + f: { '0': 0, '1': 0 }, + b: {}, + _coverageSchema: '1a1c01bbd47fc00a2c39e90264f33305004495a9', + hash: '8817d7301264befa6a587eeb9305a1bf2cbde8bc' + } + var coverage = global[gcv] || (global[gcv] = {}) + if (!coverage[path] || coverage[path].hash !== hash) { + coverage[path] = coverageData + } + var actualCoverage = coverage[path] + cov_25n278q6qe = function() { + return actualCoverage + } + return actualCoverage +} +cov_25n278q6qe() +cov_25n278q6qe().s[0]++ +window.add = (a, b) => { + cov_25n278q6qe().f[0]++ + cov_25n278q6qe().s[1]++ + return a + b +} +cov_25n278q6qe().s[2]++ +window.sub = (a, b) => { + cov_25n278q6qe().f[1]++ + cov_25n278q6qe().s[3]++ + return a - b +} +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1haW4uanMiXSwibmFtZXMiOlsid2luZG93IiwiYWRkIiwiYSIsImIiLCJzdWIiXSwibWFwcGluZ3MiOiJtdkNBQUFBLE1BQU0sQ0FBQ0MsR0FBUCxDQUFhLENBQUNDLENBQUQsQ0FBSUMsQ0FBSixHQUFVLHVEQUFBRCxDQUFBQSxDQUFDLENBQUdDLENBQUosQ0FBSyxDQUE1QixDLHdCQUVBSCxNQUFNLENBQUNJLEdBQVAsQ0FBYSxDQUFDRixDQUFELENBQUlDLENBQUosR0FBVSx1REFBQUQsQ0FBQUEsQ0FBQyxDQUFHQyxDQUFKLENBQUssQ0FBNUIiLCJzb3VyY2VzQ29udGVudCI6WyJ3aW5kb3cuYWRkID0gKGEsIGIpID0+IGEgKyBiXG5cbndpbmRvdy5zdWIgPSAoYSwgYikgPT4gYSAtIGJcbiJdfQ== diff --git a/examples/docker-paths/dist/second.js b/examples/docker-paths/dist/second.js new file mode 100644 index 000000000..d5dfce4c8 --- /dev/null +++ b/examples/docker-paths/dist/second.js @@ -0,0 +1,48 @@ +function cov_oh5ama61f() { + var path = '/var/www/test/site/app/second.js' + var hash = 'b86d13c912cff987dc7ed851327509c7a170ff4b' + var global = new Function('return this')() + var gcv = '__coverage__' + var coverageData = { + path: '/var/www/test/site/app/second.js', + statementMap: { + '0': { start: { line: 3, column: 0 }, end: { line: 7, column: 13 } }, + '1': { start: { line: 4, column: 2 }, end: { line: 7, column: 13 } } + }, + fnMap: { + '0': { + name: '(anonymous_0)', + decl: { start: { line: 3, column: 17 }, end: { line: 3, column: 18 } }, + loc: { start: { line: 4, column: 2 }, end: { line: 7, column: 13 } }, + line: 4 + } + }, + branchMap: {}, + s: { '0': 0, '1': 0 }, + f: { '0': 0 }, + b: {}, + _coverageSchema: '1a1c01bbd47fc00a2c39e90264f33305004495a9', + hash: 'b86d13c912cff987dc7ed851327509c7a170ff4b' + } + var coverage = global[gcv] || (global[gcv] = {}) + if (!coverage[path] || coverage[path].hash !== hash) { + coverage[path] = coverageData + } + var actualCoverage = coverage[path] + cov_oh5ama61f = function() { + return actualCoverage + } + return actualCoverage +} +cov_oh5ama61f() +cov_oh5ama61f().s[0]++ // this file should be excluded from the final coverage numbers +// using "nyc.exclude" list in package.json +window.reverse = s => { + cov_oh5ama61f().f[0]++ + cov_oh5ama61f().s[1]++ + return s + .split('') + .reverse() + .join('') +} +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNlY29uZC5qcyJdLCJuYW1lcyI6WyJ3aW5kb3ciLCJyZXZlcnNlIiwicyIsInNwbGl0Iiwiam9pbiJdLCJtYXBwaW5ncyI6InErQkFBQTtBQUNBO0FBQ0FBLE1BQU0sQ0FBQ0MsT0FBUCxDQUFpQkMsQ0FBQyxFQUNoQixxREFBQUEsQ0FBQUEsQ0FBQyxDQUNFQyxLQURILENBQ1MsRUFEVCxFQUVHRixPQUZILEdBR0dHLElBSEgsQ0FHUSxFQUhSLEVBR1csQ0FKYiIsInNvdXJjZXNDb250ZW50IjpbIi8vIHRoaXMgZmlsZSBzaG91bGQgYmUgZXhjbHVkZWQgZnJvbSB0aGUgZmluYWwgY292ZXJhZ2UgbnVtYmVyc1xuLy8gdXNpbmcgXCJueWMuZXhjbHVkZVwiIGxpc3QgaW4gcGFja2FnZS5qc29uXG53aW5kb3cucmV2ZXJzZSA9IHMgPT5cbiAgc1xuICAgIC5zcGxpdCgnJylcbiAgICAucmV2ZXJzZSgpXG4gICAgLmpvaW4oJycpXG4iXX0= diff --git a/examples/docker-paths/images/file.png b/examples/docker-paths/images/file.png new file mode 100644 index 0000000000000000000000000000000000000000..8a050cb432866713b34cca410f9dc0bcbb80da1a GIT binary patch literal 70964 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 literal 0 HcmV?d00001 diff --git a/examples/docker-paths/images/files.png b/examples/docker-paths/images/files.png new file mode 100644 index 0000000000000000000000000000000000000000..29be1b4f90a458a0d20d6511425d760b3d554c70 GIT binary patch literal 88215 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 { - const coverage = nycCoverage[key] - - // printing a few found keys and file paths from the coverage file - // will make debugging any problems much much easier - if (k < maxPrintKeys) { - debug('%d key %s file path %s', k + 1, key, coverage.path) - } - - if (coverage.path && !isAbsolute(coverage.path)) { - if (existsSync(coverage.path)) { - debug('resolving path %s', coverage.path) - coverage.path = resolve(coverage.path) - changed = true - } - } - }) - - if (changed) { - debug('saving updated file %s', nycFilename) - writeFileSync( - nycFilename, - JSON.stringify(nycCoverage, null, 2) + '\n', - 'utf8' - ) - } -} - const tasks = { /** * Clears accumulated code coverage information. @@ -143,7 +102,13 @@ const tasks = { return null } - resolvePaths(nycFilename) + showNycInfo(nycFilename) + const allSourceFilesMissing = checkAllPathsNotFound(nycFilename) + if (allSourceFilesMissing) { + tryFindingLocalFiles(nycFilename) + } + + resolveRelativePaths(nycFilename) if (customNycReportScript) { debug( diff --git a/utils.js b/utils.js index 75a43f84d..be17e815f 100644 --- a/utils.js +++ b/utils.js @@ -1,4 +1,30 @@ +// @ts-check /// +const { readFileSync, writeFileSync, existsSync } = require('fs') +const { isAbsolute, resolve, join } = require('path') +const debug = require('debug')('code-coverage') + +function checkAllPathsNotFound(nycFilename) { + const nycCoverage = JSON.parse(readFileSync(nycFilename, 'utf8')) + + const coverageKeys = Object.keys(nycCoverage) + if (!coverageKeys.length) { + console.error('⚠️ file %s has no coverage information', nycFilename) + return + } + + const allFilesAreMissing = coverageKeys.every((key, k) => { + const coverage = nycCoverage[key] + return !existsSync(coverage.path) + }) + + debug( + 'in file %s all files are not found? %o', + nycFilename, + allFilesAreMissing + ) + return allFilesAreMissing +} /** * remove coverage for the spec files themselves, @@ -6,6 +32,7 @@ */ const filterSpecsFromCoverage = (totalCoverage, config = Cypress.config) => { const integrationFolder = config('integrationFolder') + // @ts-ignore const testFilePattern = config('testFiles') // test files chould be: @@ -58,7 +85,176 @@ function fixSourcePathes(coverage) { }) } +/** + * A small debug utility to inspect paths saved in NYC output JSON file + */ +function showNycInfo(nycFilename) { + const nycCoverage = JSON.parse(readFileSync(nycFilename, 'utf8')) + + const coverageKeys = Object.keys(nycCoverage) + if (!coverageKeys.length) { + console.error('⚠️ file %s has no coverage information', nycFilename) + return + } + debug('NYC file %s has %d key(s)', nycFilename, coverageKeys.length) + + const maxPrintKeys = 3 + const showKeys = coverageKeys.slice(0, maxPrintKeys) + + showKeys.forEach((key, k) => { + const coverage = nycCoverage[key] + + // printing a few found keys and file paths from the coverage file + // will make debugging any problems much much easier + if (k < maxPrintKeys) { + debug('%d key %s file path %s', k + 1, key, coverage.path) + } + }) +} + +/** + * Looks at all coverage objects in the given JSON coverage file + * and if the file is relative, and exists, changes its path to + * be absolute. + */ +function resolveRelativePaths(nycFilename) { + const nycCoverage = JSON.parse(readFileSync(nycFilename, 'utf8')) + + const coverageKeys = Object.keys(nycCoverage) + if (!coverageKeys.length) { + console.error('⚠️ file %s has no coverage information', nycFilename) + return + } + debug('NYC file %s has %d key(s)', nycFilename, coverageKeys.length) + + let changed + + coverageKeys.forEach((key, k) => { + const coverage = nycCoverage[key] + + if (!coverage.path) { + debug('key %s does not have path', key) + return + } + + if (!isAbsolute(coverage.path)) { + if (existsSync(coverage.path)) { + debug('resolving path %s', coverage.path) + coverage.path = resolve(coverage.path) + changed = true + } + return + } + + // path is absolute, let's check if it exists + if (!existsSync(coverage.path)) { + debug('⚠️ cannot find file %s with hash %s', coverage.path, coverage.hash) + } + }) + + if (changed) { + debug('saving updated file %s', nycFilename) + writeFileSync( + nycFilename, + JSON.stringify(nycCoverage, null, 2) + '\n', + 'utf8' + ) + } +} + +/** + * @param {string[]} filepaths + * @returns {string | undefined} common prefix that corresponds to current folder + */ +function findCommonRoot(filepaths) { + if (!filepaths.length) { + debug('cannot find common root without any files') + return + } + + // assuming / as file separator + const splitParts = filepaths.map(name => name.split('/')) + const lengths = splitParts.map(arr => arr.length) + const shortestLength = Math.min.apply(null, lengths) + debug('shorted file path has %d parts', shortestLength) + + const cwd = process.cwd() + let commonPrefix = [] + let foundCurrentFolder + + for (let k = 0; k < shortestLength; k += 1) { + const part = splitParts[0][k] + const prefix = commonPrefix.concat(part).join('/') + debug('testing prefix %o', prefix) + const allFilesStart = filepaths.every(name => name.startsWith(prefix)) + if (!allFilesStart) { + debug('stopped at non-common prefix %s', prefix) + break + } + + commonPrefix.push(part) + + const removedPrefixNames = filepaths.map(filepath => + filepath.slice(prefix.length) + ) + debug('removedPrefix %o', removedPrefixNames) + const foundAllPaths = removedPrefixNames.every(filepath => + existsSync(join(cwd, filepath)) + ) + debug('all files found at %s? %o', prefix, foundAllPaths) + if (foundAllPaths) { + debug('found prefix that matches current folder: %s', prefix) + foundCurrentFolder = prefix + break + } + } + + return foundCurrentFolder +} + +function tryFindingLocalFiles(nycFilename) { + const nycCoverage = JSON.parse(readFileSync(nycFilename, 'utf8')) + const coverageKeys = Object.keys(nycCoverage) + const filenames = coverageKeys.map(key => nycCoverage[key].path) + const commonFolder = findCommonRoot(filenames) + if (!commonFolder) { + debug('could not find common folder %s', commonFolder) + return + } + const cwd = process.cwd() + debug( + 'found common folder %s that matches current working directory %s', + commonFolder, + cwd + ) + const length = commonFolder.length + let changed + + coverageKeys.forEach(key => { + const from = nycCoverage[key].path + if (from.startsWith(commonFolder)) { + const to = join(cwd, from.slice(length)) + nycCoverage[key].path = to + debug('replaced %s -> %s', from, to) + changed = true + } + }) + + if (changed) { + debug('saving updated file %s', nycFilename) + writeFileSync( + nycFilename, + JSON.stringify(nycCoverage, null, 2) + '\n', + 'utf8' + ) + } +} + module.exports = { fixSourcePathes, - filterSpecsFromCoverage + filterSpecsFromCoverage, + showNycInfo, + resolveRelativePaths, + checkAllPathsNotFound, + tryFindingLocalFiles } From 4a5af258d265b41a8a950f8d79de574ac775439d Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sat, 18 Apr 2020 04:08:27 +0000 Subject: [PATCH 63/85] chore(deps): update dependency cypress to v4.4.0 --- package-lock.json | 21 ++++++--------------- package.json | 2 +- 2 files changed, 7 insertions(+), 16 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7fd63bd3a..e0dfd0048 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2719,15 +2719,6 @@ } } }, - "@istanbuljs/nyc-config-typescript": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@istanbuljs/nyc-config-typescript/-/nyc-config-typescript-1.0.1.tgz", - "integrity": "sha512-/gz6LgVpky205LuoOfwEZmnUtaSmdk0QIMcNFj9OvxhiMhPpKftMgZmGN7jNj7jR+lr8IB1Yks3QSSSNSxfoaQ==", - "dev": true, - "requires": { - "@istanbuljs/schema": "^0.1.2" - } - }, "@istanbuljs/schema": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", @@ -3711,9 +3702,9 @@ "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" }, "async": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/async/-/async-3.1.1.tgz", - "integrity": "sha512-X5Dj8hK1pJNC2Wzo2Rcp9FBVdJMGRR/S7V+lH46s8GVFhtbo5O4Le5GECCF/8PISVdkUA6mMPvgz7qTTD1rf1g==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz", + "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==", "dev": true }, "async-each": { @@ -5508,9 +5499,9 @@ } }, "cypress": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-4.3.0.tgz", - "integrity": "sha512-xO1oef4ns4koDAkQROGJIhKKhGHDOKfOmlirwP1QAk9w/no+YJpN7HZ6IUPiXwWw3C7xVLjScoI8Dad0z5uTTg==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-4.4.0.tgz", + "integrity": "sha512-ZpsV3pVemANGi4Cxu0UIqFv23uHdDJZYlKY+8P/eixujCpI1TQ5RSPBp2grfV3ZvlGYrOXPJY44j9iEh1xoQug==", "dev": true, "requires": { "@cypress/listr-verbose-renderer": "0.4.1", diff --git a/package.json b/package.json index 68d980880..524e94131 100644 --- a/package.json +++ b/package.json @@ -56,7 +56,7 @@ "@babel/core": "7.9.0", "babel-plugin-istanbul": "6.0.0", "check-code-coverage": "1.0.1", - "cypress": "4.3.0", + "cypress": "4.4.0", "express": "4.17.1", "lodash": "4.17.15", "markdown-link-check": "3.8.1", From a4f18d611125695fcb20abe734fd0b06a80e757d Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sat, 18 Apr 2020 05:05:59 +0000 Subject: [PATCH 64/85] chore(deps): update dependency semantic-release to v17.0.6 --- package-lock.json | 444 +++++++++++++++++++++++++++------------------- package.json | 2 +- 2 files changed, 259 insertions(+), 187 deletions(-) diff --git a/package-lock.json b/package-lock.json index e0dfd0048..7f25a554c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2778,23 +2778,23 @@ } }, "@octokit/core": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-2.4.2.tgz", - "integrity": "sha512-fUx/Qt774cgiPhb3HRKfdl6iufVL/ltECkwkCg373I4lIPYvAPY4cbidVZqyVqHI+ThAIlFlTW8FT4QHChv3Sg==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-2.5.0.tgz", + "integrity": "sha512-uvzmkemQrBgD8xuGbjhxzJN1darJk9L2cS+M99cHrDG2jlSVpxNJVhoV86cXdYBqdHCc9Z995uLCczaaHIYA6Q==", "dev": true, "requires": { "@octokit/auth-token": "^2.4.0", "@octokit/graphql": "^4.3.1", - "@octokit/request": "^5.3.1", + "@octokit/request": "^5.4.0", "@octokit/types": "^2.0.0", "before-after-hook": "^2.1.0", "universal-user-agent": "^5.0.0" } }, "@octokit/endpoint": { - "version": "5.5.3", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-5.5.3.tgz", - "integrity": "sha512-EzKwkwcxeegYYah5ukEeAI/gYRLv2Y9U5PpIsseGSFDk+G3RbipQGBs8GuYS1TLCtQaqoO66+aQGtITPalxsNQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.0.tgz", + "integrity": "sha512-3nx+MEYoZeD0uJ+7F/gvELLvQJzLXhep2Az0bBSXagbApDvDW0LWwpnAIY/hb0Jwe17A0fJdz0O12dPh05cj7A==", "dev": true, "requires": { "@octokit/types": "^2.0.0", @@ -2842,12 +2842,12 @@ } }, "@octokit/plugin-paginate-rest": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.0.1.tgz", - "integrity": "sha512-xtW3AQoGDD0un/AkPjIndTdFO+O/My0I15TArvrbJirBCV91R1ElrE3gRcsUJENP3t/vveiQ9C6XQjo9sS2xQg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.1.0.tgz", + "integrity": "sha512-7+/7urDH8cy6DmTwkewysf7/Or9dFtwZK7aQOc/IImjyeHJy+C8CEKOPo7L5Qb+66HyAr/4p/zV76LMVMuiRtA==", "dev": true, "requires": { - "@octokit/types": "^2.0.1" + "@octokit/types": "^2.9.0" } }, "@octokit/plugin-request-log": { @@ -2857,9 +2857,9 @@ "dev": true }, "@octokit/plugin-rest-endpoint-methods": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-3.2.0.tgz", - "integrity": "sha512-k+RLsegQn4s0wvAFYuk3R18FVKRg3ktvzIGW6MkmrSiSXBwYfaEsv4CuPysyef0DL+74DRj/X9MLJYlbleUO+Q==", + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-3.5.2.tgz", + "integrity": "sha512-i5GlEWm7k/SzBr7QrIOuas/1nNgr4JcmgM14TAKULVkv4L5mOY+pcVIUMU3qdYhFyblBFhigujav5seMnkqBnQ==", "dev": true, "requires": { "@octokit/types": "^2.0.1", @@ -2867,14 +2867,14 @@ } }, "@octokit/request": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.3.2.tgz", - "integrity": "sha512-7NPJpg19wVQy1cs2xqXjjRq/RmtSomja/VSWnptfYwuBxLdbYh2UjhGi0Wx7B1v5Iw5GKhfFDQL7jM7SSp7K2g==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.4.0.tgz", + "integrity": "sha512-uAJO6GI8z8VHBqtY7VTL9iFy1Y+UTp5ShpI97tY5z0qBfYKE9rZCRsCm23VmF00x+IoNJ7a0nuVITs/+wS9/mg==", "dev": true, "requires": { - "@octokit/endpoint": "^5.5.0", - "@octokit/request-error": "^1.0.1", - "@octokit/types": "^2.0.0", + "@octokit/endpoint": "^6.0.0", + "@octokit/request-error": "^2.0.0", + "@octokit/types": "^2.8.2", "deprecation": "^2.0.0", "is-plain-object": "^3.0.0", "node-fetch": "^2.3.0", @@ -2900,9 +2900,9 @@ } }, "@octokit/request-error": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-1.2.1.tgz", - "integrity": "sha512-+6yDyk1EES6WK+l3viRDElw96MvwfJxCt45GvmjDUKWjYIb3PJZQkq3i46TwGwoPD4h8NmTrENmtyA1FwbmhRA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.0.0.tgz", + "integrity": "sha512-rtYicB4Absc60rUv74Rjpzek84UbVHGHJRu4fNVlZ1mCcyUPPuzFfG9Rn6sjHrd95DEsmjSt1Axlc699ZlbDkw==", "dev": true, "requires": { "@octokit/types": "^2.0.0", @@ -2911,21 +2911,21 @@ } }, "@octokit/rest": { - "version": "17.0.0", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-17.0.0.tgz", - "integrity": "sha512-nSlmyy1DBEOsC4voRbk/SN56V/iuZfxZzjFFz+ocb2MAYwHC+z1TyVOMV9W630dVn9ukioJO34VD5NSYwcgFWg==", + "version": "17.3.0", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-17.3.0.tgz", + "integrity": "sha512-zqvsnWUEldmF3sCmGGlQ2u+NDQMpF5O4gnwefnGt6yJcN6eGWDYJJvRD/wQ1/nALXU0XABhQElBgR/0wNoprsA==", "dev": true, "requires": { - "@octokit/core": "^2.4.0", - "@octokit/plugin-paginate-rest": "^2.0.0", + "@octokit/core": "^2.4.3", + "@octokit/plugin-paginate-rest": "^2.1.0", "@octokit/plugin-request-log": "^1.0.0", - "@octokit/plugin-rest-endpoint-methods": "^3.0.0" + "@octokit/plugin-rest-endpoint-methods": "3.5.2" } }, "@octokit/types": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-2.2.0.tgz", - "integrity": "sha512-iEeW3XlkxeM/CObeoYvbUv24Oe+DldGofY+3QyeJ5XKKA6B+V94ePk14EDCarseWdMs6afKZPv3dFq8C+SY5lw==", + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-2.10.0.tgz", + "integrity": "sha512-0/NN22MgQvNNgMjTwzWUzcIfFfks3faqiP1D1oQQz49KYeOWc+KkRG9ASbAPurrAnOaDiqnnuDYzhNT9cq4e8Q==", "dev": true, "requires": { "@types/node": ">= 8" @@ -3128,9 +3128,9 @@ "dev": true }, "@semantic-release/github": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-7.0.4.tgz", - "integrity": "sha512-qQi41eGIa/tne7T8rvQK+xJNoyadOmd5mVsNZUUqZCVueiUkCItspJ7Mgy5ZWuhwlo28+hKeT/4zJ6MIG6er2Q==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-7.0.5.tgz", + "integrity": "sha512-1nJCMeomspRIXKiFO3VXtkUMbIBEreYLFNBdWoLjvlUNcEK0/pEbupEZJA3XHfJuSzv43u3OLpPhF/JBrMuv+A==", "dev": true, "requires": { "@octokit/rest": "^17.0.0", @@ -3139,7 +3139,7 @@ "bottleneck": "^2.18.1", "debug": "^4.0.0", "dir-glob": "^3.0.0", - "fs-extra": "^8.0.0", + "fs-extra": "^9.0.0", "globby": "^11.0.0", "http-proxy-agent": "^4.0.0", "https-proxy-agent": "^5.0.0", @@ -3151,24 +3151,58 @@ "url-join": "^4.0.0" }, "dependencies": { + "fs-extra": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.0.tgz", + "integrity": "sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g==", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" + } + }, + "graceful-fs": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", + "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", + "dev": true + }, + "jsonfile": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", + "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^1.0.0" + } + }, "mime": { "version": "2.4.4", "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==", "dev": true + }, + "universalify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", + "dev": true } } }, "@semantic-release/npm": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-7.0.3.tgz", - "integrity": "sha512-3wOXMtAdJkaAnW5183iSmWSimtUmOx7m6g/DWPYRs2Gq6iyB+ztMmhgwbn6luNcM9t6pGbgHvRPEXpWkygMxCA==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-7.0.5.tgz", + "integrity": "sha512-D+oEmsx9aHE1q806NFQwSC9KdBO8ri/VO99eEz0wWbX2jyLqVyWr7t0IjKC8aSnkkQswg/4KN/ZjfF6iz1XOpw==", "dev": true, "requires": { "@semantic-release/error": "^2.2.0", "aggregate-error": "^3.0.0", "execa": "^4.0.0", - "fs-extra": "^8.0.0", + "fs-extra": "^9.0.0", "lodash": "^4.17.15", "nerf-dart": "^1.0.0", "normalize-url": "^5.0.0", @@ -3177,9 +3211,37 @@ "read-pkg": "^5.0.0", "registry-auth-token": "^4.0.0", "semver": "^7.1.2", - "tempy": "^0.4.0" + "tempy": "^0.5.0" }, "dependencies": { + "fs-extra": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.0.tgz", + "integrity": "sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g==", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" + } + }, + "graceful-fs": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", + "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", + "dev": true + }, + "jsonfile": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", + "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^1.0.0" + } + }, "normalize-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-5.0.0.tgz", @@ -3211,17 +3273,23 @@ } }, "semver": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.3.tgz", - "integrity": "sha512-ekM0zfiA9SCBlsKa2X1hxyxiI4L3B6EbVJkkdgQXnSEEaHlGdvyodMruTiulSRWMMB4NeIuYNMC9rTKTz97GxA==", + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true + }, + "universalify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", "dev": true } } }, "@semantic-release/release-notes-generator": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-9.0.0.tgz", - "integrity": "sha512-fhMUC5gAYZ1tNUDarB85PdY2xQtrPJH1wkXfvLJuhNa3BLn2geMRwdX+BtyHUloQj5KXVB8OXIq5xXz0IGvhYA==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-9.0.1.tgz", + "integrity": "sha512-bOoTiH6SiiR0x2uywSNR7uZcRDl22IpZhj+Q5Bn0v+98MFtOMhCxFhbrKQjhbYoZw7vps1mvMRmFkp/g6R9cvQ==", "dev": true, "requires": { "conventional-changelog-angular": "^5.0.0", @@ -3303,9 +3371,9 @@ "dev": true }, "@types/node": { - "version": "13.7.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-13.7.4.tgz", - "integrity": "sha512-oVeL12C6gQS/GAExndigSaLxTrKpQPxewx9bOcwfvJiJge4rr7wNaph4J+ns5hrmIV2as5qxqN8YKthn9qh0jw==", + "version": "13.13.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-13.13.0.tgz", + "integrity": "sha512-WE4IOAC6r/yBZss1oQGM5zs2D7RuKR6Q+w+X2SouPofnWn+LbCqClRyhO3ZE7Ix8nmFgo/oVuuE01cJT2XB13A==", "dev": true }, "@types/normalize-package-data": { @@ -3724,6 +3792,12 @@ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", "dev": true }, + "at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true + }, "atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", @@ -6049,9 +6123,9 @@ "dev": true }, "env-ci": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-5.0.1.tgz", - "integrity": "sha512-xXgohoOAFFF1Y3EdsSKP7olyH/DLS6ZD3aglV6mDFAXBqBXLJSsZLrOZdYfDs5mOmgNaP3YYynObzwF3QkC24g==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-5.0.2.tgz", + "integrity": "sha512-Xc41mKvjouTXD3Oy9AqySz1IeyvJvHZ20Twf5ZLYbNpPPIuCnL/qHCmNlD01LoNy0JTunw9HPYVptD19Ac7Mbw==", "dev": true, "requires": { "execa": "^4.0.0", @@ -6606,12 +6680,12 @@ "dev": true }, "fastq": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.6.0.tgz", - "integrity": "sha512-jmxqQ3Z/nXoeyDmWAzF9kH1aGZSis6e/SbfPmJpUnyZ0ogr6iscHQaml4wsEepEWSdtmpy+eVXmCRIMpxaXqOA==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.7.0.tgz", + "integrity": "sha512-YOadQRnHd5q6PogvAR/x62BGituF2ufiEA6s8aavQANw5YKHERI4AREboX6KotzP8oX2klxYF2wcV/7bn1clfQ==", "dev": true, "requires": { - "reusify": "^1.0.0" + "reusify": "^1.0.4" } }, "fd-slicer": { @@ -7522,9 +7596,9 @@ } }, "glob-parent": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz", - "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", "dev": true, "requires": { "is-glob": "^4.0.1" @@ -7579,17 +7653,24 @@ } }, "handlebars": { - "version": "4.7.3", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.3.tgz", - "integrity": "sha512-SRGwSYuNfx8DwHD/6InAPzD6RgeruWLT+B8e8a7gGs8FWgHzlExpTFMEq2IA6QpAfOClpKHy6+8IqTjeBCu6Kg==", + "version": "4.7.6", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.6.tgz", + "integrity": "sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA==", "dev": true, "requires": { + "minimist": "^1.2.5", "neo-async": "^2.6.0", - "optimist": "^0.6.1", "source-map": "^0.6.1", - "uglify-js": "^3.1.4" + "uglify-js": "^3.1.4", + "wordwrap": "^1.0.0" }, "dependencies": { + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -7732,9 +7813,9 @@ "dev": true }, "hosted-git-info": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.2.tgz", - "integrity": "sha512-ezZMWtHXm7Eb7Rq4Mwnx2vs79WUx2QmRg3+ZqeGroKzfDO+EprOcgRPYghsOP9JuYBfK18VojmRTGCg8Ma+ktw==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.4.tgz", + "integrity": "sha512-4oT62d2jwSDBbLLFLZE+1vPuQ1h8p9wjrJ8Mqx5TjsyWmBMV5B13eJqn8pvluqubLf3cJPTfiYCIwNwDNmzScQ==", "dev": true, "requires": { "lru-cache": "^5.1.1" @@ -9496,9 +9577,9 @@ } }, "marked": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-0.8.0.tgz", - "integrity": "sha512-MyUe+T/Pw4TZufHkzAfDj6HarCBWia2y27/bhuYkTaiUnfDYFnCP3KUN+9oM7Wi6JA2rymtVYbQu3spE0GCmxQ==", + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.8.2.tgz", + "integrity": "sha512-EGwzEeCcLniFX51DhTpmTom+dSA/MG/OBUDjnWtHbEnjAH180VzUeAw+oE4+Zv+CoYBWyRlYOTR0N8SO9R1PVw==", "dev": true }, "marked-terminal": { @@ -9516,12 +9597,12 @@ }, "dependencies": { "ansi-escapes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.0.tgz", - "integrity": "sha512-EiYhwo0v255HUL6eDyuLrXEkTi7WwVCLAw+SeOQ7M7qdun1z1pum4DEm/nuqIVbPvi9RPPc9k9LbyBv6H0DwVg==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", "dev": true, "requires": { - "type-fest": "^0.8.1" + "type-fest": "^0.11.0" } }, "ansi-styles": { @@ -9575,9 +9656,9 @@ } }, "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", "dev": true } } @@ -9987,9 +10068,9 @@ }, "dependencies": { "hosted-git-info": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.5.tgz", - "integrity": "sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg==", + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", "dev": true } } @@ -10006,9 +10087,9 @@ "dev": true }, "npm": { - "version": "6.13.7", - "resolved": "https://registry.npmjs.org/npm/-/npm-6.13.7.tgz", - "integrity": "sha512-X967EKTT407CvgrWFjXusnPh0VLERcmR9hZFSVgkEquOomZkvpwLJ5zrQ3qrG9SpPLKJE4bPLUu76exKQ4a3Cg==", + "version": "6.14.4", + "resolved": "https://registry.npmjs.org/npm/-/npm-6.14.4.tgz", + "integrity": "sha512-B8UDDbWvdkW6RgXFn8/h2cHJP/u/FPa4HWeGzW23aNEBARN3QPrRaHqPIZW2NSN3fW649gtgUDNZpaRs0zTMPw==", "dev": true, "requires": { "JSONStream": "^1.3.5", @@ -10022,7 +10103,7 @@ "byte-size": "^5.0.1", "cacache": "^12.0.3", "call-limit": "^1.1.1", - "chownr": "^1.1.3", + "chownr": "^1.1.4", "ci-info": "^2.0.0", "cli-columns": "^3.1.2", "cli-table3": "^0.5.1", @@ -10039,10 +10120,10 @@ "fs-vacuum": "~1.2.10", "fs-write-stream-atomic": "~1.0.10", "gentle-fs": "^2.3.0", - "glob": "^7.1.4", + "glob": "^7.1.6", "graceful-fs": "^4.2.3", "has-unicode": "~2.0.1", - "hosted-git-info": "^2.8.5", + "hosted-git-info": "^2.8.8", "iferr": "^1.0.2", "imurmurhash": "*", "infer-owner": "^1.0.4", @@ -10077,9 +10158,9 @@ "lru-cache": "^5.1.1", "meant": "~1.0.1", "mississippi": "^3.0.0", - "mkdirp": "~0.5.1", + "mkdirp": "^0.5.4", "move-concurrently": "^1.0.1", - "node-gyp": "^5.0.7", + "node-gyp": "^5.1.0", "nopt": "~4.0.1", "normalize-package-data": "^2.5.0", "npm-audit-report": "^1.3.2", @@ -10087,10 +10168,10 @@ "npm-install-checks": "^3.0.2", "npm-lifecycle": "^3.1.4", "npm-package-arg": "^6.1.1", - "npm-packlist": "^1.4.7", + "npm-packlist": "^1.4.8", "npm-pick-manifest": "^3.0.2", - "npm-profile": "^4.0.2", - "npm-registry-fetch": "^4.0.2", + "npm-profile": "^4.0.4", + "npm-registry-fetch": "^4.0.3", "npm-user-validate": "~1.0.0", "npmlog": "~4.1.2", "once": "~1.4.0", @@ -10107,11 +10188,11 @@ "read-installed": "~4.0.3", "read-package-json": "^2.1.1", "read-package-tree": "^5.3.1", - "readable-stream": "^3.4.0", + "readable-stream": "^3.6.0", "readdir-scoped-modules": "^1.1.0", "request": "^2.88.0", "retry": "^0.12.0", - "rimraf": "^2.6.3", + "rimraf": "^2.7.1", "safe-buffer": "^5.1.2", "semver": "^5.7.1", "sha": "^3.0.0", @@ -10412,7 +10493,7 @@ } }, "chownr": { - "version": "1.1.3", + "version": "1.1.4", "bundled": true, "dev": true }, @@ -10718,7 +10799,7 @@ "dev": true }, "deep-extend": { - "version": "0.5.1", + "version": "0.6.0", "bundled": true, "dev": true }, @@ -11217,7 +11298,7 @@ } }, "glob": { - "version": "7.1.4", + "version": "7.1.6", "bundled": true, "dev": true, "requires": { @@ -11305,7 +11386,7 @@ "dev": true }, "hosted-git-info": { - "version": "2.8.5", + "version": "2.8.8", "bundled": true, "dev": true }, @@ -11441,11 +11522,11 @@ "dev": true }, "is-ci": { - "version": "1.1.0", + "version": "1.2.1", "bundled": true, "dev": true, "requires": { - "ci-info": "^1.0.0" + "ci-info": "^1.5.0" }, "dependencies": { "ci-info": { @@ -11517,7 +11598,7 @@ } }, "is-retry-allowed": { - "version": "1.1.0", + "version": "1.2.0", "bundled": true, "dev": true }, @@ -11989,11 +12070,6 @@ "brace-expansion": "^1.1.7" } }, - "minimist": { - "version": "0.0.8", - "bundled": true, - "dev": true - }, "minizlib": { "version": "1.3.3", "bundled": true, @@ -12031,11 +12107,18 @@ } }, "mkdirp": { - "version": "0.5.1", + "version": "0.5.4", "bundled": true, "dev": true, "requires": { - "minimist": "0.0.8" + "minimist": "^1.2.5" + }, + "dependencies": { + "minimist": { + "version": "1.2.5", + "bundled": true, + "dev": true + } } }, "move-concurrently": { @@ -12084,7 +12167,7 @@ } }, "node-gyp": { - "version": "5.0.7", + "version": "5.1.0", "bundled": true, "dev": true, "requires": { @@ -12198,12 +12281,13 @@ } }, "npm-packlist": { - "version": "1.4.7", + "version": "1.4.8", "bundled": true, "dev": true, "requires": { "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" + "npm-bundled": "^1.0.1", + "npm-normalize-package-bin": "^1.0.1" } }, "npm-pick-manifest": { @@ -12217,7 +12301,7 @@ } }, "npm-profile": { - "version": "4.0.2", + "version": "4.0.4", "bundled": true, "dev": true, "requires": { @@ -12227,7 +12311,7 @@ } }, "npm-registry-fetch": { - "version": "4.0.2", + "version": "4.0.3", "bundled": true, "dev": true, "requires": { @@ -12662,18 +12746,18 @@ "dev": true }, "rc": { - "version": "1.2.7", + "version": "1.2.8", "bundled": true, "dev": true, "requires": { - "deep-extend": "^0.5.1", + "deep-extend": "^0.6.0", "ini": "~1.3.0", "minimist": "^1.2.0", "strip-json-comments": "~2.0.1" }, "dependencies": { "minimist": { - "version": "1.2.0", + "version": "1.2.5", "bundled": true, "dev": true } @@ -12732,7 +12816,7 @@ } }, "readable-stream": { - "version": "3.4.0", + "version": "3.6.0", "bundled": true, "dev": true, "requires": { @@ -12753,7 +12837,7 @@ } }, "registry-auth-token": { - "version": "3.3.2", + "version": "3.4.0", "bundled": true, "dev": true, "requires": { @@ -12817,7 +12901,7 @@ "dev": true }, "rimraf": { - "version": "2.6.3", + "version": "2.7.1", "bundled": true, "dev": true, "requires": { @@ -13116,11 +13200,18 @@ } }, "string_decoder": { - "version": "1.2.0", + "version": "1.3.0", "bundled": true, "dev": true, "requires": { - "safe-buffer": "~5.1.0" + "safe-buffer": "~5.2.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.0", + "bundled": true, + "dev": true + } } }, "stringify-package": { @@ -13429,7 +13520,7 @@ } }, "widest-line": { - "version": "2.0.0", + "version": "2.0.1", "bundled": true, "dev": true, "requires": { @@ -13805,24 +13896,6 @@ "is-wsl": "^1.1.0" } }, - "optimist": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", - "dev": true, - "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" - }, - "dependencies": { - "minimist": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", - "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", - "dev": true - } - } - }, "optionator": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", @@ -14225,9 +14298,9 @@ "dev": true }, "picomatch": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.1.tgz", - "integrity": "sha512-ISBaA8xQNmwELC7eOjqFKMESB2VIqt4PPDD0nsS95b/9dZXvVKOlz9keMSnoGGKcOHXfTvDD6WMaRoSc9UuhRA==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", "dev": true }, "pify": { @@ -15513,9 +15586,9 @@ } }, "semantic-release": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-17.0.4.tgz", - "integrity": "sha512-5y9QRSrZtdvACmlpX5DvEVsvFuKRDUVn7JVJFxPVLGrGofDf1d0M/+hA1wFmCjiJZ+VCY8bYaSqVqF14KCF9rw==", + "version": "17.0.6", + "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-17.0.6.tgz", + "integrity": "sha512-4djSoKUiq8ShAiKEzDKkcrzFyDREFJRMsY/efr/b48dcin2g+s4TsZUTniTg3Zvk+TM9G5rNBKyXfFgVO6wJNA==", "dev": true, "requires": { "@semantic-release/commit-analyzer": "^8.0.0", @@ -15542,7 +15615,7 @@ "p-reduce": "^2.0.0", "read-pkg-up": "^7.0.0", "resolve-from": "^5.0.0", - "semver": "^7.1.1", + "semver": "^7.3.2", "semver-diff": "^3.1.1", "signale": "^1.2.1", "yargs": "^15.0.1" @@ -15641,9 +15714,9 @@ "dev": true }, "semver": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.3.tgz", - "integrity": "sha512-ekM0zfiA9SCBlsKa2X1hxyxiI4L3B6EbVJkkdgQXnSEEaHlGdvyodMruTiulSRWMMB4NeIuYNMC9rTKTz97GxA==", + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", "dev": true }, "to-regex-range": { @@ -16711,20 +16784,27 @@ "dev": true }, "tempy": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.4.0.tgz", - "integrity": "sha512-mKnScm8aXv+cG6l1Nzp6mERGgC4UblbPnSDeQp83JgZ7xqDcnl+7u3+6zXnf1UE7YluDUTEIna1iKYwCSaOk9g==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.5.0.tgz", + "integrity": "sha512-VEY96x7gbIRfsxqsafy2l5yVxxp3PhwAGoWMyC2D2Zt5DmEv+2tGiPOrquNRpf21hhGnKLVEsuqleqiZmKG/qw==", "dev": true, "requires": { + "is-stream": "^2.0.0", "temp-dir": "^2.0.0", - "type-fest": "^0.10.0", + "type-fest": "^0.12.0", "unique-string": "^2.0.0" }, "dependencies": { + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + }, "type-fest": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.10.0.tgz", - "integrity": "sha512-EUV9jo4sffrwlg8s0zDhP0T2WD3pru5Xi0+HTE3zTUmBaZNhfkite9PdSJwdXLwPVW0jnAHT56pZHIOYckPEiw==", + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.12.0.tgz", + "integrity": "sha512-53RyidyjvkGpnWPMF9bQgFtWp+Sl8O2Rp13VavmJgfAP9WWG6q6TkrKU8iyJdnwnfgHI6k2hTlgqH4aSdjoTbg==", "dev": true } } @@ -17070,14 +17150,13 @@ "dev": true }, "uglify-js": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.8.0.tgz", - "integrity": "sha512-ugNSTT8ierCsDHso2jkBHXYrU8Y5/fY2ZUprfrJUiD7YpuFvV4jODLFmb3h4btQjqr5Nh4TX4XtgDfCU1WdioQ==", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.9.1.tgz", + "integrity": "sha512-JUPoL1jHsc9fOjVFHdQIhqEEJsQvfKDjlubcCilu8U26uZ73qOg8VsN8O1jbuei44ZPlwL7kmbAdM4tzaUvqnA==", "dev": true, "optional": true, "requires": { - "commander": "~2.20.3", - "source-map": "~0.6.1" + "commander": "~2.20.3" }, "dependencies": { "commander": { @@ -17086,13 +17165,6 @@ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true, "optional": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "optional": true } } }, @@ -17619,9 +17691,9 @@ } }, "windows-release": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-3.2.0.tgz", - "integrity": "sha512-QTlz2hKLrdqukrsapKsINzqMgOUpQW268eJ0OaOpJN32h272waxR9fkB9VoWRtK7uKHG5EHJcTXQBD8XZVJkFA==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-3.3.0.tgz", + "integrity": "sha512-2HetyTg1Y+R+rUgrKeUEhAG/ZuOmTrI1NBb3ZyAGQMYmOJjBBPe4MTodghRkmLJZHwkuPi02anbeGP+Zf401LQ==", "dev": true, "requires": { "execa": "^1.0.0" @@ -17654,9 +17726,9 @@ } }, "wordwrap": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", "dev": true }, "wrap-ansi": { @@ -17775,27 +17847,27 @@ "dev": true }, "yaml": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.7.2.tgz", - "integrity": "sha512-qXROVp90sb83XtAoqE8bP9RwAkTTZbugRUTm5YeFCBfNRPEp2YzTeqWiz7m5OORHzEvrA/qcGS8hp/E+MMROYw==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.9.0.tgz", + "integrity": "sha512-3GLZOj8A9Gsp0Fw3kOyj0zqk4xMq+YvhbHSDYALd2NMOfIpyZeBhz32ZiNU7AtX1MtXX/9JJgxSElGRwvv9enA==", "dev": true, "requires": { - "@babel/runtime": "^7.6.3" + "@babel/runtime": "^7.9.0" }, "dependencies": { "@babel/runtime": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.8.4.tgz", - "integrity": "sha512-neAp3zt80trRVBI1x0azq6c57aNBqYZH8KhMm3TaB7wEI5Q4A2SHfBHE8w9gOhI/lrqxtEbXZgQIrHP+wvSGwQ==", + "version": "7.9.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.2.tgz", + "integrity": "sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q==", "dev": true, "requires": { - "regenerator-runtime": "^0.13.2" + "regenerator-runtime": "^0.13.4" } }, "regenerator-runtime": { - "version": "0.13.3", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz", - "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==", + "version": "0.13.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz", + "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==", "dev": true } } diff --git a/package.json b/package.json index 524e94131..2164174a9 100644 --- a/package.json +++ b/package.json @@ -62,7 +62,7 @@ "markdown-link-check": "3.8.1", "parcel-bundler": "1.12.4", "prettier": "1.19.1", - "semantic-release": "17.0.4", + "semantic-release": "17.0.6", "serve": "11.3.0", "start-server-and-test": "1.10.11", "typescript": "3.8.3" From f1b6026e7974bd5055e7d61c778bb7ee1a760f28 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sat, 18 Apr 2020 06:08:44 +0000 Subject: [PATCH 65/85] chore(deps): update dependency start-server-and-test to v1.11.0 --- package-lock.json | 12 ++++++------ package.json | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7f25a554c..98b36d0e5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16350,9 +16350,9 @@ "dev": true }, "start-server-and-test": { - "version": "1.10.11", - "resolved": "https://registry.npmjs.org/start-server-and-test/-/start-server-and-test-1.10.11.tgz", - "integrity": "sha512-CZilaj293uQWdD4vgOxTOuzlCWxOyBm6bzmH1r6OGLG/q5zcBmGYevLfOimkg0kSn9jLHwYSXLuoKG/DDQJhww==", + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/start-server-and-test/-/start-server-and-test-1.11.0.tgz", + "integrity": "sha512-FhkJFYL/lvbd0tKWvbxWNWjtFtq3Zpa09QDjA8EUH88AsgNL4hkAAKYNmbac+fFM8/GIZoJ1Mj4mm3SMI0X1bA==", "dev": true, "requires": { "bluebird": "3.7.2", @@ -16365,9 +16365,9 @@ }, "dependencies": { "cross-spawn": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.1.tgz", - "integrity": "sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.2.tgz", + "integrity": "sha512-PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw==", "dev": true, "requires": { "path-key": "^3.1.0", diff --git a/package.json b/package.json index 2164174a9..469733667 100644 --- a/package.json +++ b/package.json @@ -64,7 +64,7 @@ "prettier": "1.19.1", "semantic-release": "17.0.6", "serve": "11.3.0", - "start-server-and-test": "1.10.11", + "start-server-and-test": "1.11.0", "typescript": "3.8.3" }, "nyc": { From 999c15ad3396a1b36c9ef6abd343633873a96578 Mon Sep 17 00:00:00 2001 From: Gleb Bahmutov Date: Sat, 18 Apr 2020 09:57:18 -0400 Subject: [PATCH 66/85] add link to bahmutov/app-in-docker-coverage-example repo --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 72b17a273..0418ca331 100644 --- a/README.md +++ b/README.md @@ -342,6 +342,7 @@ Look up the list of examples under GitHub topic [cypress-code-coverage-example]( - [akoidan/vue-webpack-typescript](https://github.com/akoidan/vue-webpack-typescript) Pure webpack config with vue + typescript with codecov reports. This setup uses babel-loader with TS checker as a separate thread. - [bahmutov/code-coverage-subfolder-example](https://github.com/bahmutov/code-coverage-subfolder-example) shows how to instrument `app` folder using `nyc instrument` as a separate step before running E2E tests - [bahmutov/docker-with-cypress-included-code-coverage-example](https://github.com/bahmutov/docker-with-cypress-included-code-coverage-example) runs tests inside pre-installed Cypress using [cypress/included:x.y.z](https://github.com/cypress-io/cypress-docker-images/tree/master/included) Docker image and reports code coverage. +- [bahmutov/app-in-docker-coverage-example](https://github.com/bahmutov/app-in-docker-coverage-example) shows an app running inside a Docker container, while Cypress runs on the local machine. Cypress can still [discover the source files](https://github.com/cypress-io/code-coverage/pull/197) before generating the report. ## Migrations From 9b38d409cd0cef785840b40c743c8c62f049f9e8 Mon Sep 17 00:00:00 2001 From: Gleb Bahmutov Date: Mon, 20 Apr 2020 09:39:11 -0400 Subject: [PATCH 67/85] fix: split utils into support and task utils (#202) * fix: split utils for task from utils for support file * fix typo * add TypeScript type check * move function * fix options --- .circleci/config.yml | 12 +++++- cypress/integration/filtering.js | 2 +- cypress/integration/spec.js | 4 +- package.json | 3 +- support-utils.js | 67 ++++++++++++++++++++++++++++++++ support.js | 12 +++++- utils.js => task-utils.js | 64 ++---------------------------- task.js | 6 +-- 8 files changed, 98 insertions(+), 72 deletions(-) create mode 100644 support-utils.js rename utils.js => task-utils.js (72%) diff --git a/.circleci/config.yml b/.circleci/config.yml index e5e67f839..a7e548e90 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -17,8 +17,16 @@ jobs: - checkout - node/with-cache: steps: - - run: CYPRESS_INSTALL_BINARY=0 npm ci - - run: npm run format:check + - run: + name: Install dependencies 📦 + # installs NPM dependencies but skips Cypress + command: CYPRESS_INSTALL_BINARY=0 npm ci + - run: + name: Code style check 🧹 + command: npm run format:check + - run: + name: Types lint 🧹 + command: npm run types publish: description: Publishes the new version of the plugin to NPM diff --git a/cypress/integration/filtering.js b/cypress/integration/filtering.js index 212c8618d..76cd3de47 100644 --- a/cypress/integration/filtering.js +++ b/cypress/integration/filtering.js @@ -1,4 +1,4 @@ -const { filterSpecsFromCoverage } = require('../../utils') +const { filterSpecsFromCoverage } = require('../../support-utils') describe('minimatch', () => { it('string matches', () => { diff --git a/cypress/integration/spec.js b/cypress/integration/spec.js index f92f090c1..ba1b59d7f 100644 --- a/cypress/integration/spec.js +++ b/cypress/integration/spec.js @@ -3,7 +3,7 @@ /// import { add } from '../unit' -const { fixSourcePathes } = require('../../utils') +const { fixSourcePaths } = require('../../support-utils') context('Page test', () => { beforeEach(() => { @@ -54,7 +54,7 @@ context('Unit tests', () => { } } - fixSourcePathes(coverage) + fixSourcePaths(coverage) expect(coverage).to.deep.eq({ '/absolute/src/component.vue': { diff --git a/package.json b/package.json index 469733667..0e9c0dae1 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,8 @@ "format": "prettier --write '*.js'", "format:check": "prettier --check '*.js'", "check:markdown": "find *.md -exec npx markdown-link-check {} \\;", - "effective:config": "circleci config process .circleci/config.yml | sed /^#/d" + "effective:config": "circleci config process .circleci/config.yml | sed /^#/d", + "types": "tsc --noEmit --allowJs *.js cypress/integration/*.js" }, "peerDependencies": { "cypress": "*" diff --git a/support-utils.js b/support-utils.js new file mode 100644 index 000000000..0a2222426 --- /dev/null +++ b/support-utils.js @@ -0,0 +1,67 @@ +// @ts-check +// helper functions that are safe to use in the browser +// from support.js file - no file system access + +/** + * remove coverage for the spec files themselves, + * only keep "external" application source file coverage + */ +const filterSpecsFromCoverage = (totalCoverage, config = Cypress.config) => { + const integrationFolder = config('integrationFolder') + // @ts-ignore + const testFilePattern = config('testFiles') + + // test files chould be: + // wild card string "**/*.*" (default) + // wild card string "**/*spec.js" + // list of wild card strings or names ["**/*spec.js", "spec-one.js"] + const testFilePatterns = Array.isArray(testFilePattern) + ? testFilePattern + : [testFilePattern] + + const isUsingDefaultTestPattern = testFilePattern === '**/*.*' + + const isTestFile = filename => { + const matchedPattern = testFilePatterns.some(specPattern => + Cypress.minimatch(filename, specPattern) + ) + const matchedEndOfPath = testFilePatterns.some(specPattern => + filename.endsWith(specPattern) + ) + return matchedPattern || matchedEndOfPath + } + + const isInIntegrationFolder = filename => + filename.startsWith(integrationFolder) + + const isA = (fileCoverge, filename) => isInIntegrationFolder(filename) + const isB = (fileCoverge, filename) => isTestFile(filename) + + const isTestFileFilter = isUsingDefaultTestPattern ? isA : isB + + const coverage = Cypress._.omitBy(totalCoverage, isTestFileFilter) + return coverage +} + +/** + * Replace source-map's path by the corresponding absolute file path + * (coverage report wouldn't work with source-map path being relative + * or containing Webpack loaders and query parameters) + */ +function fixSourcePaths(coverage) { + Object.values(coverage).forEach(file => { + const { path: absolutePath, inputSourceMap } = file + const fileName = /([^\/\\]+)$/.exec(absolutePath)[1] + if (!inputSourceMap || !fileName) return + + if (inputSourceMap.sourceRoot) inputSourceMap.sourceRoot = '' + inputSourceMap.sources = inputSourceMap.sources.map(source => + source.includes(fileName) ? absolutePath : source + ) + }) +} + +module.exports = { + fixSourcePaths, + filterSpecsFromCoverage +} diff --git a/support.js b/support.js index b061b6d48..d17a34836 100644 --- a/support.js +++ b/support.js @@ -1,7 +1,7 @@ /// // @ts-check -const { filterSpecsFromCoverage } = require('./utils') +const { filterSpecsFromCoverage } = require('./support-utils') /** * Sends collected code coverage object to the backend code @@ -35,6 +35,7 @@ const logMessage = s => { const filterSupportFilesFromCoverage = totalCoverage => { const integrationFolder = Cypress.config('integrationFolder') const supportFile = Cypress.config('supportFile') + // @ts-ignore const supportFolder = Cypress.config('supportFolder') const isSupportFile = filename => filename === supportFile @@ -61,12 +62,14 @@ const registerHooks = () => { const hasE2ECoverage = () => Boolean(windowCoverageObjects.length) + // @ts-ignore const hasUnitTestCoverage = () => Boolean(window.__coverage__) before(() => { // we need to reset the coverage when running // in the interactive mode, otherwise the counters will // keep increasing every time we rerun the tests + // @ts-ignore cy.task('resetCoverage', { isInteractive: Cypress.config('isInteractive') }) }) @@ -133,7 +136,9 @@ const registerHooks = () => { // there might be server-side code coverage information // we should grab it once after all tests finish + // @ts-ignore const baseUrl = Cypress.config('baseUrl') || cy.state('window').origin + // @ts-ignore const runningEndToEndTests = baseUrl !== Cypress.config('proxyUrl') const specType = Cypress._.get(Cypress.spec, 'specType', 'integration') const isIntegrationSpec = specType === 'integration' @@ -152,7 +157,9 @@ const registerHooks = () => { log: false, failOnStatusCode: false }) - .then(r => Cypress._.get(r, 'body.coverage', null), { log: false }) + .then(r => { + return Cypress._.get(r, 'body.coverage', null) + }) .then(coverage => { if (!coverage) { // we did not get code coverage - this is the @@ -171,6 +178,7 @@ const registerHooks = () => { // then we will have unit test coverage // NOTE: spec iframe is NOT reset between the tests, so we can grab // the coverage information only once after all tests have finished + // @ts-ignore const unitTestCoverage = window.__coverage__ if (unitTestCoverage) { sendCoverage(unitTestCoverage, 'unit') diff --git a/utils.js b/task-utils.js similarity index 72% rename from utils.js rename to task-utils.js index be17e815f..1030fceb8 100644 --- a/utils.js +++ b/task-utils.js @@ -1,3 +1,6 @@ +// helper functions to use from "task.js" plugins code +// that need access to the file system + // @ts-check /// const { readFileSync, writeFileSync, existsSync } = require('fs') @@ -26,65 +29,6 @@ function checkAllPathsNotFound(nycFilename) { return allFilesAreMissing } -/** - * remove coverage for the spec files themselves, - * only keep "external" application source file coverage - */ -const filterSpecsFromCoverage = (totalCoverage, config = Cypress.config) => { - const integrationFolder = config('integrationFolder') - // @ts-ignore - const testFilePattern = config('testFiles') - - // test files chould be: - // wild card string "**/*.*" (default) - // wild card string "**/*spec.js" - // list of wild card strings or names ["**/*spec.js", "spec-one.js"] - const testFilePatterns = Array.isArray(testFilePattern) - ? testFilePattern - : [testFilePattern] - - const isUsingDefaultTestPattern = testFilePattern === '**/*.*' - - const isTestFile = filename => { - const matchedPattern = testFilePatterns.some(specPattern => - Cypress.minimatch(filename, specPattern) - ) - const matchedEndOfPath = testFilePatterns.some(specPattern => - filename.endsWith(specPattern) - ) - return matchedPattern || matchedEndOfPath - } - - const isInIntegrationFolder = filename => - filename.startsWith(integrationFolder) - - const isA = (fileCoverge, filename) => isInIntegrationFolder(filename) - const isB = (fileCoverge, filename) => isTestFile(filename) - - const isTestFileFilter = isUsingDefaultTestPattern ? isA : isB - - const coverage = Cypress._.omitBy(totalCoverage, isTestFileFilter) - return coverage -} - -/** - * Replace source-map's path by the corresponding absolute file path - * (coverage report wouldn't work with source-map path being relative - * or containing Webpack loaders and query parameters) - */ -function fixSourcePathes(coverage) { - Object.values(coverage).forEach(file => { - const { path: absolutePath, inputSourceMap } = file - const fileName = /([^\/\\]+)$/.exec(absolutePath)[1] - if (!inputSourceMap || !fileName) return - - if (inputSourceMap.sourceRoot) inputSourceMap.sourceRoot = '' - inputSourceMap.sources = inputSourceMap.sources.map(source => - source.includes(fileName) ? absolutePath : source - ) - }) -} - /** * A small debug utility to inspect paths saved in NYC output JSON file */ @@ -251,8 +195,6 @@ function tryFindingLocalFiles(nycFilename) { } module.exports = { - fixSourcePathes, - filterSpecsFromCoverage, showNycInfo, resolveRelativePaths, checkAllPathsNotFound, diff --git a/task.js b/task.js index 8d9135ff7..898cb28a9 100644 --- a/task.js +++ b/task.js @@ -4,12 +4,12 @@ const { join, resolve } = require('path') const { existsSync, mkdirSync, readFileSync, writeFileSync } = require('fs') const execa = require('execa') const { - fixSourcePathes, showNycInfo, resolveRelativePaths, checkAllPathsNotFound, tryFindingLocalFiles -} = require('./utils') +} = require('./task-utils') +const { fixSourcePaths } = require('./support-utils') const NYC = require('nyc') const debug = require('debug')('code-coverage') @@ -79,7 +79,7 @@ const tasks = { const coverage = JSON.parse(sentCoverage) debug('parsed sent coverage') - fixSourcePathes(coverage) + fixSourcePaths(coverage) const previous = existsSync(nycFilename) ? JSON.parse(readFileSync(nycFilename, 'utf8')) : istanbul.createCoverageMap({}) From 76f235ac9fbb682d8b4589fd706712378d59fd85 Mon Sep 17 00:00:00 2001 From: Gleb Bahmutov Date: Mon, 20 Apr 2020 13:53:06 -0400 Subject: [PATCH 68/85] Add simple webpack example (#204) * add webpack example folder * add webpack example * add CI for use-webpack example * call the right script * store artifacts for use-webpack * store artifacts using full folder for now * try contains before typing * try showing the console log messages * fix variable print * test with dev version of the orb * use orb 1.19.2 * update readme files --- .circleci/config.yml | 38 +- README.md | 1 + examples/use-webpack/.babelrc | 3 + examples/use-webpack/README.md | 5 + examples/use-webpack/cypress.json | 7 + .../use-webpack/cypress/integration/spec.js | 16 + examples/use-webpack/cypress/plugins/index.js | 18 + examples/use-webpack/dist/index.html | 29 + examples/use-webpack/package.json | 17 + examples/use-webpack/src/calc.js | 10 + examples/use-webpack/src/index.js | 14 + examples/use-webpack/webpack.config.js | 28 + package-lock.json | 1414 ++++++++++++++++- package.json | 11 +- 14 files changed, 1604 insertions(+), 7 deletions(-) create mode 100644 examples/use-webpack/.babelrc create mode 100644 examples/use-webpack/README.md create mode 100644 examples/use-webpack/cypress.json create mode 100644 examples/use-webpack/cypress/integration/spec.js create mode 100644 examples/use-webpack/cypress/plugins/index.js create mode 100644 examples/use-webpack/dist/index.html create mode 100644 examples/use-webpack/package.json create mode 100644 examples/use-webpack/src/calc.js create mode 100644 examples/use-webpack/src/index.js create mode 100644 examples/use-webpack/webpack.config.js diff --git a/.circleci/config.yml b/.circleci/config.yml index a7e548e90..3956cd2e6 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,7 +1,7 @@ # https://circleci.com/docs/2.0/configuration-reference/ version: 2.1 orbs: - cypress: cypress-io/cypress@1.17.1 # used to run e2e tests + cypress: cypress-io/cypress@1.19.2 # used to run e2e tests node: circleci/node@1.1.6 # used to publish new NPM version jobs: @@ -255,6 +255,41 @@ workflows: ../../node_modules/.bin/only-covered main.ts calc.ts working_directory: examples/ts-example + - cypress/run: + attach-workspace: true + name: example-use-webpack + requires: + - cypress/install + # there are no jobs to follow this one + # so no need to save the workspace files (saves time) + no-workspace: true + working_directory: examples/use-webpack + build: npm run build + start: npm start + wait-on: 'http://localhost:5000' + command: '../../node_modules/.bin/cypress run' + # wrong path when using working_directory + # https://github.com/cypress-io/circleci-orb/issues/265 + # store screenshots and videos + # store_artifacts: true + post-steps: + - store_artifacts: + path: examples/use-webpack/cypress/videos + - store_artifacts: + path: examples/use-webpack/cypress/screenshots + # store the created coverage report folder + # you can click on it in the CircleCI UI + # to see live static HTML site + - store_artifacts: + path: examples/use-webpack/coverage + - run: + name: Check code coverage 📈 + command: | + ../../node_modules/.bin/check-coverage src/index.js + ../../node_modules/.bin/check-coverage src/calc.js + ../../node_modules/.bin/only-covered src/index.js src/calc.js + working_directory: examples/use-webpack + - cypress/run: attach-workspace: true name: example-same-folder @@ -428,3 +463,4 @@ workflows: - example-one-spec - example-exclude-files - example-docker-paths + - example-use-webpack diff --git a/README.md b/README.md index 0418ca331..2c3eb9b6c 100644 --- a/README.md +++ b/README.md @@ -323,6 +323,7 @@ Full examples we use for testing in this repository: - [examples/before-each-visit](examples/before-each-visit) checks if code coverage correctly keeps track of code when doing `cy.visit` before each test - [examples/one-spec.js](examples/one-spec.js) confirms that coverage is collected and filtered correctly if the user only executes a single Cypress test - [examples/ts-example](examples/ts-example) uses Babel + Parcel to instrument and serve TypeScript file +- [examples/use-webpack](examples/use-webpack) shows Webpack build with source maps and Babel ### External examples diff --git a/examples/use-webpack/.babelrc b/examples/use-webpack/.babelrc new file mode 100644 index 000000000..7a016cf8e --- /dev/null +++ b/examples/use-webpack/.babelrc @@ -0,0 +1,3 @@ +{ + "plugins": ["istanbul"] +} diff --git a/examples/use-webpack/README.md b/examples/use-webpack/README.md new file mode 100644 index 000000000..c9a1d5cbc --- /dev/null +++ b/examples/use-webpack/README.md @@ -0,0 +1,5 @@ +# use-webpack + +> Instruments the built bundle using Webpack + +Webpack uses [webpack.config.js](webpack.config.js) to build the bundle from [src/index.js](src/index.js) into `dist/main.js`, loaded from [dist/index.html](dist/index.html). The [cypress/integration/spec.js](cypress/integration/spec.js) also uses one of the functions from [src/calc.js](src/calc.js) directly. The final coverage includes both E2E and unit test coverage information. diff --git a/examples/use-webpack/cypress.json b/examples/use-webpack/cypress.json new file mode 100644 index 000000000..380584766 --- /dev/null +++ b/examples/use-webpack/cypress.json @@ -0,0 +1,7 @@ +{ + "baseUrl": "http://localhost:5000", + "supportFile": "../../support", + "fixturesFolder": false, + "viewportHeight": 400, + "viewportWidth": 400 +} diff --git a/examples/use-webpack/cypress/integration/spec.js b/examples/use-webpack/cypress/integration/spec.js new file mode 100644 index 000000000..4e4d57889 --- /dev/null +++ b/examples/use-webpack/cypress/integration/spec.js @@ -0,0 +1,16 @@ +/// +import { add } from '../../src/calc' + +describe('Webpack example', () => { + it('loads', () => { + cy.visit('/') + cy.contains('Webpack page').should('be.visible') + cy.get('#user-input').type('Hello{enter}') + cy.contains('olleH').should('be.visible') + }) + + it('has add function', () => { + // test "add" via this unit test + expect(add(2, 3)).to.equal(5) + }) +}) diff --git a/examples/use-webpack/cypress/plugins/index.js b/examples/use-webpack/cypress/plugins/index.js new file mode 100644 index 000000000..8f0321b0d --- /dev/null +++ b/examples/use-webpack/cypress/plugins/index.js @@ -0,0 +1,18 @@ +/// +const webpack = require('@cypress/webpack-preprocessor') + +/** + * @type {Cypress.PluginConfig} + */ +module.exports = (on, config) => { + const options = { + // use the same Webpack options to bundle spec files as your app does "normally" + // which should instrument the spec files in this project + webpackOptions: require('../../webpack.config'), + watchOptions: {} + } + on('file:preprocessor', webpack(options)) + + require('../../../../task')(on, config) + return config +} diff --git a/examples/use-webpack/dist/index.html b/examples/use-webpack/dist/index.html new file mode 100644 index 000000000..1441f5a36 --- /dev/null +++ b/examples/use-webpack/dist/index.html @@ -0,0 +1,29 @@ + + + + Webpack example + + + +

Webpack page

+ +
+ + + diff --git a/examples/use-webpack/package.json b/examples/use-webpack/package.json new file mode 100644 index 000000000..006c21fff --- /dev/null +++ b/examples/use-webpack/package.json @@ -0,0 +1,17 @@ +{ + "name": "example-use-webpack", + "version": "1.0.0", + "description": "Code coverage from webpack", + "private": true, + "scripts": { + "cy:open": "../../node_modules/.bin/cypress open", + "cy:run": "../../node_modules/.bin/cypress run", + "dev": "../../node_modules/.bin/start-test 5000 cy:open", + "build": "../../node_modules/.bin/webpack", + "start": "../../node_modules/.bin/serve dist", + "test:ci": "../../node_modules/.bin/start-test 5000 cy:run" + }, + "keywords": [], + "author": "", + "license": "ISC" +} diff --git a/examples/use-webpack/src/calc.js b/examples/use-webpack/src/calc.js new file mode 100644 index 000000000..44341b61c --- /dev/null +++ b/examples/use-webpack/src/calc.js @@ -0,0 +1,10 @@ +export const add = (a, b) => { + return a + b +} + +export const reverse = s => { + return s + .split('') + .reverse() + .join('') +} diff --git a/examples/use-webpack/src/index.js b/examples/use-webpack/src/index.js new file mode 100644 index 000000000..56c457b83 --- /dev/null +++ b/examples/use-webpack/src/index.js @@ -0,0 +1,14 @@ +import { reverse } from './calc' + +if (window.Cypress) { + require('console-log-div') + console.log('attaching event listeners') +} + +document.getElementById('user-input').addEventListener('change', e => { + const s = e.target.value + console.log(`input string "${s}"`) + const reversed = reverse(s) + document.getElementById('reversed').innerText = reversed +}) +console.log('added event listener') diff --git a/examples/use-webpack/webpack.config.js b/examples/use-webpack/webpack.config.js new file mode 100644 index 000000000..ff9c29053 --- /dev/null +++ b/examples/use-webpack/webpack.config.js @@ -0,0 +1,28 @@ +const path = require('path') + +// https://webpack.js.org/guides/development/ +module.exports = { + entry: './src/index.js', + mode: 'development', + devtool: 'inline-source-map', + output: { + filename: 'main.js', + path: path.resolve(__dirname, 'dist') + }, + module: { + rules: [ + { + // when bundling application's own source code + // transpile using Babel which uses .babelrc file + // and instruments code using babel-plugin-istanbul + test: /\.js/, + exclude: /(node_modules|bower_components)/, + use: [ + { + loader: 'babel-loader' + } + ] + } + ] + } +} diff --git a/package-lock.json b/package-lock.json index 98b36d0e5..af4a9ca9b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2597,6 +2597,24 @@ } } }, + "@cypress/webpack-preprocessor": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@cypress/webpack-preprocessor/-/webpack-preprocessor-5.1.2.tgz", + "integrity": "sha512-Id8OQ9sRlSHhh8xXYI10jN54Mr5MHCbkD3+mu0BTMGrVFGNcWfcMc5+aOhDPlgHJ7rHp1mmaEJtpx853Fpg7lg==", + "dev": true, + "requires": { + "bluebird": "3.7.1", + "debug": "4.1.1" + }, + "dependencies": { + "bluebird": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.1.tgz", + "integrity": "sha512-DdmyoGCleJnkbp3nkbxTLJ18rjDsE4yCggEwKNXkeV123sPNfOCYeDoeuOY+F2FrSjO1YXcTU+dsy96KMy+gcg==", + "dev": true + } + } + }, "@cypress/xvfb": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz", @@ -3422,6 +3440,193 @@ "integrity": "sha512-7EJYyKTL7tFR8+gDbB6Wwz/arpGa0Mywk1TJbNzKzHtzbwVmY4HR9WqS5VV7dsBUKQmPNr192jHr/VpBluj/hg==", "dev": true }, + "@webassemblyjs/ast": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", + "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", + "dev": true, + "requires": { + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", + "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", + "dev": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", + "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", + "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", + "dev": true + }, + "@webassemblyjs/helper-code-frame": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", + "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", + "dev": true, + "requires": { + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "@webassemblyjs/helper-fsm": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", + "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", + "dev": true + }, + "@webassemblyjs/helper-module-context": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", + "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", + "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", + "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", + "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", + "dev": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", + "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", + "dev": true, + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", + "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", + "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/helper-wasm-section": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-opt": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", + "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", + "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", + "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "@webassemblyjs/wast-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", + "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/floating-point-hex-parser": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-code-frame": "1.9.0", + "@webassemblyjs/helper-fsm": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", + "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, "@zeit/schemas": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/@zeit/schemas/-/schemas-2.6.0.tgz", @@ -3547,6 +3752,18 @@ "uri-js": "^4.2.2" } }, + "ajv-errors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", + "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", + "dev": true + }, + "ajv-keywords": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz", + "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==", + "dev": true + }, "alphanum-sort": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", @@ -3628,6 +3845,12 @@ "default-require-extensions": "^3.0.0" } }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, "arch": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/arch/-/arch-2.1.1.tgz", @@ -3815,6 +4038,128 @@ "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", "dev": true }, + "babel-loader": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.1.0.tgz", + "integrity": "sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw==", + "dev": true, + "requires": { + "find-cache-dir": "^2.1.0", + "loader-utils": "^1.4.0", + "mkdirp": "^0.5.3", + "pify": "^4.0.1", + "schema-utils": "^2.6.5" + }, + "dependencies": { + "ajv": { + "version": "6.12.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz", + "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "fast-deep-equal": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", + "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", + "dev": true + }, + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + }, + "schema-utils": { + "version": "2.6.6", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.6.tgz", + "integrity": "sha512-wHutF/WPSbIi9x6ctjGGk2Hvl0VOz5l3EKEuKbjPlB30mKZUzb9A5k9yEXRX3pwyqVLPvpfZZEllaFq/M718hA==", + "dev": true, + "requires": { + "ajv": "^6.12.0", + "ajv-keywords": "^3.4.1" + } + } + } + }, "babel-plugin-add-module-exports": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/babel-plugin-add-module-exports/-/babel-plugin-add-module-exports-1.0.2.tgz", @@ -3973,6 +4318,12 @@ "integrity": "sha512-IWIbu7pMqyw3EAJHzzHbWa85b6oud/yfKYg5rqB5hNE8CeMi3nX+2C2sj0HswfblST86hpVEOAb9x34NZd6P7A==", "dev": true }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, "binary-extensions": { "version": "1.13.1", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", @@ -4388,6 +4739,45 @@ "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", "dev": true }, + "cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "dev": true, + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + }, + "dependencies": { + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, "cache-base": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", @@ -4567,6 +4957,21 @@ "upath": "^1.1.1" } }, + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "chrome-trace-event": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", + "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, "ci-info": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", @@ -5023,6 +5428,12 @@ "date-now": "^0.1.4" } }, + "console-log-div": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/console-log-div/-/console-log-div-0.6.3.tgz", + "integrity": "sha1-CGJyDKpyU0DgXLRIjOjO9f8goAo=", + "dev": true + }, "constants-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", @@ -5153,6 +5564,20 @@ "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", "dev": true }, + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + } + }, "copy-descriptor": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", @@ -5572,6 +5997,12 @@ "array-find-index": "^1.0.1" } }, + "cyclist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", + "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", + "dev": true + }, "cypress": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/cypress/-/cypress-4.4.0.tgz", @@ -5921,6 +6352,12 @@ "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", "dev": true }, + "detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", + "dev": true + }, "detective": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz", @@ -6056,6 +6493,18 @@ "readable-stream": "^2.0.2" } }, + "duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, "ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", @@ -6102,6 +6551,12 @@ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, "encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", @@ -6116,6 +6571,29 @@ "once": "^1.4.0" } }, + "enhanced-resolve": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz", + "integrity": "sha512-98p2zE+rL7/g/DzMHMTF4zZlCgeVdJ7yr6xzEpJRYwFYrGi9ANdn5DnJURg6RpBkyk60XYDnWIv51VfIhfNGuA==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" + }, + "dependencies": { + "memory-fs": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", + "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + } + } + }, "entities": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", @@ -6138,6 +6616,15 @@ "integrity": "sha512-FdDfnWnCVjxTTpWE3d6Jgh5JDIA3Cw7LCgpM/pI7kK1ORkjaqI2r6NqQ+ln2j0dfpgxY00AWieSvtkiZQKIItA==", "dev": true }, + "errno": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", + "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", + "dev": true, + "requires": { + "prr": "~1.0.1" + } + }, "error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", @@ -6228,11 +6715,30 @@ } } }, + "eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, "esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" }, + "esrecurse": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "dev": true, + "requires": { + "estraverse": "^4.1.0" + } + }, "estraverse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", @@ -6416,6 +6922,15 @@ } } }, + "expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "dev": true, + "requires": { + "homedir-polyfill": "^1.0.1" + } + }, "express": { "version": "4.17.1", "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", @@ -6697,6 +7212,12 @@ "pend": "~1.2.0" } }, + "figgy-pudding": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", + "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", + "dev": true + }, "figures": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", @@ -6788,6 +7309,28 @@ "semver-regex": "^2.0.0" } }, + "findup-sync": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", + "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", + "dev": true, + "requires": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + } + }, + "flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, "for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", @@ -6923,6 +7466,18 @@ } } }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -7538,6 +8093,41 @@ "ini": "^1.3.4" } }, + "global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dev": true, + "requires": { + "global-prefix": "^3.0.0" + }, + "dependencies": { + "global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dev": true, + "requires": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + } + } + } + }, + "global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "dev": true, + "requires": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + } + }, "globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", @@ -7806,6 +8396,15 @@ "minimalistic-crypto-utils": "^1.0.1" } }, + "homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "dev": true, + "requires": { + "parse-passwd": "^1.0.0" + } + }, "hook-std": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/hook-std/-/hook-std-2.0.0.tgz", @@ -8015,6 +8614,12 @@ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "dev": true + }, "ignore": { "version": "5.1.4", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.4.tgz", @@ -8048,6 +8653,55 @@ "resolve-from": "^5.0.0" } }, + "import-local": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", + "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", + "dev": true, + "requires": { + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + } + } + }, "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -8065,6 +8719,12 @@ "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", "dev": true }, + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true + }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -8110,6 +8770,12 @@ "xtend": "^4.0.0" } }, + "interpret": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz", + "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==", + "dev": true + }, "into-stream": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-5.1.1.tgz", @@ -8128,6 +8794,12 @@ "loose-envify": "^1.0.0" } }, + "invert-kv": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", + "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", + "dev": true + }, "ipaddr.js": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", @@ -8961,6 +9633,15 @@ "integrity": "sha1-eZllXoZGwX8In90YfRUNMyTVRRM=", "dev": true }, + "lcid": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", + "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", + "dev": true, + "requires": { + "invert-kv": "^2.0.0" + } + }, "levn": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", @@ -9181,6 +9862,23 @@ } } }, + "loader-runner": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", + "dev": true + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, "locate-path": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", @@ -9416,6 +10114,15 @@ } } }, + "map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "dev": true, + "requires": { + "p-defer": "^1.0.0" + } + }, "map-cache": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", @@ -9685,6 +10392,35 @@ "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", "dev": true }, + "mem": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", + "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", + "dev": true, + "requires": { + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^2.0.0", + "p-is-promise": "^2.0.0" + }, + "dependencies": { + "p-is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", + "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==", + "dev": true + } + } + }, + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, "meow": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/meow/-/meow-5.0.0.tgz", @@ -9840,6 +10576,24 @@ "is-plain-obj": "^1.1.0" } }, + "mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "dev": true, + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + }, "mixin-deep": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", @@ -9908,6 +10662,20 @@ "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==", "dev": true }, + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -13923,6 +14691,43 @@ "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" }, + "os-locale": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", + "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", + "dev": true, + "requires": { + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" + }, + "dependencies": { + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + } + } + }, "os-name": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/os-name/-/os-name-3.1.0.tgz", @@ -13947,6 +14752,12 @@ "shell-quote": "^1.4.2" } }, + "p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", + "dev": true + }, "p-each-series": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.1.0.tgz", @@ -14052,6 +14863,17 @@ "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=", "dev": true }, + "parallel-transform": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", + "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", + "dev": true, + "requires": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, "parcel-bundler": { "version": "1.12.4", "resolved": "https://registry.npmjs.org/parcel-bundler/-/parcel-bundler-1.12.4.tgz", @@ -14175,6 +14997,12 @@ "json-parse-better-errors": "^1.0.1" } }, + "parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", + "dev": true + }, "parse5": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.0.tgz", @@ -14939,6 +15767,12 @@ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true + }, "proxy-addr": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz", @@ -14949,6 +15783,12 @@ "ipaddr.js": "1.9.0" } }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true + }, "ps-tree": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/ps-tree/-/ps-tree-1.2.0.tgz", @@ -14992,6 +15832,29 @@ "once": "^1.3.1" } }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + }, + "dependencies": { + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } + }, "punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", @@ -15469,6 +16332,46 @@ "path-parse": "^1.0.6" } }, + "resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "dev": true, + "requires": { + "resolve-from": "^3.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + } + } + }, + "resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "dev": true, + "requires": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + }, + "dependencies": { + "global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dev": true, + "requires": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + } + } + } + }, "resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", @@ -15542,6 +16445,15 @@ "integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==", "dev": true }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "dev": true, + "requires": { + "aproba": "^1.1.1" + } + }, "rxjs": { "version": "6.5.4", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz", @@ -15585,10 +16497,21 @@ "xmlchars": "^2.1.1" } }, - "semantic-release": { - "version": "17.0.6", - "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-17.0.6.tgz", - "integrity": "sha512-4djSoKUiq8ShAiKEzDKkcrzFyDREFJRMsY/efr/b48dcin2g+s4TsZUTniTg3Zvk+TM9G5rNBKyXfFgVO6wJNA==", + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "semantic-release": { + "version": "17.0.6", + "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-17.0.6.tgz", + "integrity": "sha512-4djSoKUiq8ShAiKEzDKkcrzFyDREFJRMsY/efr/b48dcin2g+s4TsZUTniTg3Zvk+TM9G5rNBKyXfFgVO6wJNA==", "dev": true, "requires": { "@semantic-release/commit-analyzer": "^8.0.0", @@ -15804,6 +16727,12 @@ } } }, + "serialize-javascript": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.2.tgz", + "integrity": "sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==", + "dev": true + }, "serialize-to-js": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/serialize-to-js/-/serialize-to-js-3.0.0.tgz", @@ -16186,6 +17115,12 @@ } } }, + "source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "dev": true + }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", @@ -16343,6 +17278,15 @@ "tweetnacl": "~0.14.0" } }, + "ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1" + } + }, "stable": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", @@ -16555,6 +17499,16 @@ "readable-stream": "^2.0.2" } }, + "stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, "stream-http": { "version": "2.8.3", "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", @@ -16567,6 +17521,12 @@ "xtend": "^4.0.0" } }, + "stream-shift": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", + "dev": true + }, "stream-splicer": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.1.tgz", @@ -16777,6 +17737,12 @@ "acorn-node": "^1.2.0" } }, + "tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "dev": true + }, "temp-dir": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", @@ -16893,6 +17859,112 @@ } } }, + "terser-webpack-plugin": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz", + "integrity": "sha512-QMxecFz/gHQwteWwSo5nTc6UaICqN1bMedC5sMtUc7y3Ha3Q8y6ZO0iCR8pq4RJC8Hjf0FEPEHZqcMB/+DFCrA==", + "dev": true, + "requires": { + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^2.1.2", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "terser": { + "version": "4.6.11", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.11.tgz", + "integrity": "sha512-76Ynm7OXUG5xhOpblhytE7X58oeNSmC8xnNhjWVo8CksHit0U0kO4hfNbPrrYwowLWFgM2n9L176VNx2QaHmtA==", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + } + } + } + }, "test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", @@ -17325,6 +18397,24 @@ "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", "dev": true }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dev": true, + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } + }, "unique-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", @@ -17626,6 +18716,39 @@ "xtend": "^4.0.0" } }, + "watchpack": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.1.tgz", + "integrity": "sha512-+IF9hfUFOrYOOaKyfaI7h7dquUIOgyEMoQMLA7OP5FxegKA2+XdXThAZ9TU2kucfhDH7rfMHs1oPYziVGWRnZA==", + "dev": true, + "requires": { + "chokidar": "^2.1.8", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0" + }, + "dependencies": { + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + } + } + }, "wcwidth": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", @@ -17641,6 +18764,280 @@ "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", "dev": true }, + "webpack": { + "version": "4.42.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.42.1.tgz", + "integrity": "sha512-SGfYMigqEfdGchGhFFJ9KyRpQKnipvEvjc1TwrXEPCM6H5Wywu10ka8o3KGrMzSMxMQKt8aCHUFh5DaQ9UmyRg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/wasm-edit": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "acorn": "^6.2.1", + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^4.1.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.3", + "neo-async": "^2.6.1", + "node-libs-browser": "^2.2.1", + "schema-utils": "^1.0.0", + "tapable": "^1.1.3", + "terser-webpack-plugin": "^1.4.3", + "watchpack": "^1.6.0", + "webpack-sources": "^1.4.1" + }, + "dependencies": { + "acorn": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", + "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==", + "dev": true + }, + "ajv": { + "version": "6.12.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz", + "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "fast-deep-equal": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", + "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", + "dev": true + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + } + } + }, + "webpack-cli": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.11.tgz", + "integrity": "sha512-dXlfuml7xvAFwYUPsrtQAA9e4DOe58gnzSxhgrO/ZM/gyXTBowrsYeubyN4mqGhYdpXMFNyQ6emjJS9M7OBd4g==", + "dev": true, + "requires": { + "chalk": "2.4.2", + "cross-spawn": "6.0.5", + "enhanced-resolve": "4.1.0", + "findup-sync": "3.0.0", + "global-modules": "2.0.0", + "import-local": "2.0.0", + "interpret": "1.2.0", + "loader-utils": "1.2.3", + "supports-color": "6.1.0", + "v8-compile-cache": "2.0.3", + "yargs": "13.2.4" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "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" + } + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "dev": true + }, + "enhanced-resolve": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz", + "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.4.0", + "tapable": "^1.0.0" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "loader-utils": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", + "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "v8-compile-cache": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz", + "integrity": "sha512-CNmdbwQMBjwr9Gsmohvm0pbL954tJrNzf6gWL3K+QMQf00PF7ERGrEiLgjuU3mKreLC2MeGhUsNV9ybTbLgd3w==", + "dev": true + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + } + }, + "yargs": { + "version": "13.2.4", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.2.4.tgz", + "integrity": "sha512-HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg==", + "dev": true, + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "os-locale": "^3.1.0", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.0" + } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, "whatwg-encoding": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", @@ -17731,6 +19128,15 @@ "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", "dev": true }, + "worker-farm": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", + "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", + "dev": true, + "requires": { + "errno": "~0.1.7" + } + }, "wrap-ansi": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", diff --git a/package.json b/package.json index 0e9c0dae1..6303a497a 100644 --- a/package.json +++ b/package.json @@ -55,8 +55,11 @@ }, "devDependencies": { "@babel/core": "7.9.0", + "@cypress/webpack-preprocessor": "5.1.2", + "babel-loader": "8.1.0", "babel-plugin-istanbul": "6.0.0", "check-code-coverage": "1.0.1", + "console-log-div": "0.6.3", "cypress": "4.4.0", "express": "4.17.1", "lodash": "4.17.15", @@ -66,9 +69,13 @@ "semantic-release": "17.0.6", "serve": "11.3.0", "start-server-and-test": "1.11.0", - "typescript": "3.8.3" + "typescript": "3.8.3", + "webpack": "4.42.1", + "webpack-cli": "3.3.11" }, "nyc": { - "exclude": ["utils.js"] + "exclude": [ + "utils.js" + ] } } From 1366d15b1a4ec6fcf9cc9a028f84e09d78667881 Mon Sep 17 00:00:00 2001 From: Gleb Bahmutov Date: Mon, 20 Apr 2020 16:00:35 -0400 Subject: [PATCH 69/85] feat: merge nyc options from multiple files (#205) Merges NYC settings from - defaults - .nycrc - .nycrc.json - package.json nyc object --- .circleci/config.yml | 5 +- .nycrc.json | 6 +++ cypress/integration/combine-spec.js | 66 +++++++++++++++++++++++++ package-lock.json | 15 ++++-- package.json | 7 +-- task-utils.js | 65 +++++++++++++++++++++++- task.js | 77 ++++++++++++++++++----------- 7 files changed, 201 insertions(+), 40 deletions(-) create mode 100644 .nycrc.json create mode 100644 cypress/integration/combine-spec.js diff --git a/.circleci/config.yml b/.circleci/config.yml index 3956cd2e6..36f968513 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -369,6 +369,7 @@ workflows: store_artifacts: true post-steps: - run: cat examples/exclude-files/.nyc_output/out.json + - run: cat examples/exclude-files/coverage/coverage-final.json # store the created coverage report folder # you can click on it in the CircleCI UI # to see live static HTML site @@ -380,9 +381,11 @@ workflows: working_directory: examples/exclude-files - run: name: Check code coverage 📈 + # we will check the final coverage report + # to make sure it only has files we are interested in command: | ../../node_modules/.bin/check-coverage main.js - ../../node_modules/.bin/only-covered main.js + ../../node_modules/.bin/only-covered --from coverage/coverage-final.json main.js working_directory: examples/exclude-files - cypress/run: diff --git a/.nycrc.json b/.nycrc.json new file mode 100644 index 000000000..6f8691fda --- /dev/null +++ b/.nycrc.json @@ -0,0 +1,6 @@ +{ + "exclude": [ + "support-utils.js", + "task-utils.js" + ] +} diff --git a/cypress/integration/combine-spec.js b/cypress/integration/combine-spec.js new file mode 100644 index 000000000..9c05d1a6a --- /dev/null +++ b/cypress/integration/combine-spec.js @@ -0,0 +1,66 @@ +const { combineNycOptions, defaultNycOptions } = require('../../task-utils') +describe('Combine NYC options', () => { + it('overrides defaults', () => { + const pkgNycOptions = { + extends: '@istanbuljs/nyc-config-typescript', + all: true + } + const combined = combineNycOptions({ + pkgNycOptions, + defaultNycOptions + }) + cy.wrap(combined).should('deep.equal', { + extends: '@istanbuljs/nyc-config-typescript', + all: true, + 'report-dir': './coverage', + reporter: ['lcov', 'clover', 'json'], + extension: ['.js', '.cjs', '.mjs', '.ts', '.tsx', '.jsx'], + excludeAfterRemap: true + }) + }) + + it('allows to specify reporter, but changes to array', () => { + const pkgNycOptions = { + reporter: 'text' + } + const combined = combineNycOptions({ + pkgNycOptions, + defaultNycOptions + }) + cy.wrap(combined).should('deep.equal', { + 'report-dir': './coverage', + reporter: ['text'], + extension: ['.js', '.cjs', '.mjs', '.ts', '.tsx', '.jsx'], + excludeAfterRemap: true + }) + }) + + it('combines multiple options', () => { + const pkgNycOptions = { + all: true, + extension: '.js' + } + const nycrc = { + include: ['foo.js'] + } + const nycrcJson = { + exclude: ['bar.js'], + reporter: ['json'] + } + const combined = combineNycOptions({ + pkgNycOptions, + nycrc, + nycrcJson, + defaultNycOptions + }) + cy.wrap(combined).should('deep.equal', { + all: true, + 'report-dir': './coverage', + reporter: ['json'], + extension: ['.js'], + excludeAfterRemap: true, + include: ['foo.js'], + exclude: ['bar.js'] + }) + }) +}) diff --git a/package-lock.json b/package-lock.json index af4a9ca9b..ff483e708 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4924,12 +4924,21 @@ } }, "check-code-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/check-code-coverage/-/check-code-coverage-1.0.1.tgz", - "integrity": "sha512-gQ61+sUoChj5krJoIi2CYWqrnLrol7VVRV5XksslabXfX4tle9KqARVuL6NqbcKSa2yQ1eN2kloKDwmib8ut9g==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/check-code-coverage/-/check-code-coverage-1.1.0.tgz", + "integrity": "sha512-l9FJyUN2S6+tP2AjaMWg+DqwJZCcSs8NbtOCxGIYQ85w8RR3O/0zi7jq/T0irGnVNcVdxIHJU5sHEI4f0KjxDA==", "dev": true, "requires": { + "arg": "4.1.3", "lodash": "4.17.15" + }, + "dependencies": { + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + } } }, "check-more-types": { diff --git a/package.json b/package.json index 6303a497a..17fb3f41b 100644 --- a/package.json +++ b/package.json @@ -58,7 +58,7 @@ "@cypress/webpack-preprocessor": "5.1.2", "babel-loader": "8.1.0", "babel-plugin-istanbul": "6.0.0", - "check-code-coverage": "1.0.1", + "check-code-coverage": "1.1.0", "console-log-div": "0.6.3", "cypress": "4.4.0", "express": "4.17.1", @@ -72,10 +72,5 @@ "typescript": "3.8.3", "webpack": "4.42.1", "webpack-cli": "3.3.11" - }, - "nyc": { - "exclude": [ - "utils.js" - ] } } diff --git a/task-utils.js b/task-utils.js index 1030fceb8..289af83b3 100644 --- a/task-utils.js +++ b/task-utils.js @@ -7,6 +7,66 @@ const { readFileSync, writeFileSync, existsSync } = require('fs') const { isAbsolute, resolve, join } = require('path') const debug = require('debug')('code-coverage') +function combineNycOptions({ + pkgNycOptions, + nycrc, + nycrcJson, + defaultNycOptions +}) { + // last option wins + const nycOptions = Object.assign( + {}, + defaultNycOptions, + nycrc, + nycrcJson, + pkgNycOptions + ) + + if (typeof nycOptions.reporter === 'string') { + nycOptions.reporter = [nycOptions.reporter] + } + if (typeof nycOptions.extension === 'string') { + nycOptions.extension = [nycOptions.extension] + } + + return nycOptions +} + +const defaultNycOptions = { + 'report-dir': './coverage', + reporter: ['lcov', 'clover', 'json'], + extension: ['.js', '.cjs', '.mjs', '.ts', '.tsx', '.jsx'], + excludeAfterRemap: true +} + +function readNycOptions(workingDirectory) { + const pkgFilename = join(workingDirectory, 'package.json') + const pkg = existsSync(pkgFilename) + ? JSON.parse(readFileSync(pkgFilename, 'utf8')) + : {} + const pkgNycOptions = pkg.nyc || {} + + const nycrcFilename = join(workingDirectory, '.nycrc') + const nycrc = existsSync(nycrcFilename) + ? JSON.parse(readFileSync(nycrcFilename, 'utf8')) + : {} + + const nycrcJsonFilename = join(workingDirectory, '.nycrc.json') + const nycrcJson = existsSync(nycrcJsonFilename) + ? JSON.parse(readFileSync(nycrcJsonFilename, 'utf8')) + : {} + + const nycOptions = combineNycOptions({ + pkgNycOptions, + nycrc, + nycrcJson, + defaultNycOptions + }) + debug('combined NYC options %o', nycOptions) + + return nycOptions +} + function checkAllPathsNotFound(nycFilename) { const nycCoverage = JSON.parse(readFileSync(nycFilename, 'utf8')) @@ -198,5 +258,8 @@ module.exports = { showNycInfo, resolveRelativePaths, checkAllPathsNotFound, - tryFindingLocalFiles + tryFindingLocalFiles, + readNycOptions, + combineNycOptions, + defaultNycOptions } diff --git a/task.js b/task.js index 898cb28a9..4e3f44f02 100644 --- a/task.js +++ b/task.js @@ -7,7 +7,8 @@ const { showNycInfo, resolveRelativePaths, checkAllPathsNotFound, - tryFindingLocalFiles + tryFindingLocalFiles, + readNycOptions } = require('./task-utils') const { fixSourcePaths } = require('./support-utils') const NYC = require('nyc') @@ -28,7 +29,6 @@ const pkgFilename = join(processWorkingDirectory, 'package.json') const pkg = existsSync(pkgFilename) ? JSON.parse(readFileSync(pkgFilename, 'utf8')) : {} -const nycOptions = pkg.nyc || {} const scripts = pkg.scripts || {} const DEFAULT_CUSTOM_COVERAGE_SCRIPT_NAME = 'coverage:report' const customNycReportScript = scripts[DEFAULT_CUSTOM_COVERAGE_SCRIPT_NAME] @@ -42,6 +42,37 @@ function saveCoverage(coverage) { writeFileSync(nycFilename, JSON.stringify(coverage, null, 2)) } +function maybePrintFinalCoverageFiles(folder) { + const jsonReportFilename = join(folder, 'coverage-final.json') + if (!existsSync) { + debug('Did not find final coverage file %s', jsonReportFilename) + return + } + + debug('Final coverage in %s', jsonReportFilename) + const finalCoverage = JSON.parse(readFileSync(jsonReportFilename, 'utf8')) + Object.keys(finalCoverage).forEach(key => { + const s = finalCoverage[key].s || {} + const statements = Object.keys(s) + const totalStatements = statements.length + let coveredStatements = 0 + statements.forEach(statementKey => { + if (s[statementKey]) { + coveredStatements += 1 + } + }) + + const allCovered = coveredStatements === totalStatements + debug( + '%s %s statements covered %d/%d', + allCovered ? '✅' : '⚠️', + key, + coveredStatements, + totalStatements + ) + }) +} + const tasks = { /** * Clears accumulated code coverage information. @@ -122,32 +153,13 @@ const tasks = { }) } - const reportFolder = nycOptions['report-dir'] || './coverage' - const reportDir = resolve(reportFolder) - const reporter = nycOptions['reporter'] || ['lcov', 'clover', 'json'] - - // TODO we could look at how NYC is parsing its CLI arguments - // I am mostly worried about additional NYC options that are stored in - // package.json and .nycrc resource files. - // for now let's just camel case all options // https://github.com/istanbuljs/nyc#common-configuration-options - const nycReportOptions = { - reportDir, - tempDir: coverageFolder, - reporter: [].concat(reporter), // make sure this is a list - include: nycOptions.include, - exclude: nycOptions.exclude, - // from working with TypeScript code seems we need these settings too - excludeAfterRemap: true, - extension: nycOptions.extension || [ - '.js', - '.cjs', - '.mjs', - '.ts', - '.tsx', - '.jsx' - ], - all: nycOptions.all + const nycReportOptions = readNycOptions(processWorkingDirectory) + + // override a couple of options + nycReportOptions.tempDir = coverageFolder + if (nycReportOptions['report-dir']) { + nycReportOptions['report-dir'] = resolve(nycReportOptions['report-dir']) } debug('calling NYC reporter with options %o', nycReportOptions) @@ -155,8 +167,15 @@ const tasks = { const nyc = new NYC(nycReportOptions) const returnReportFolder = () => { - debug('after reporting, returning the report folder name %s', reportDir) - return reportDir + const reportFolder = nycReportOptions['report-dir'] + debug( + 'after reporting, returning the report folder name %s', + reportFolder + ) + + maybePrintFinalCoverageFiles(reportFolder) + + return reportFolder } return nyc.report().then(returnReportFolder) } From 4ab5aa368d7dd0acae828d5ab3ef76040810774b Mon Sep 17 00:00:00 2001 From: Gleb Bahmutov Date: Mon, 20 Apr 2020 16:04:55 -0400 Subject: [PATCH 70/85] add note about instrumenting the app --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 2c3eb9b6c..915ffd615 100644 --- a/README.md +++ b/README.md @@ -388,6 +388,8 @@ $ DEBUG=code-coverage npm run dev code-coverage saving coverage report using command: "nyc report --report-dir ./coverage --reporter=lcov --reporter=clover --reporter=json" +3ms ``` +Common issue: [not instrumenting your application when running Cypress](#instrument-your-application). + ## Contributing You can test changes locally by running tests and confirming the code coverage has been calculated and saved. From 08cb2b3b9ce18bcbb951cd9bb197e2dd6fa795a3 Mon Sep 17 00:00:00 2001 From: Gleb Bahmutov Date: Mon, 20 Apr 2020 16:07:03 -0400 Subject: [PATCH 71/85] add notes to github issue template --- .github/ISSUE_TEMPLATE/bug_report.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index f7718ec45..c7e745aa9 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -17,6 +17,8 @@ Please provide debug logs by running Cypress from the terminal with `DEBUG=code- - What is the shell? - What is the Node version? - What is the NPM version? +- How do you instrument your application? Cypress [does not instrument web application code](https://github.com/cypress-io/code-coverage#instrument-your-application), so you need to do it yourself. +- When running tests, if you open the web application in regular browser, and open DevTools, do you see `window.__coverage__` object? Can you paste a screenshot? - Is there `.nyc_output` folder? Is there `.nyc_output/out.json` file. Is it empty? Can you paste at least part of it so we can see the keys and file paths? - Do you have any custom NYC settings in `package.json` (`nyc` object) or in other [NYC config files](https://github.com/istanbuljs/nyc#configuration-files) - Do you run Cypress tests in a Docker container? From e1945c612195397b5d1df920c66ba639a54ba521 Mon Sep 17 00:00:00 2001 From: Gleb Bahmutov Date: Mon, 20 Apr 2020 18:43:30 -0400 Subject: [PATCH 72/85] add section on app vs unit test instrumentation --- README.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 915ffd615..412e3a33a 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,7 @@ module.exports = (on, config) => { } ``` -### Instrument your application +## Instrument your application This plugin **DOES NOT** instrument your code. You have to instrument it yourself using [Istanbul.js](https://istanbul.js.org/) tool. Luckily it is not difficult. For example, if you are already using Babel to transpile you can add [babel-plugin-istanbul](https://github.com/istanbuljs/babel-plugin-istanbul) to your `.babelrc` and instrument on the fly. @@ -53,6 +53,12 @@ If you have instrumented your application's code and see the `window.__coverage_ That should be it! +### App vs unit tests + +You need to instrument your web application. This means that when the test does `cy.visit('localhost:3000')` any code the `index.html` requests should be instrumented by YOU. See [Examples](#examples) section for advice, usually you need to stick `babel-plugin-istanbul` into your pipeline somewhere. + +If you are testing individual functions from your application code by importing them directly into Cypress spec files, this is called "unit tests" and Cypress can instrument this scenario for you. See [Instrument unit tests](#instrument-unit-tests) section. + ## Reports The `coverage` folder has results in several formats, and the coverage raw data is stored in `.nyc_output` folder. You can see the coverage numbers yourself. This plugin has `nyc` as a dependency, so it should be available right away. Here are common examples: @@ -117,7 +123,7 @@ module.exports = (on, config) => { Now the code coverage from spec files will be combined with end-to-end coverage. -### Alternative +### Alternative for unit tests If you cannot use `.babelrc` for some reason (maybe it is used by other tools?), try using the Browserify transformer included with this module in `use-browserify-istanbul` file. From 7606b6f93952339d20e2195604955b16d51c4507 Mon Sep 17 00:00:00 2001 From: Gleb Bahmutov Date: Mon, 20 Apr 2020 19:04:42 -0400 Subject: [PATCH 73/85] fix: output good message to the console if coverage not found --- README.md | 5 + examples/use-webpack/README.md | 2 + examples/use-webpack/dist/index.html | 2 - package-lock.json | 636 ++++++++++++++++++++++++++- package.json | 1 + task-utils.js | 16 +- task.js | 1 + 7 files changed, 648 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 412e3a33a..78e8a3311 100644 --- a/README.md +++ b/README.md @@ -53,6 +53,11 @@ If you have instrumented your application's code and see the `window.__coverage_ That should be it! +### More information + +- Read [Cypress Code Coverage: Instrumenting code](https://on.cypress.io/code-coverage#Instrumenting-code) guide +- Watch [Code coverage](https://youtu.be/C8g5X4vCZJA) webinar + ### App vs unit tests You need to instrument your web application. This means that when the test does `cy.visit('localhost:3000')` any code the `index.html` requests should be instrumented by YOU. See [Examples](#examples) section for advice, usually you need to stick `babel-plugin-istanbul` into your pipeline somewhere. diff --git a/examples/use-webpack/README.md b/examples/use-webpack/README.md index c9a1d5cbc..9021bdeb6 100644 --- a/examples/use-webpack/README.md +++ b/examples/use-webpack/README.md @@ -3,3 +3,5 @@ > Instruments the built bundle using Webpack Webpack uses [webpack.config.js](webpack.config.js) to build the bundle from [src/index.js](src/index.js) into `dist/main.js`, loaded from [dist/index.html](dist/index.html). The [cypress/integration/spec.js](cypress/integration/spec.js) also uses one of the functions from [src/calc.js](src/calc.js) directly. The final coverage includes both E2E and unit test coverage information. + +**Note:** this project requires `npm run build` before running `npm run dev`. diff --git a/examples/use-webpack/dist/index.html b/examples/use-webpack/dist/index.html index 1441f5a36..23b4aace3 100644 --- a/examples/use-webpack/dist/index.html +++ b/examples/use-webpack/dist/index.html @@ -4,11 +4,9 @@ Webpack example