diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..0f09989 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,10 @@ +# editorconfig.org +root = true + +[*] +indent_style = space +indent_size = 2 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2f61f1f --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +.DS_Store +coverage +node_modules +npm-debug.log diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..e83e3e5 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,17 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "type": "node", + "request": "launch", + "name": "grunt", + "program": "${workspaceFolder}/node_modules/grunt/bin/grunt", + "args": [ + "--verbose" + ] + } + ] +} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..9c3be1a --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,8 @@ +// Place your settings in this file to overwrite default and user settings. +{ + "files.exclude": { + "coverage": true, + "node_modules": true, + "npm-debug.log": true + } +} diff --git a/Gruntfile.js b/Gruntfile.js new file mode 100644 index 0000000..47dd0d1 --- /dev/null +++ b/Gruntfile.js @@ -0,0 +1,70 @@ +module.exports = function (grunt) { + const coverage = grunt.option('coverage') + const alternativePort = '9517' + + grunt.initConfig({ + safaridriver: { + quiet: {}, + verbose: { verbose: true, args: [`--port=${alternativePort}`] }, + otherPort: { port: +alternativePort, findAvailablePort: true }, + fail: { args: ['--invalid'] } + }, + + standard: { + all: { + src: [ + 'Gruntfile.js', + 'tasks/**/*.js', + '<%= nodeunit.started %>', + '<%= nodeunit.stopped %>' + ] + } + }, + + instrument: { + files: 'tasks/**/*.js', + options: { + lazy: true, + basePath: 'coverage/' + } + }, + + storeCoverage: { + options: { dir: 'coverage' } + }, + + makeReport: { + src: 'coverage/coverage.json', + options: { + type: 'lcov', + dir: 'coverage', + print: 'detail' + } + }, + + nodeunit: { + started: ['test/started.js'], + stopped: ['test/stopped.js'] + } + }) + + grunt.loadNpmTasks('grunt-contrib-nodeunit') + grunt.loadNpmTasks('grunt-istanbul') + grunt.loadNpmTasks('grunt-standard') + grunt.loadTasks(coverage ? 'coverage/tasks' : 'tasks') + + process.env.SAFARIDRIVER_PORT = undefined + grunt.registerTask('switchPort', 'Grunt task switching the safaridriver port.', function () { + process.env.SAFARIDRIVER_PORT = alternativePort + }) + + let test = [ + 'standard', 'nodeunit:stopped', 'safaridriver:quiet:start', + 'nodeunit:started', 'safaridriver:quiet:stop', + 'nodeunit:stopped', 'safaridriver:verbose:start', 'switchPort', + 'nodeunit:started', 'safaridriver:verbose:stop', 'nodeunit:stopped', + 'safaridriver:otherPort:start', 'nodeunit:started' + ] + if (coverage) test = test.concat(['storeCoverage', 'makeReport']) + grunt.registerTask('default', test) +} diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..5123e84 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Ferdinand Prantl + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..900eb93 --- /dev/null +++ b/README.md @@ -0,0 +1,144 @@ +# grunt-safaridriver +[![NPM version](https://badge.fury.io/js/grunt-safaridriver.png)](http://badge.fury.io/js/grunt-safaridriver) +[![Build Status](https://travis-ci.org/prantlf/grunt-safaridriver.png)](https://travis-ci.org/prantlf/grunt-safaridriver) +[![codecov](https://codecov.io/gh/prantlf/grunt-safaridriver/branch/master/graph/badge.svg)](https://codecov.io/gh/prantlf/grunt-safaridriver) +[![codebeat badge](https://codebeat.co/badges/1777e780-ea70-4ebd-8f5a-df278c5761d6)](https://codebeat.co/projects/github-com-prantlf-grunt-safaridriver-master) +[![Dependency Status](https://david-dm.org/prantlf/grunt-safaridriver.svg)](https://david-dm.org/prantlf/grunt-safaridriver) +[![devDependency Status](https://david-dm.org/prantlf/grunt-safaridriver/dev-status.svg)](https://david-dm.org/prantlf/grunt-safaridriver#info=devDependencies) +[![peerDependency Status](https://david-dm.org/prantlf/grunt-safaridriver/peer-status.svg)](https://david-dm.org/prantlf/grunt-safaridriver#info=peerDependencies) + +[![NPM Downloads](https://nodei.co/npm/grunt-safaridriver.png?downloads=true&stars=true)](https://www.npmjs.com/package/grunt-safaridriver) + +Controls Safari on OSX using the WebDriver interface via safaridriver without Selenium. + +If you use a modern test driver like [webdriverio], you will not need [Selenium] to run the tests, because the browser driver itself implements the [WebDriver] interface. This module provides a [Grunt] multi-task for installing, starting and stopping the [safaridriver] executable. You take care of maintaining the reasonably recent vewsion of OSX and Safari. Starting with Safari 10 on OS X El Capitan and macOS Sierra, Safari comes bundled with a new driver implementation that's maintained by the Web Developer Experience team at Apple. You might need to run `safaridriver --enable` to enable this feature. + +This task, [grunt-chromedriver] and [grunt-geckodriver] can be used as a replacement for [grunt-selenium-standalone] for tasks like [grunt-html-dom-snapshot], to simplify the whole scenario by removing [Selenium] and [Java] from the requirements. + +## Installation + +You need [node >= 10][node], [npm] and [grunt >= 1.0.0][Grunt] installed and +your project build managed by a [Gruntfile]. If you have not used Grunt before, +be sure to check out the [Getting Started] guide, as it explains how to create +a Gruntfile as well as install and use Grunt plugins. Once you are familiar +with that process, you may install this plugin with this command: + + npm install grunt-safaridriver --save-dev + +## Configuration + +Add the `safaridriver` entry with one or more tasks to the options of the +`grunt.initConfig` method in `Gruntfile.js`: + +```js +grunt.initConfig({ + safaridriver: { + default: {} + } +}); +``` + +Load the plugin: + +```javascript +grunt.loadNpmTasks('grunt-safaridriver'); +``` + +Add use the task to start and stop the browser driver before and after the tests: + +```js +grunt.registerTask('default', ['safaridriver:default:start', ..., 'safaridriver:default:stop']); +``` + +### Options + +Default task options support the most usual usage scenario: + +```js +safaridriver: { + default: { + port: 4444, + findAvailablePort: false, + args: [], + force: false + } +} +``` + +#### port +Type: `Number` +Default value: `4444` + +The port for the `safaridriver` to listen to. If `findAvailablePort` is set to +`true`, this port will be used to start the search for a free port with. + +### findAvailablePort +Type: `Boolean` +Default value: `false` + +If set to `true`, the value of `port` will be used to start the search for a +free port with. + +### args +Type: `Array` +Default value: `[]` + +Command-line arguments for the `safaridriver` executable. Available ones: + + -p, --port Port number the driver should use. If the server + is already running, the port cannot be changed. + If port 0 is specified, a default port will be used. + --enable Applies configuration changes so that subsequent WebDriver + sessions will run without further authentication. + --diagnose Causes safaridriver to log diagnostic information for + all sessions hosted by this instance. See the safaridriver(1) + man page for more details about diagnostic logging. + +### force +Type: `Boolean` +Default value: `false` + +If set to `true`, it suppresses failures. Instead of making the Grunt fail, +the errors will be written only to the console. + +### Events + +If `findAvailablePort` is set to `true`, the actual chosen port can be read by: + +```js +grunt.config.get(`safaridriver..port`) +``` + +As soon es the browser driver process starts listening, an event will be +triggered with the actually chosen port: + +```js +grunt.event.on(`safaridriver..listening`, port => {...}) +``` + +## Contributing + +In lieu of a formal styleguide, take care to maintain the existing coding +style. Add unit tests for any new or changed functionality. Lint and test +your code using Grunt. + +## License + +Copyright (c) 2020 Ferdinand Prantl + +Licensed under the MIT license. + +[node]: https://nodejs.org +[npm]: https://npmjs.org +[Grunt]: https://gruntjs.com +[Gruntfile]: https://gruntjs.com/sample-gruntfile +[Getting Gtarted]: https://github.com/gruntjs/grunt/wiki/Getting-started +[Selenium]: http://www.seleniumhq.org/download/ +[safaridriver]: https://developer.apple.com/documentation/webkit/testing_with_webdriver_in_safari +[webdriverio]: http://webdriver.io/ +[Java]: https://java.com/en/download/ +[WebDriver]: https://www.w3.org/TR/webdriver/ +[grunt-html-dom-snapshot]: https://github.com/prantlf/grunt-html-dom-snapshot#readme +[grunt-selenium-standalone]: https://github.com/zs-zs/grunt-selenium-standalone#readme +[grunt-chromedriver]: https://github.com/prantlf/grunt-chromedriver#readme +[grunt-geckodriver]: https://github.com/prantlf/grunt-geckodriver#readme diff --git a/package.json b/package.json new file mode 100644 index 0000000..e57cbcc --- /dev/null +++ b/package.json @@ -0,0 +1,59 @@ +{ + "name": "grunt-safaridriver", + "description": "Controls Safari on OSX using the WebDriver interface via safaridriver without Selenium.", + "version": "0.0.1", + "homepage": "https://github.com/prantlf/grunt-safaridriver#readme", + "author": { + "name": "Ferdinand Prantl", + "email": "prantlf@gmail.com", + "url": "http://prantl.tk" + }, + "repository": { + "type": "git", + "url": "https://github.com/prantlf/grunt-safaridriver.git" + }, + "bugs": { + "url": "https://github.com/prantlf/grunt-safaridriver/issues" + }, + "license": "MIT", + "licenses": [ + { + "type": "MIT", + "url": "https://github.com/prantlf/grunt-safaridriver/blob/master/LICENSE" + } + ], + "engines": { + "node": ">=10" + }, + "files": [ + "tasks" + ], + "scripts": { + "lint": "grunt standard", + "test": "grunt", + "coverage": "grunt instrument && grunt --coverage" + }, + "dependencies": { + "portscanner": "2.2.0", + "tcp-port-used": "1.0.1" + }, + "devDependencies": { + "grunt": "1.2.1", + "grunt-contrib-nodeunit": "2.1.0", + "grunt-istanbul": "0.8.0", + "grunt-standard": "3.2.0", + "webdriverio": "6.4.0" + }, + "peerDependencies": { + "grunt": ">=1.2.1" + }, + "keywords": [ + "grunt-task", + "gruntplugin", + "testing", + "browser", + "webdriver", + "safaridriver", + "safari" + ] +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..c8f63fb --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,4778 @@ +dependencies: + portscanner: 2.2.0 + tcp-port-used: 1.0.1 +devDependencies: + grunt: 1.2.1 + grunt-contrib-nodeunit: 2.1.0 + grunt-istanbul: 0.8.0_grunt@1.2.1 + grunt-standard: 3.2.0 + webdriverio: 6.4.0 +lockfileVersion: 5.1 +packages: + /@babel/code-frame/7.10.4: + dependencies: + '@babel/highlight': 7.10.4 + dev: true + resolution: + integrity: sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg== + /@babel/generator/7.10.5: + dependencies: + '@babel/types': 7.10.5 + jsesc: 2.5.2 + source-map: 0.5.7 + dev: true + resolution: + integrity: sha512-3vXxr3FEW7E7lJZiWQ3bM4+v/Vyr9C+hpolQ8BGFr9Y8Ri2tFLWTixmwKBafDujO1WVah4fhZBeU1bieKdghig== + /@babel/helper-function-name/7.10.4: + dependencies: + '@babel/helper-get-function-arity': 7.10.4 + '@babel/template': 7.10.4 + '@babel/types': 7.10.5 + dev: true + resolution: + integrity: sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ== + /@babel/helper-get-function-arity/7.10.4: + dependencies: + '@babel/types': 7.10.5 + dev: true + resolution: + integrity: sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A== + /@babel/helper-split-export-declaration/7.10.4: + dependencies: + '@babel/types': 7.10.5 + dev: true + resolution: + integrity: sha512-pySBTeoUff56fL5CBU2hWm9TesA4r/rOkI9DyJLvvgz09MB9YtfIYe3iBriVaYNaPe+Alua0vBIOVOLs2buWhg== + /@babel/helper-validator-identifier/7.10.4: + dev: true + resolution: + integrity: sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw== + /@babel/highlight/7.10.4: + dependencies: + '@babel/helper-validator-identifier': 7.10.4 + chalk: 2.4.2 + js-tokens: 4.0.0 + dev: true + resolution: + integrity: sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA== + /@babel/parser/7.10.5: + dev: true + engines: + node: '>=6.0.0' + hasBin: true + resolution: + integrity: sha512-wfryxy4bE1UivvQKSQDU4/X6dr+i8bctjUjj8Zyt3DQy7NtPizJXT8M52nqpNKL+nq2PW8lxk4ZqLj0fD4B4hQ== + /@babel/template/7.10.4: + dependencies: + '@babel/code-frame': 7.10.4 + '@babel/parser': 7.10.5 + '@babel/types': 7.10.5 + dev: true + resolution: + integrity: sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA== + /@babel/traverse/7.10.5: + dependencies: + '@babel/code-frame': 7.10.4 + '@babel/generator': 7.10.5 + '@babel/helper-function-name': 7.10.4 + '@babel/helper-split-export-declaration': 7.10.4 + '@babel/parser': 7.10.5 + '@babel/types': 7.10.5 + debug: 4.1.1 + globals: 11.12.0 + lodash: 4.17.19 + dev: true + resolution: + integrity: sha512-yc/fyv2gUjPqzTz0WHeRJH2pv7jA9kA7mBX2tXl/x5iOE81uaVPuGPtaYk7wmkx4b67mQ7NqI8rmT2pF47KYKQ== + /@babel/types/7.10.5: + dependencies: + '@babel/helper-validator-identifier': 7.10.4 + lodash: 4.17.19 + to-fast-properties: 2.0.0 + dev: true + resolution: + integrity: sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q== + /@sindresorhus/is/3.1.0: + dev: true + engines: + node: '>=10' + resolution: + integrity: sha512-n4J+zu52VdY43kdi/XdI9DzuMr1Mur8zFL5ZRG2opCans9aiFwkPxHYFEb5Xgy7n1Z4K6WfI4FpqUqsh3E8BPQ== + /@szmarczak/http-timer/4.0.5: + dependencies: + defer-to-connect: 2.0.0 + dev: true + engines: + node: '>=10' + resolution: + integrity: sha512-PyRA9sm1Yayuj5OIoJ1hGt2YISX45w9WcFbh6ddT0Z/0yaFxOtGLInr4jUfU1EAFVs0Yfyfev4RNwBlUaHdlDQ== + /@types/cacheable-request/6.0.1: + dependencies: + '@types/http-cache-semantics': 4.0.0 + '@types/keyv': 3.1.1 + '@types/node': 14.0.26 + '@types/responselike': 1.0.0 + dev: true + resolution: + integrity: sha512-ykFq2zmBGOCbpIXtoVbz4SKY5QriWPh3AjyU4G74RYbtt5yOc5OfaY75ftjg7mikMOla1CTGpX3lLbuJh8DTrQ== + /@types/color-name/1.1.1: + dev: true + resolution: + integrity: sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== + /@types/http-cache-semantics/4.0.0: + dev: true + resolution: + integrity: sha512-c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A== + /@types/keyv/3.1.1: + dependencies: + '@types/node': 14.0.26 + dev: true + resolution: + integrity: sha512-MPtoySlAZQ37VoLaPcTHCu1RWJ4llDkULYZIzOYxlhxBqYPB0RsRlmMU0R6tahtFe27mIdkHV+551ZWV4PLmVw== + /@types/node/14.0.26: + dev: true + resolution: + integrity: sha512-W+fpe5s91FBGE0pEa0lnqGLL4USgpLgs4nokw16SrBBco/gQxuua7KnArSEOd5iaMqbbSHV10vUDkJYJJqpXKA== + /@types/puppeteer/3.0.1: + dependencies: + '@types/node': 14.0.26 + dev: true + resolution: + integrity: sha512-t03eNKCvWJXhQ8wkc5C6GYuSqMEdKLOX0GLMGtks25YZr38wKZlKTwGM/BoAPVtdysX7Bb9tdwrDS1+NrW3RRA== + /@types/responselike/1.0.0: + dependencies: + '@types/node': 14.0.26 + dev: true + resolution: + integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA== + /@types/yauzl/2.9.1: + dependencies: + '@types/node': 14.0.26 + dev: true + optional: true + resolution: + integrity: sha512-A1b8SU4D10uoPjwb0lnHmmu8wZhR9d+9o2PKBQT2jU5YPTKsxac6M2qGAdY7VcL+dHHhARVUDmeg0rOrcd9EjA== + /@wdio/config/6.1.14: + dependencies: + '@wdio/logger': 6.0.16 + deepmerge: 4.2.2 + glob: 7.1.6 + dev: true + engines: + node: '>=10.0.0' + resolution: + integrity: sha512-MXHMHwtkAblfnIxONs9aW//T9Fq5XIw3oH+tztcBRvNTTAIXmwHd+4sOjAwjpCdBSGs0C4kM/aTpGfwDZVURvQ== + /@wdio/logger/6.0.16: + dependencies: + chalk: 4.1.0 + loglevel: 1.6.8 + loglevel-plugin-prefix: 0.8.4 + strip-ansi: 6.0.0 + dev: true + engines: + node: '>=10.0.0' + resolution: + integrity: sha512-VbH5UnQIG/3sSMV+Y38+rOdwyK9mVA9vuL7iOngoTafHwUjL1MObfN/Cex84L4mGxIgfxCu6GV48iUmSuQ7sqA== + /@wdio/protocols/6.3.6: + dev: true + engines: + node: '>=10.0.0' + resolution: + integrity: sha512-cocBRkv5sYUBxXResuxskQhIkKgDgE/yAtgMGR5wXLrtG/sMpZ2HVy6LOcOeARidAaRwbav80M2ZHjTCjPn53w== + /@wdio/repl/6.4.0: + dependencies: + '@wdio/utils': 6.4.0 + dev: true + engines: + node: '>=10.0.0' + resolution: + integrity: sha512-3oSRBzbWM67kng/ZqcDtFTHhTVO/fIALNqfyEEzaMb7oJ2OXgibBzjEa1r8ZhKIC8TpEAJ29BdSll4brHUhQrw== + /@wdio/utils/6.4.0: + dependencies: + '@wdio/logger': 6.0.16 + dev: true + engines: + node: '>=10.0.0' + resolution: + integrity: sha512-sAVBbgQjUmvbvkQ/EyWIUSDoebtiZewmf6wb6Pt6EZfaTm4hul30Txd+IXfazhuxp701PskwufkMWzrQIXhpKw== + /abbrev/1.0.9: + dev: true + resolution: + integrity: sha1-kbR5JYinc4wl813W9jdSovh3YTU= + /abbrev/1.1.1: + dev: true + resolution: + integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + /acorn-jsx/5.2.0_acorn@6.4.1: + dependencies: + acorn: 6.4.1 + dev: true + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 + resolution: + integrity: sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ== + /acorn/6.4.1: + dev: true + engines: + node: '>=0.4.0' + hasBin: true + resolution: + integrity: sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA== + /agent-base/5.1.1: + dev: true + engines: + node: '>= 6.0.0' + resolution: + integrity: sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g== + /ajv-keywords/3.5.1_ajv@6.12.3: + dependencies: + ajv: 6.12.3 + dev: true + peerDependencies: + ajv: ^6.9.1 + resolution: + integrity: sha512-KWcq3xN8fDjSB+IMoh2VaXVhRI0BBGxoYp3rx7Pkb6z0cFjYR9Q9l4yZqqals0/zsioCmocC5H6UvsGD4MoIBA== + /ajv/6.12.3: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.2.2 + dev: true + resolution: + integrity: sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA== + /amdefine/1.0.1: + dev: true + engines: + node: '>=0.4.2' + optional: true + resolution: + integrity: sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU= + /ansi-escapes/3.2.0: + dev: true + engines: + node: '>=4' + resolution: + integrity: sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== + /ansi-regex/2.1.1: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-w7M6te42DYbg5ijwRorn7yfWVN8= + /ansi-regex/3.0.0: + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= + /ansi-regex/4.1.0: + dev: true + engines: + node: '>=6' + resolution: + integrity: sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + /ansi-regex/5.0.0: + dev: true + engines: + node: '>=8' + resolution: + integrity: sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + /ansi-styles/2.2.1: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= + /ansi-styles/3.2.1: + dependencies: + color-convert: 1.9.3 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + /ansi-styles/4.2.1: + dependencies: + '@types/color-name': 1.1.1 + color-convert: 2.0.1 + dev: true + engines: + node: '>=8' + resolution: + integrity: sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== + /append-transform/1.0.0: + dependencies: + default-require-extensions: 2.0.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha512-P009oYkeHyU742iSZJzZZywj4QRJdnTWffaKuJQLablCZ1uz6/cW4yaRgcDaoQ+uwOxxnt0gRUcwfsNP2ri0gw== + /archiver-utils/2.1.0: + dependencies: + glob: 7.1.6 + graceful-fs: 4.2.4 + lazystream: 1.0.0 + lodash.defaults: 4.2.0 + lodash.difference: 4.5.0 + lodash.flatten: 4.4.0 + lodash.isplainobject: 4.0.6 + lodash.union: 4.6.0 + normalize-path: 3.0.0 + readable-stream: 2.3.7 + dev: true + engines: + node: '>= 6' + resolution: + integrity: sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw== + /archiver/5.0.0: + dependencies: + archiver-utils: 2.1.0 + async: 3.2.0 + buffer-crc32: 0.2.13 + readable-stream: 3.6.0 + readdir-glob: 1.0.0 + tar-stream: 2.1.3 + zip-stream: 4.0.2 + dev: true + engines: + node: '>= 10' + resolution: + integrity: sha512-AEWhJz6Yi6hWtN1Sqy/H4sZo/lLMJ/NftXxGaDy/TnOMmmjsRaZc/Ts+U4BsPoBQkuunTN6t8hk7iU9A+HBxLw== + /archy/1.0.0: + dev: true + resolution: + integrity: sha1-+cjBN1fMHde8N5rHeyxipcKGjEA= + /arg/4.1.3: + dev: true + resolution: + integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + /argparse/1.0.10: + dependencies: + sprintf-js: 1.0.3 + dev: true + resolution: + integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + /arr-diff/4.0.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= + /arr-flatten/1.1.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== + /arr-union/3.1.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= + /array-each/1.0.1: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-p5SvDAWrF1KEbudTofIRoFugxE8= + /array-includes/3.1.1: + dependencies: + define-properties: 1.1.3 + es-abstract: 1.17.6 + is-string: 1.0.5 + dev: true + engines: + node: '>= 0.4' + resolution: + integrity: sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ== + /array-slice/1.1.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w== + /array-unique/0.3.2: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= + /asap/2.0.6: + dev: true + resolution: + integrity: sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= + /asn1/0.2.4: + dependencies: + safer-buffer: 2.1.2 + dev: true + resolution: + integrity: sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== + /assert-plus/1.0.0: + dev: true + engines: + node: '>=0.8' + resolution: + integrity: sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= + /assign-symbols/1.0.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= + /async/1.5.2: + dev: true + resolution: + integrity: sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo= + /async/2.6.3: + dependencies: + lodash: 4.17.19 + dev: false + resolution: + integrity: sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== + /async/3.2.0: + dev: true + resolution: + integrity: sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw== + /asynckit/0.4.0: + dev: true + resolution: + integrity: sha1-x57Zf380y48robyXkLzDZkdLS3k= + /atob/2.1.2: + dev: true + engines: + node: '>= 4.5.0' + hasBin: true + resolution: + integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== + /aws-sign2/0.7.0: + dev: true + resolution: + integrity: sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= + /aws4/1.10.0: + dev: true + resolution: + integrity: sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA== + /babel-code-frame/6.26.0: + dependencies: + chalk: 1.1.3 + esutils: 2.0.3 + js-tokens: 3.0.2 + dev: true + resolution: + integrity: sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= + /balanced-match/1.0.0: + dev: true + resolution: + integrity: sha1-ibTRmasr7kneFk6gK4nORi1xt2c= + /base/0.11.2: + dependencies: + cache-base: 1.0.1 + class-utils: 0.3.6 + component-emitter: 1.3.0 + define-property: 1.0.0 + isobject: 3.0.1 + mixin-deep: 1.3.2 + pascalcase: 0.1.1 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== + /base64-js/1.3.1: + dev: true + resolution: + integrity: sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== + /bcrypt-pbkdf/1.0.2: + dependencies: + tweetnacl: 0.14.5 + dev: true + resolution: + integrity: sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= + /bind-obj-methods/2.0.0: + dev: true + resolution: + integrity: sha512-3/qRXczDi2Cdbz6jE+W3IflJOutRVica8frpBn14de1mBOkzDo+6tY33kNhvkw54Kn3PzRRD2VnGbGPcTAk4sw== + /bl/4.0.2: + dependencies: + buffer: 5.6.0 + inherits: 2.0.4 + readable-stream: 3.6.0 + dev: true + resolution: + integrity: sha512-j4OH8f6Qg2bGuWfRiltT2HYGx0e1QcBTrK9KAHNMwMZdQnDZFk0ZSYIpADjYCB3U12nicC5tVJwSIhwOWjb4RQ== + /brace-expansion/1.1.11: + dependencies: + balanced-match: 1.0.0 + concat-map: 0.0.1 + dev: true + resolution: + integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + /braces/2.3.2: + dependencies: + arr-flatten: 1.1.0 + array-unique: 0.3.2 + extend-shallow: 2.0.1 + fill-range: 4.0.0 + isobject: 3.0.1 + repeat-element: 1.1.3 + snapdragon: 0.8.2 + snapdragon-node: 2.1.1 + split-string: 3.1.0 + to-regex: 3.0.2 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== + /browser-process-hrtime/1.0.0: + dev: true + resolution: + integrity: sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== + /buffer-crc32/0.2.13: + dev: true + resolution: + integrity: sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= + /buffer-from/1.1.1: + dev: true + resolution: + integrity: sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== + /buffer/5.6.0: + dependencies: + base64-js: 1.3.1 + ieee754: 1.1.13 + dev: true + resolution: + integrity: sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw== + /cache-base/1.0.1: + dependencies: + collection-visit: 1.0.0 + component-emitter: 1.3.0 + get-value: 2.0.6 + has-value: 1.0.0 + isobject: 3.0.1 + set-value: 2.0.1 + to-object-path: 0.3.0 + union-value: 1.0.1 + unset-value: 1.0.0 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== + /cacheable-lookup/5.0.3: + dev: true + engines: + node: '>=10' + resolution: + integrity: sha512-W+JBqF9SWe18A72XFzN/V/CULFzPm7sBXzzR6ekkE+3tLG72wFZrBiBZhrZuDoYexop4PHJVdFAKb/Nj9+tm9w== + /cacheable-request/7.0.1: + dependencies: + clone-response: 1.0.2 + get-stream: 5.1.0 + http-cache-semantics: 4.1.0 + keyv: 4.0.1 + lowercase-keys: 2.0.0 + normalize-url: 4.5.0 + responselike: 2.0.0 + dev: true + engines: + node: '>=8' + resolution: + integrity: sha512-lt0mJ6YAnsrBErpTMWeu5kl/tg9xMAWjavYTN6VQXM1A/teBITuNcccXsCxF0tDQQJf9DfAaX5O4e0zp0KlfZw== + /caching-transform/3.0.2: + dependencies: + hasha: 3.0.0 + make-dir: 2.1.0 + package-hash: 3.0.0 + write-file-atomic: 2.4.3 + dev: true + engines: + node: '>=6' + resolution: + integrity: sha512-Mtgcv3lh3U0zRii/6qVgQODdPA4G3zhG+jtbCWj39RXuUFTMzH0vcdMtaJS1jPowd+It2Pqr6y3NJMQqOqCE2w== + /caller-path/0.1.0: + dependencies: + callsites: 0.2.0 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8= + /callsites/0.2.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo= + /camelcase/5.3.1: + dev: true + engines: + node: '>=6' + resolution: + integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + /capture-stack-trace/1.0.1: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw== + /caseless/0.12.0: + dev: true + resolution: + integrity: sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= + /chalk/1.1.1: + dependencies: + ansi-styles: 2.2.1 + escape-string-regexp: 1.0.5 + has-ansi: 2.0.0 + strip-ansi: 3.0.1 + supports-color: 2.0.0 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-UJr7ZwZudJn36zU1x3RFdyri0Bk= + /chalk/1.1.3: + dependencies: + ansi-styles: 2.2.1 + escape-string-regexp: 1.0.5 + has-ansi: 2.0.0 + strip-ansi: 3.0.1 + supports-color: 2.0.0 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= + /chalk/2.4.2: + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + /chalk/4.1.0: + dependencies: + ansi-styles: 4.2.1 + supports-color: 7.1.0 + dev: true + engines: + node: '>=10' + resolution: + integrity: sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== + /chardet/0.4.2: + dev: true + resolution: + integrity: sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I= + /chownr/1.1.4: + dev: true + resolution: + integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== + /chrome-launcher/0.13.4: + dependencies: + '@types/node': 14.0.26 + escape-string-regexp: 1.0.5 + is-wsl: 2.2.0 + lighthouse-logger: 1.2.0 + mkdirp: 0.5.5 + rimraf: 3.0.2 + dev: true + resolution: + integrity: sha512-nnzXiDbGKjDSK6t2I+35OAPBy5Pw/39bgkb/ZAFwMhwJbdYBp6aH+vW28ZgtjdU890Q7D+3wN/tB8N66q5Gi2A== + /circular-json/0.3.3: + deprecated: 'CircularJSON is in maintenance only, flatted is its successor.' + dev: true + resolution: + integrity: sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A== + /class-utils/0.3.6: + dependencies: + arr-union: 3.1.0 + define-property: 0.2.5 + isobject: 3.0.1 + static-extend: 0.1.2 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== + /clean-yaml-object/0.1.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-Y/sRDcLOGoTcIfbZM0h20BCui2g= + /cli-cursor/2.1.0: + dependencies: + restore-cursor: 2.0.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= + /cli-width/2.2.1: + dev: true + resolution: + integrity: sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== + /cliui/5.0.0: + dependencies: + string-width: 3.1.0 + strip-ansi: 5.2.0 + wrap-ansi: 5.1.0 + dev: true + resolution: + integrity: sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== + /clone-response/1.0.2: + dependencies: + mimic-response: 1.0.1 + dev: true + resolution: + integrity: sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= + /collection-visit/1.0.0: + dependencies: + map-visit: 1.0.0 + object-visit: 1.0.1 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= + /color-convert/1.9.3: + dependencies: + color-name: 1.1.3 + dev: true + resolution: + integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + /color-convert/2.0.1: + dependencies: + color-name: 1.1.4 + dev: true + engines: + node: '>=7.0.0' + resolution: + integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + /color-name/1.1.3: + dev: true + resolution: + integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + /color-name/1.1.4: + dev: true + resolution: + integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + /color-support/1.1.3: + dev: true + hasBin: true + resolution: + integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== + /colors/1.1.2: + dev: true + engines: + node: '>=0.1.90' + resolution: + integrity: sha1-FopHAXVran9RoSzgyXv6KMCE7WM= + /combined-stream/1.0.8: + dependencies: + delayed-stream: 1.0.0 + dev: true + engines: + node: '>= 0.8' + resolution: + integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + /commondir/1.0.1: + dev: true + resolution: + integrity: sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= + /component-emitter/1.3.0: + dev: true + resolution: + integrity: sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== + /compress-commons/4.0.1: + dependencies: + buffer-crc32: 0.2.13 + crc32-stream: 4.0.0 + normalize-path: 3.0.0 + readable-stream: 3.6.0 + dev: true + engines: + node: '>= 10' + resolution: + integrity: sha512-xZm9o6iikekkI0GnXCmAl3LQGZj5TBDj0zLowsqi7tJtEa3FMGSEcHcqrSJIrOAk1UG/NBbDn/F1q+MG/p/EsA== + /concat-map/0.0.1: + dev: true + resolution: + integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + /contains-path/0.1.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo= + /convert-source-map/1.7.0: + dependencies: + safe-buffer: 5.1.2 + dev: true + resolution: + integrity: sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== + /copy-descriptor/0.1.1: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= + /core-util-is/1.0.2: + dev: true + resolution: + integrity: sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + /coveralls/3.1.0: + dependencies: + js-yaml: 3.14.0 + lcov-parse: 1.0.0 + log-driver: 1.2.7 + minimist: 1.2.5 + request: 2.88.2 + dev: true + engines: + node: '>=6' + hasBin: true + resolution: + integrity: sha512-sHxOu2ELzW8/NC1UP5XVLbZDzO4S3VxfFye3XYCznopHy02YjNkHcj5bKaVw2O7hVaBdBjEdQGpie4II1mWhuQ== + /cp-file/6.2.0: + dependencies: + graceful-fs: 4.2.4 + make-dir: 2.1.0 + nested-error-stacks: 2.1.0 + pify: 4.0.1 + safe-buffer: 5.2.1 + dev: true + engines: + node: '>=6' + resolution: + integrity: sha512-fmvV4caBnofhPe8kOcitBwSn2f39QLjnAnGq3gO9dfd75mUytzKNZB1hde6QHunW2Rt+OwuBOMc3i1tNElbszA== + /crc/3.8.0: + dependencies: + buffer: 5.6.0 + dev: true + resolution: + integrity: sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ== + /crc32-stream/4.0.0: + dependencies: + crc: 3.8.0 + readable-stream: 3.6.0 + dev: true + engines: + node: '>= 10' + resolution: + integrity: sha512-tyMw2IeUX6t9jhgXI6um0eKfWq4EIDpfv5m7GX4Jzp7eVelQ360xd8EPXJhp2mHwLQIkqlnMLjzqSZI3a+0wRw== + /cross-spawn/4.0.2: + dependencies: + lru-cache: 4.1.5 + which: 1.3.1 + dev: true + resolution: + integrity: sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE= + /cross-spawn/6.0.5: + dependencies: + nice-try: 1.0.5 + path-key: 2.0.1 + semver: 5.7.1 + shebang-command: 1.2.0 + which: 1.3.1 + dev: true + engines: + node: '>=4.8' + resolution: + integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== + /css-value/0.0.1: + dev: true + resolution: + integrity: sha1-Xv1sLupeof1rasV+wEJ7GEUkJOo= + /dashdash/1.14.1: + dependencies: + assert-plus: 1.0.0 + dev: true + engines: + node: '>=0.10' + resolution: + integrity: sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= + /dateformat/3.0.3: + dev: true + resolution: + integrity: sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== + /debug-log/1.0.1: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8= + /debug/2.6.9: + dependencies: + ms: 2.0.0 + dev: true + resolution: + integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + /debug/3.2.6: + dependencies: + ms: 2.1.2 + dev: true + resolution: + integrity: sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== + /debug/4.1.0: + dependencies: + ms: 2.1.2 + resolution: + integrity: sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg== + /debug/4.1.1: + dependencies: + ms: 2.1.2 + dev: true + resolution: + integrity: sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== + /decamelize/1.2.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + /decode-uri-component/0.2.0: + dev: true + engines: + node: '>=0.10' + resolution: + integrity: sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= + /decompress-response/6.0.0: + dependencies: + mimic-response: 3.1.0 + dev: true + engines: + node: '>=10' + resolution: + integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== + /deep-is/0.1.3: + resolution: + integrity: sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= + /deepmerge/4.2.2: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== + /default-require-extensions/2.0.0: + dependencies: + strip-bom: 3.0.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-9fj7sYp9bVCyH2QfZJ67Uiz+JPc= + /defer-to-connect/2.0.0: + dev: true + engines: + node: '>=10' + resolution: + integrity: sha512-bYL2d05vOSf1JEZNx5vSAtPuBMkX8K9EUutg7zlKvTqKXHt7RhWJFbmd7qakVuf13i+IkGmp6FwSsONOf6VYIg== + /define-properties/1.1.3: + dependencies: + object-keys: 1.1.1 + dev: true + engines: + node: '>= 0.4' + resolution: + integrity: sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + /define-property/0.2.5: + dependencies: + is-descriptor: 0.1.6 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= + /define-property/1.0.0: + dependencies: + is-descriptor: 1.0.2 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-dp66rz9KY6rTr56NMEybvnm/sOY= + /define-property/2.0.2: + dependencies: + is-descriptor: 1.0.2 + isobject: 3.0.1 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== + /deglob/2.1.1: + dependencies: + find-root: 1.1.0 + glob: 7.1.6 + ignore: 3.3.10 + pkg-config: 1.1.1 + run-parallel: 1.1.9 + uniq: 1.0.1 + dev: true + resolution: + integrity: sha512-2kjwuGGonL7gWE1XU4Fv79+vVzpoQCl0V+boMwWtOQJV2AGDabCwez++nB1Nli/8BabAfZQ/UuHPlp6AymKdWw== + /delayed-stream/1.0.0: + dev: true + engines: + node: '>=0.4.0' + resolution: + integrity: sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + /detect-file/1.0.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= + /devtools-protocol/0.0.781568: + dev: true + resolution: + integrity: sha512-9Uqnzy6m6zEStluH9iyJ3iHyaQziFnMnLeC8vK0eN6smiJmIx7+yB64d67C2lH/LZra+5cGscJAJsNXO+MdPMg== + /devtools/6.4.0: + dependencies: + '@wdio/config': 6.1.14 + '@wdio/logger': 6.0.16 + '@wdio/protocols': 6.3.6 + '@wdio/utils': 6.4.0 + chrome-launcher: 0.13.4 + puppeteer-core: 5.2.1 + ua-parser-js: 0.7.21 + uuid: 8.2.0 + dev: true + engines: + node: '>=10.0.0' + resolution: + integrity: sha512-E2T+tiElHOQg2t+5L4TZwTX9krTIsTIZy9AS/DMkEv0IFUqr314fIvBbsVzo9qk0dv88E7DSf+n5GsbSrMngpA== + /diff/1.4.0: + dev: true + engines: + node: '>=0.3.1' + resolution: + integrity: sha1-fyjS657nsVqX79ic5j3P2qPMur8= + /diff/4.0.2: + dev: true + engines: + node: '>=0.3.1' + resolution: + integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + /doctrine/1.5.0: + dependencies: + esutils: 2.0.3 + isarray: 1.0.0 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-N53Ocw9hZvds76TmcHoVmwLFpvo= + /doctrine/2.1.0: + dependencies: + esutils: 2.0.3 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== + /domain-browser/1.2.0: + dev: true + engines: + node: '>=0.4' + npm: '>=1.2' + resolution: + integrity: sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== + /ecc-jsbn/0.1.2: + dependencies: + jsbn: 0.1.1 + safer-buffer: 2.1.2 + dev: true + resolution: + integrity: sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= + /ejs/2.7.4: + dev: true + engines: + node: '>=0.10.0' + requiresBuild: true + resolution: + integrity: sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA== + /emoji-regex/7.0.3: + dev: true + resolution: + integrity: sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== + /end-of-stream/1.4.4: + dependencies: + once: 1.4.0 + dev: true + resolution: + integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + /error-ex/1.3.2: + dependencies: + is-arrayish: 0.2.1 + dev: true + resolution: + integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + /es-abstract/1.17.6: + dependencies: + es-to-primitive: 1.2.1 + function-bind: 1.1.1 + has: 1.0.3 + has-symbols: 1.0.1 + is-callable: 1.2.0 + is-regex: 1.1.0 + object-inspect: 1.8.0 + object-keys: 1.1.1 + object.assign: 4.1.0 + string.prototype.trimend: 1.0.1 + string.prototype.trimstart: 1.0.1 + dev: true + engines: + node: '>= 0.4' + resolution: + integrity: sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw== + /es-to-primitive/1.2.1: + dependencies: + is-callable: 1.2.0 + is-date-object: 1.0.2 + is-symbol: 1.0.3 + dev: true + engines: + node: '>= 0.4' + resolution: + integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + /es6-error/4.1.1: + dev: true + resolution: + integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== + /escape-string-regexp/1.0.5: + dev: true + engines: + node: '>=0.8.0' + resolution: + integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + /escodegen/1.8.1: + dependencies: + esprima: 2.7.3 + estraverse: 1.9.3 + esutils: 2.0.3 + optionator: 0.8.3 + dev: true + engines: + node: '>=0.12.0' + hasBin: true + optionalDependencies: + source-map: 0.2.0 + resolution: + integrity: sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg= + /eslint-config-standard-jsx/6.0.2_e60ea4cf0c907bef2e3b23660a172e14: + dependencies: + eslint: 5.4.0 + eslint-plugin-react: 7.11.1_eslint@5.4.0 + dev: true + peerDependencies: + eslint: '>=5.0.0' + eslint-plugin-react: '>=7.11.1' + resolution: + integrity: sha512-D+YWAoXw+2GIdbMBRAzWwr1ZtvnSf4n4yL0gKGg7ShUOGXkSOLerI17K4F6LdQMJPNMoWYqepzQD/fKY+tXNSg== + /eslint-config-standard/12.0.0_c42c979afabd254629515c034069b101: + dependencies: + eslint: 5.4.0 + eslint-plugin-import: 2.14.0_eslint@5.4.0 + eslint-plugin-node: 7.0.1_eslint@5.4.0 + eslint-plugin-promise: 4.0.1 + eslint-plugin-standard: 4.0.1_eslint@5.4.0 + dev: true + peerDependencies: + eslint: '>=5.0.0' + eslint-plugin-import: '>=2.13.0' + eslint-plugin-node: '>=7.0.0' + eslint-plugin-promise: '>=4.0.0' + eslint-plugin-standard: '>=4.0.0' + resolution: + integrity: sha512-COUz8FnXhqFitYj4DTqHzidjIL/t4mumGZto5c7DrBpvWoie+Sn3P4sLEzUGeYhRElWuFEf8K1S1EfvD1vixCQ== + /eslint-import-resolver-node/0.3.4: + dependencies: + debug: 2.6.9 + resolve: 1.17.0 + dev: true + resolution: + integrity: sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA== + /eslint-module-utils/2.6.0: + dependencies: + debug: 2.6.9 + pkg-dir: 2.0.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA== + /eslint-plugin-es/1.4.1_eslint@5.4.0: + dependencies: + eslint: 5.4.0 + eslint-utils: 1.4.3 + regexpp: 2.0.1 + dev: true + engines: + node: '>=6.5.0' + peerDependencies: + eslint: '>=4.19.1' + resolution: + integrity: sha512-5fa/gR2yR3NxQf+UXkeLeP8FBBl6tSgdrAz1+cF84v1FMM4twGwQoqTnn+QxFLcPOrF4pdKEJKDB/q9GoyJrCA== + /eslint-plugin-import/2.14.0_eslint@5.4.0: + dependencies: + contains-path: 0.1.0 + debug: 2.6.9 + doctrine: 1.5.0 + eslint: 5.4.0 + eslint-import-resolver-node: 0.3.4 + eslint-module-utils: 2.6.0 + has: 1.0.3 + lodash: 4.17.19 + minimatch: 3.0.4 + read-pkg-up: 2.0.0 + resolve: 1.17.0 + dev: true + engines: + node: '>=4' + peerDependencies: + eslint: 2.x - 5.x + resolution: + integrity: sha512-FpuRtniD/AY6sXByma2Wr0TXvXJ4nA/2/04VPlfpmUDPOpOY264x+ILiwnrk/k4RINgDAyFZByxqPUbSQ5YE7g== + /eslint-plugin-node/7.0.1_eslint@5.4.0: + dependencies: + eslint: 5.4.0 + eslint-plugin-es: 1.4.1_eslint@5.4.0 + eslint-utils: 1.4.3 + ignore: 4.0.6 + minimatch: 3.0.4 + resolve: 1.17.0 + semver: 5.7.1 + dev: true + engines: + node: '>=6' + peerDependencies: + eslint: '>=4.19.1' + resolution: + integrity: sha512-lfVw3TEqThwq0j2Ba/Ckn2ABdwmL5dkOgAux1rvOk6CO7A6yGyPI2+zIxN6FyNkp1X1X/BSvKOceD6mBWSj4Yw== + /eslint-plugin-promise/4.0.1: + dev: true + engines: + node: '>=6' + resolution: + integrity: sha512-Si16O0+Hqz1gDHsys6RtFRrW7cCTB6P7p3OJmKp3Y3dxpQE2qwOA7d3xnV+0mBmrPoi0RBnxlCKvqu70te6wjg== + /eslint-plugin-react/7.11.1_eslint@5.4.0: + dependencies: + array-includes: 3.1.1 + doctrine: 2.1.0 + eslint: 5.4.0 + has: 1.0.3 + jsx-ast-utils: 2.4.1 + prop-types: 15.7.2 + dev: true + engines: + node: '>=4' + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 + resolution: + integrity: sha512-cVVyMadRyW7qsIUh3FHp3u6QHNhOgVrLQYdQEB1bPWBsgbNCHdFAeNMquBMCcZJu59eNthX053L70l7gRt4SCw== + /eslint-plugin-standard/4.0.1_eslint@5.4.0: + dependencies: + eslint: 5.4.0 + dev: true + peerDependencies: + eslint: '>=5.0.0' + resolution: + integrity: sha512-v/KBnfyaOMPmZc/dmc6ozOdWqekGp7bBGq4jLAecEfPGmfKiWS4sA8sC0LqiV9w5qmXAtXVn4M3p1jSyhY85SQ== + /eslint-scope/4.0.3: + dependencies: + esrecurse: 4.2.1 + estraverse: 4.3.0 + dev: true + engines: + node: '>=4.0.0' + resolution: + integrity: sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== + /eslint-utils/1.4.3: + dependencies: + eslint-visitor-keys: 1.3.0 + dev: true + engines: + node: '>=6' + resolution: + integrity: sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q== + /eslint-visitor-keys/1.3.0: + dev: true + engines: + node: '>=4' + resolution: + integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== + /eslint/5.4.0: + dependencies: + ajv: 6.12.3 + babel-code-frame: 6.26.0 + chalk: 2.4.2 + cross-spawn: 6.0.5 + debug: 3.2.6 + doctrine: 2.1.0 + eslint-scope: 4.0.3 + eslint-utils: 1.4.3 + eslint-visitor-keys: 1.3.0 + espree: 4.1.0 + esquery: 1.3.1 + esutils: 2.0.3 + file-entry-cache: 2.0.0 + functional-red-black-tree: 1.0.1 + glob: 7.1.6 + globals: 11.12.0 + ignore: 4.0.6 + imurmurhash: 0.1.4 + inquirer: 5.2.0 + is-resolvable: 1.1.0 + js-yaml: 3.14.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.3.0 + lodash: 4.17.19 + minimatch: 3.0.4 + mkdirp: 0.5.5 + natural-compare: 1.4.0 + optionator: 0.8.3 + path-is-inside: 1.0.2 + pluralize: 7.0.0 + progress: 2.0.3 + regexpp: 2.0.1 + require-uncached: 1.0.3 + semver: 5.7.1 + strip-ansi: 4.0.0 + strip-json-comments: 2.0.1 + table: 4.0.3 + text-table: 0.2.0 + dev: true + engines: + node: ^6.14.0 || ^8.10.0 || >=9.10.0 + hasBin: true + resolution: + integrity: sha512-UIpL91XGex3qtL6qwyCQJar2j3osKxK9e3ano3OcGEIRM4oWIpCkDg9x95AXEC2wMs7PnxzOkPZ2gq+tsMS9yg== + /esm/3.2.25: + dev: true + engines: + node: '>=6' + resolution: + integrity: sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA== + /espree/4.1.0: + dependencies: + acorn: 6.4.1 + acorn-jsx: 5.2.0_acorn@6.4.1 + eslint-visitor-keys: 1.3.0 + dev: true + engines: + node: '>=6.0.0' + resolution: + integrity: sha512-I5BycZW6FCVIub93TeVY1s7vjhP9CY6cXCznIRfiig7nRviKZYdRnj/sHEWC6A7WE9RDWOFq9+7OsWSYz8qv2w== + /esprima/2.7.3: + dev: true + engines: + node: '>=0.10.0' + hasBin: true + resolution: + integrity: sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE= + /esprima/4.0.1: + dev: true + engines: + node: '>=4' + hasBin: true + resolution: + integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + /esquery/1.3.1: + dependencies: + estraverse: 5.1.0 + dev: true + engines: + node: '>=0.10' + resolution: + integrity: sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ== + /esrecurse/4.2.1: + dependencies: + estraverse: 4.3.0 + dev: true + engines: + node: '>=4.0' + resolution: + integrity: sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ== + /estraverse/1.9.3: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q= + /estraverse/4.3.0: + dev: true + engines: + node: '>=4.0' + resolution: + integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + /estraverse/5.1.0: + dev: true + engines: + node: '>=4.0' + resolution: + integrity: sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw== + /esutils/2.0.3: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + /eventemitter2/0.4.14: + dev: true + resolution: + integrity: sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas= + /events-to-array/1.1.2: + dev: true + resolution: + integrity: sha1-LUH1Y+H+QA7Uli/hpNXGp1Od9/Y= + /exit/0.1.2: + dev: true + engines: + node: '>= 0.8.0' + resolution: + integrity: sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= + /expand-brackets/2.1.4: + dependencies: + debug: 2.6.9 + define-property: 0.2.5 + extend-shallow: 2.0.1 + posix-character-classes: 0.1.1 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-t3c14xXOMPa27/D4OwQVGiJEliI= + /expand-tilde/2.0.2: + dependencies: + homedir-polyfill: 1.0.3 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-l+gBqgUt8CRU3kawK/YhZCzchQI= + /extend-shallow/2.0.1: + dependencies: + is-extendable: 0.1.1 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= + /extend-shallow/3.0.2: + dependencies: + assign-symbols: 1.0.0 + is-extendable: 1.0.1 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= + /extend/3.0.2: + dev: true + resolution: + integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + /external-editor/2.2.0: + dependencies: + chardet: 0.4.2 + iconv-lite: 0.4.24 + tmp: 0.0.33 + dev: true + engines: + node: '>=0.12' + resolution: + integrity: sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A== + /extglob/2.0.4: + dependencies: + array-unique: 0.3.2 + define-property: 1.0.0 + expand-brackets: 2.1.4 + extend-shallow: 2.0.1 + fragment-cache: 0.2.1 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== + /extract-zip/2.0.1: + dependencies: + debug: 4.1.1 + get-stream: 5.1.0 + yauzl: 2.10.0 + dev: true + engines: + node: '>= 10.17.0' + hasBin: true + optionalDependencies: + '@types/yauzl': 2.9.1 + resolution: + integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg== + /extsprintf/1.3.0: + dev: true + engines: + '0': node >=0.6.0 + resolution: + integrity: sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= + /fast-deep-equal/2.0.1: + dev: true + resolution: + integrity: sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= + /fast-deep-equal/3.1.3: + dev: true + resolution: + integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + /fast-json-stable-stringify/2.1.0: + dev: true + resolution: + integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + /fast-levenshtein/2.0.6: + dev: true + resolution: + integrity: sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + /fd-slicer/1.1.0: + dependencies: + pend: 1.2.0 + dev: true + resolution: + integrity: sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= + /figures/2.0.0: + dependencies: + escape-string-regexp: 1.0.5 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= + /file-entry-cache/2.0.0: + dependencies: + flat-cache: 1.3.4 + object-assign: 4.1.1 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E= + /fill-range/4.0.0: + dependencies: + extend-shallow: 2.0.1 + is-number: 3.0.0 + repeat-string: 1.6.1 + to-regex-range: 2.1.1 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= + /find-cache-dir/2.1.0: + dependencies: + commondir: 1.0.1 + make-dir: 2.1.0 + pkg-dir: 3.0.0 + dev: true + engines: + node: '>=6' + resolution: + integrity: sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== + /find-root/1.1.0: + dev: true + resolution: + integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng== + /find-up/2.1.0: + dependencies: + locate-path: 2.0.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-RdG35QbHF93UgndaK3eSCjwMV6c= + /find-up/3.0.0: + dependencies: + locate-path: 3.0.0 + dev: true + engines: + node: '>=6' + resolution: + integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + /find-up/4.1.0: + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + dev: true + engines: + node: '>=8' + resolution: + integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + /findup-sync/0.3.0: + dependencies: + glob: 5.0.15 + dev: true + engines: + node: '>= 0.6.0' + resolution: + integrity: sha1-N5MKpdgWt3fANEXhlmzGeQpMCxY= + /findup-sync/2.0.0: + dependencies: + detect-file: 1.0.0 + is-glob: 3.1.0 + micromatch: 3.1.10 + resolve-dir: 1.0.1 + dev: true + engines: + node: '>= 0.10' + resolution: + integrity: sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw= + /fined/1.2.0: + dependencies: + expand-tilde: 2.0.2 + is-plain-object: 2.0.4 + object.defaults: 1.1.0 + object.pick: 1.3.0 + parse-filepath: 1.0.2 + dev: true + engines: + node: '>= 0.10' + resolution: + integrity: sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng== + /flagged-respawn/1.0.1: + dev: true + engines: + node: '>= 0.10' + resolution: + integrity: sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q== + /flat-cache/1.3.4: + dependencies: + circular-json: 0.3.3 + graceful-fs: 4.2.4 + rimraf: 2.6.3 + write: 0.2.1 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg== + /for-in/1.0.2: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= + /for-own/1.0.0: + dependencies: + for-in: 1.0.2 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs= + /foreground-child/1.5.6: + dependencies: + cross-spawn: 4.0.2 + signal-exit: 3.0.3 + dev: true + resolution: + integrity: sha1-T9ca0t/elnibmApcCilZN8svXOk= + /forever-agent/0.6.1: + dev: true + resolution: + integrity: sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= + /form-data/2.3.3: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.27 + dev: true + engines: + node: '>= 0.12' + resolution: + integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + /fragment-cache/0.2.1: + dependencies: + map-cache: 0.2.2 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= + /fs-constants/1.0.0: + dev: true + resolution: + integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== + /fs-exists-cached/1.0.0: + dev: true + resolution: + integrity: sha1-zyVVTKBQ3EmuZla0HeQiWJidy84= + /fs.realpath/1.0.0: + dev: true + resolution: + integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + /function-bind/1.1.1: + dev: true + resolution: + integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + /function-loop/1.0.2: + dev: true + resolution: + integrity: sha512-Iw4MzMfS3udk/rqxTiDDCllhGwlOrsr50zViTOO/W6lS/9y6B1J0BD2VZzrnWUYBJsl3aeqjgR5v7bWWhZSYbA== + /functional-red-black-tree/1.0.1: + dev: true + resolution: + integrity: sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= + /get-caller-file/2.0.5: + dev: true + engines: + node: 6.* || 8.* || >= 10.* + resolution: + integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + /get-port/5.1.1: + dev: true + engines: + node: '>=8' + resolution: + integrity: sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ== + /get-stdin/6.0.0: + dev: true + engines: + node: '>=4' + resolution: + integrity: sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g== + /get-stream/5.1.0: + dependencies: + pump: 3.0.0 + dev: true + engines: + node: '>=8' + resolution: + integrity: sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw== + /get-value/2.0.6: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= + /getobject/0.1.0: + dev: true + engines: + node: '>= 0.8.0' + resolution: + integrity: sha1-BHpEl4n6Fg0Bj1SG7ZEyC27HiFw= + /getpass/0.1.7: + dependencies: + assert-plus: 1.0.0 + dev: true + resolution: + integrity: sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= + /glob/5.0.15: + dependencies: + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.0.4 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + resolution: + integrity: sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E= + /glob/7.1.6: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.0.4 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + resolution: + integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== + /global-modules/1.0.0: + dependencies: + global-prefix: 1.0.2 + is-windows: 1.0.2 + resolve-dir: 1.0.1 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== + /global-prefix/1.0.2: + dependencies: + expand-tilde: 2.0.2 + homedir-polyfill: 1.0.3 + ini: 1.3.5 + is-windows: 1.0.2 + which: 1.3.1 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-2/dDxsFJklk8ZVVoy2btMsASLr4= + /globals/11.12.0: + dev: true + engines: + node: '>=4' + resolution: + integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + /got/11.5.1: + dependencies: + '@sindresorhus/is': 3.1.0 + '@szmarczak/http-timer': 4.0.5 + '@types/cacheable-request': 6.0.1 + '@types/responselike': 1.0.0 + cacheable-lookup: 5.0.3 + cacheable-request: 7.0.1 + decompress-response: 6.0.0 + http2-wrapper: 1.0.0-beta.5.2 + lowercase-keys: 2.0.0 + p-cancelable: 2.0.0 + responselike: 2.0.0 + dev: true + engines: + node: '>=10.19.0' + resolution: + integrity: sha512-reQEZcEBMTGnujmQ+Wm97mJs/OK6INtO6HmLI+xt3+9CvnRwWjXutUvb2mqr+Ao4Lu05Rx6+udx9sOQAmExMxA== + /graceful-fs/4.2.4: + dev: true + resolution: + integrity: sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== + /grapheme-splitter/1.0.4: + dev: true + resolution: + integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== + /grunt-cli/1.3.2: + dependencies: + grunt-known-options: 1.1.1 + interpret: 1.1.0 + liftoff: 2.5.0 + nopt: 4.0.3 + v8flags: 3.1.3 + dev: true + engines: + node: '>=4' + hasBin: true + resolution: + integrity: sha512-8OHDiZZkcptxVXtMfDxJvmN7MVJNE8L/yIcPb4HB7TlyFD1kDvjHrb62uhySsU14wJx9ORMnTuhRMQ40lH/orQ== + /grunt-contrib-nodeunit/2.1.0: + dependencies: + nodeunit-x: 0.13.0 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-cg3+lf6T5tDmnOFFf4+78b8xa5tsrw9u1NSlfCHjUrjeO+S/Ly0Dpo1BUV3QgsJ4k/0bgMmhbVjNXoP4AyYHuA== + /grunt-istanbul/0.8.0_grunt@1.2.1: + dependencies: + chalk: 1.1.1 + grunt: 1.2.1 + istanbul: 0.4.5 + nue: 0.7.1 + dev: true + engines: + node: ~0.12.0 + hasBin: true + peerDependencies: + grunt: '>=0.4.0' + resolution: + integrity: sha512-grqY1WEo4C1N0wSN8J1ha+YCcDF1OwFHSRemmOCHna+yasvnpAjuthsYIY+0RPH3GEpz+sjG1N95wHIqhBkfkQ== + /grunt-known-options/1.1.1: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-cHwsLqoighpu7TuYj5RonnEuxGVFnztcUqTqp5rXFGYL4OuPFofwC4Ycg7n9fYwvK6F5WbYgeVOwph9Crs2fsQ== + /grunt-legacy-log-utils/2.0.1: + dependencies: + chalk: 2.4.2 + lodash: 4.17.19 + dev: true + engines: + node: '>=6' + resolution: + integrity: sha512-o7uHyO/J+i2tXG8r2bZNlVk20vlIFJ9IEYyHMCQGfWYru8Jv3wTqKZzvV30YW9rWEjq0eP3cflQ1qWojIe9VFA== + /grunt-legacy-log/2.0.0: + dependencies: + colors: 1.1.2 + grunt-legacy-log-utils: 2.0.1 + hooker: 0.2.3 + lodash: 4.17.19 + dev: true + engines: + node: '>= 0.10.0' + resolution: + integrity: sha512-1m3+5QvDYfR1ltr8hjiaiNjddxGdQWcH0rw1iKKiQnF0+xtgTazirSTGu68RchPyh1OBng1bBUjLmX8q9NpoCw== + /grunt-legacy-util/1.1.1: + dependencies: + async: 1.5.2 + exit: 0.1.2 + getobject: 0.1.0 + hooker: 0.2.3 + lodash: 4.17.19 + underscore.string: 3.3.5 + which: 1.3.1 + dev: true + engines: + node: '>= 6' + resolution: + integrity: sha512-9zyA29w/fBe6BIfjGENndwoe1Uy31BIXxTH3s8mga0Z5Bz2Sp4UCjkeyv2tI449ymkx3x26B+46FV4fXEddl5A== + /grunt-standard/3.2.0: + dependencies: + chalk: 1.1.3 + promise: 7.3.1 + standard: 12.0.1 + text-table: 0.2.0 + dev: true + engines: + node: '>=4.0' + resolution: + integrity: sha512-lx6kNQfBH1TTGfNvsWhjPc8BtLk8CtlDbah5NW9CL9ogoX0tc3hmyfQkHHrChpAv6C4LjBp1AGqqap6r6t085g== + /grunt/1.2.1: + dependencies: + dateformat: 3.0.3 + eventemitter2: 0.4.14 + exit: 0.1.2 + findup-sync: 0.3.0 + glob: 7.1.6 + grunt-cli: 1.3.2 + grunt-known-options: 1.1.1 + grunt-legacy-log: 2.0.0 + grunt-legacy-util: 1.1.1 + iconv-lite: 0.4.24 + js-yaml: 3.14.0 + minimatch: 3.0.4 + mkdirp: 1.0.4 + nopt: 3.0.6 + rimraf: 3.0.2 + dev: true + engines: + node: '>=8' + hasBin: true + resolution: + integrity: sha512-zgJjn9N56tScvRt/y0+1QA+zDBnKTrkpyeSBqQPLcZvbqTD/oyGMrdZQXmm6I3828s+FmPvxc3Xv+lgKFtudOw== + /handlebars/4.7.6: + dependencies: + minimist: 1.2.5 + neo-async: 2.6.2 + source-map: 0.6.1 + wordwrap: 1.0.0 + dev: true + engines: + node: '>=0.4.7' + hasBin: true + optionalDependencies: + uglify-js: 3.10.0 + resolution: + integrity: sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA== + /har-schema/2.0.0: + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= + /har-validator/5.1.3: + dependencies: + ajv: 6.12.3 + har-schema: 2.0.0 + dev: true + engines: + node: '>=6' + resolution: + integrity: sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g== + /has-ansi/2.0.0: + dependencies: + ansi-regex: 2.1.1 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= + /has-flag/1.0.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo= + /has-flag/3.0.0: + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + /has-flag/4.0.0: + dev: true + engines: + node: '>=8' + resolution: + integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + /has-symbols/1.0.1: + dev: true + engines: + node: '>= 0.4' + resolution: + integrity: sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== + /has-value/0.3.1: + dependencies: + get-value: 2.0.6 + has-values: 0.1.4 + isobject: 2.1.0 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= + /has-value/1.0.0: + dependencies: + get-value: 2.0.6 + has-values: 1.0.0 + isobject: 3.0.1 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= + /has-values/0.1.4: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-bWHeldkd/Km5oCCJrThL/49it3E= + /has-values/1.0.0: + dependencies: + is-number: 3.0.0 + kind-of: 4.0.0 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= + /has/1.0.3: + dependencies: + function-bind: 1.1.1 + dev: true + engines: + node: '>= 0.4.0' + resolution: + integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + /hasha/3.0.0: + dependencies: + is-stream: 1.1.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-UqMvq4Vp1BymmmH/GiFPjrfIvTk= + /homedir-polyfill/1.0.3: + dependencies: + parse-passwd: 1.0.0 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== + /hooker/0.2.3: + dev: true + resolution: + integrity: sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk= + /hosted-git-info/2.8.8: + dev: true + resolution: + integrity: sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== + /html-escaper/2.0.2: + dev: true + resolution: + integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== + /http-cache-semantics/4.1.0: + dev: true + resolution: + integrity: sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== + /http-signature/1.2.0: + dependencies: + assert-plus: 1.0.0 + jsprim: 1.4.1 + sshpk: 1.16.1 + dev: true + engines: + node: '>=0.8' + npm: '>=1.3.7' + resolution: + integrity: sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= + /http2-wrapper/1.0.0-beta.5.2: + dependencies: + quick-lru: 5.1.1 + resolve-alpn: 1.0.0 + dev: true + engines: + node: '>=10.19.0' + resolution: + integrity: sha512-xYz9goEyBnC8XwXDTuC/MZ6t+MrKVQZOk4s7+PaDkwIsQd8IwqvM+0M6bA/2lvG8GHXcPdf+MejTUeO2LCPCeQ== + /https-proxy-agent/4.0.0: + dependencies: + agent-base: 5.1.1 + debug: 4.1.1 + dev: true + engines: + node: '>= 6.0.0' + resolution: + integrity: sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg== + /iconv-lite/0.4.24: + dependencies: + safer-buffer: 2.1.2 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + /ieee754/1.1.13: + dev: true + resolution: + integrity: sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== + /ignore/3.3.10: + dev: true + resolution: + integrity: sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== + /ignore/4.0.6: + dev: true + engines: + node: '>= 4' + resolution: + integrity: sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== + /imurmurhash/0.1.4: + dev: true + engines: + node: '>=0.8.19' + resolution: + integrity: sha1-khi5srkoojixPcT7a21XbyMUU+o= + /inflight/1.0.6: + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + dev: true + resolution: + integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + /inherits/2.0.4: + dev: true + resolution: + integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + /ini/1.3.5: + dev: true + resolution: + integrity: sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== + /inquirer/5.2.0: + dependencies: + ansi-escapes: 3.2.0 + chalk: 2.4.2 + cli-cursor: 2.1.0 + cli-width: 2.2.1 + external-editor: 2.2.0 + figures: 2.0.0 + lodash: 4.17.19 + mute-stream: 0.0.7 + run-async: 2.4.1 + rxjs: 5.5.12 + string-width: 2.1.1 + strip-ansi: 4.0.0 + through: 2.3.8 + dev: true + engines: + node: '>=6.0.0' + resolution: + integrity: sha512-E9BmnJbAKLPGonz0HeWHtbKf+EeSP93paWO3ZYoUpq/aowXvYGjjCSuashhXPpzbArIjBbji39THkxTz9ZeEUQ== + /interpret/1.1.0: + dev: true + resolution: + integrity: sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ= + /ip-regex/2.1.0: + engines: + node: '>=4' + resolution: + integrity: sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= + /is-absolute/1.0.0: + dependencies: + is-relative: 1.0.0 + is-windows: 1.0.2 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA== + /is-accessor-descriptor/0.1.6: + dependencies: + kind-of: 3.2.2 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= + /is-accessor-descriptor/1.0.0: + dependencies: + kind-of: 6.0.3 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== + /is-arrayish/0.2.1: + dev: true + resolution: + integrity: sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + /is-buffer/1.1.6: + dev: true + resolution: + integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + /is-callable/1.2.0: + dev: true + engines: + node: '>= 0.4' + resolution: + integrity: sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw== + /is-data-descriptor/0.1.4: + dependencies: + kind-of: 3.2.2 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= + /is-data-descriptor/1.0.0: + dependencies: + kind-of: 6.0.3 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== + /is-date-object/1.0.2: + dev: true + engines: + node: '>= 0.4' + resolution: + integrity: sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== + /is-descriptor/0.1.6: + dependencies: + is-accessor-descriptor: 0.1.6 + is-data-descriptor: 0.1.4 + kind-of: 5.1.0 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== + /is-descriptor/1.0.2: + dependencies: + is-accessor-descriptor: 1.0.0 + is-data-descriptor: 1.0.0 + kind-of: 6.0.3 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== + /is-docker/2.0.0: + dev: true + engines: + node: '>=8' + resolution: + integrity: sha512-pJEdRugimx4fBMra5z2/5iRdZ63OhYV0vr0Dwm5+xtW4D1FvRkB8hamMIhnWfyJeDdyr/aa7BDyNbtG38VxgoQ== + /is-extendable/0.1.1: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= + /is-extendable/1.0.1: + dependencies: + is-plain-object: 2.0.4 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== + /is-extglob/2.1.1: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + /is-fullwidth-code-point/2.0.0: + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + /is-glob/3.1.0: + dependencies: + is-extglob: 2.1.1 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= + /is-number-like/1.0.8: + dependencies: + lodash.isfinite: 3.3.2 + dev: false + resolution: + integrity: sha512-6rZi3ezCyFcn5L71ywzz2bS5b2Igl1En3eTlZlvKjpz1n3IZLAYMbKYAIQgFmEu0GENg92ziU/faEOA/aixjbA== + /is-number/3.0.0: + dependencies: + kind-of: 3.2.2 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= + /is-plain-object/2.0.4: + dependencies: + isobject: 3.0.1 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + /is-regex/1.1.0: + dependencies: + has-symbols: 1.0.1 + dev: true + engines: + node: '>= 0.4' + resolution: + integrity: sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw== + /is-relative/1.0.0: + dependencies: + is-unc-path: 1.0.0 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA== + /is-resolvable/1.1.0: + dev: true + resolution: + integrity: sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== + /is-stream/1.1.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-EtSj3U5o4Lec6428hBc66A2RykQ= + /is-string/1.0.5: + dev: true + engines: + node: '>= 0.4' + resolution: + integrity: sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ== + /is-symbol/1.0.3: + dependencies: + has-symbols: 1.0.1 + dev: true + engines: + node: '>= 0.4' + resolution: + integrity: sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== + /is-typedarray/1.0.0: + dev: true + resolution: + integrity: sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + /is-unc-path/1.0.0: + dependencies: + unc-path-regex: 0.1.2 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ== + /is-url/1.2.4: + resolution: + integrity: sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww== + /is-windows/1.0.2: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + /is-wsl/2.2.0: + dependencies: + is-docker: 2.0.0 + dev: true + engines: + node: '>=8' + resolution: + integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + /is2/2.0.1: + dependencies: + deep-is: 0.1.3 + ip-regex: 2.1.0 + is-url: 1.2.4 + engines: + node: '>=v0.10.0' + resolution: + integrity: sha512-+WaJvnaA7aJySz2q/8sLjMb2Mw14KTplHmSwcSpZ/fWJPkUmqw3YTzSWbPJ7OAwRvdYTWF2Wg+yYJ1AdP5Z8CA== + /isarray/1.0.0: + dev: true + resolution: + integrity: sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + /isexe/2.0.0: + dev: true + resolution: + integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + /isobject/2.1.0: + dependencies: + isarray: 1.0.0 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= + /isobject/3.0.1: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-TkMekrEalzFjaqH5yNHMvP2reN8= + /isstream/0.1.2: + dev: true + resolution: + integrity: sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= + /istanbul-lib-coverage/2.0.5: + dev: true + engines: + node: '>=6' + resolution: + integrity: sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA== + /istanbul-lib-hook/2.0.7: + dependencies: + append-transform: 1.0.0 + dev: true + engines: + node: '>=6' + resolution: + integrity: sha512-vrRztU9VRRFDyC+aklfLoeXyNdTfga2EI3udDGn4cZ6fpSXpHLV9X6CHvfoMCPtggg8zvDDmC4b9xfu0z6/llA== + /istanbul-lib-instrument/3.3.0: + dependencies: + '@babel/generator': 7.10.5 + '@babel/parser': 7.10.5 + '@babel/template': 7.10.4 + '@babel/traverse': 7.10.5 + '@babel/types': 7.10.5 + istanbul-lib-coverage: 2.0.5 + semver: 6.3.0 + dev: true + engines: + node: '>=6' + resolution: + integrity: sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA== + /istanbul-lib-report/2.0.8: + dependencies: + istanbul-lib-coverage: 2.0.5 + make-dir: 2.1.0 + supports-color: 6.1.0 + dev: true + engines: + node: '>=6' + resolution: + integrity: sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ== + /istanbul-lib-source-maps/3.0.6: + dependencies: + debug: 4.1.1 + istanbul-lib-coverage: 2.0.5 + make-dir: 2.1.0 + rimraf: 2.7.1 + source-map: 0.6.1 + dev: true + engines: + node: '>=6' + resolution: + integrity: sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw== + /istanbul-reports/2.2.7: + dependencies: + html-escaper: 2.0.2 + dev: true + engines: + node: '>=6' + resolution: + integrity: sha512-uu1F/L1o5Y6LzPVSVZXNOoD/KXpJue9aeLRd0sM9uMXfZvzomB0WxVamWb5ue8kA2vVWEmW7EG+A5n3f1kqHKg== + /istanbul/0.4.5: + dependencies: + abbrev: 1.0.9 + async: 1.5.2 + escodegen: 1.8.1 + esprima: 2.7.3 + glob: 5.0.15 + handlebars: 4.7.6 + js-yaml: 3.14.0 + mkdirp: 0.5.5 + nopt: 3.0.6 + once: 1.4.0 + resolve: 1.1.7 + supports-color: 3.2.3 + which: 1.3.1 + wordwrap: 1.0.0 + deprecated: |- + This module is no longer maintained, try this instead: + npm i nyc + Visit https://istanbul.js.org/integrations for other alternatives. + dev: true + hasBin: true + resolution: + integrity: sha1-ZcfXPUxNqE1POsMQuRj7C4Azczs= + /js-tokens/3.0.2: + dev: true + resolution: + integrity: sha1-mGbfOVECEw449/mWvOtlRDIJwls= + /js-tokens/4.0.0: + dev: true + resolution: + integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + /js-yaml/3.14.0: + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + dev: true + hasBin: true + resolution: + integrity: sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A== + /jsbn/0.1.1: + dev: true + resolution: + integrity: sha1-peZUwuWi3rXyAdls77yoDA7y9RM= + /jsesc/2.5.2: + dev: true + engines: + node: '>=4' + hasBin: true + resolution: + integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + /json-buffer/3.0.1: + dev: true + resolution: + integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + /json-parse-better-errors/1.0.2: + dev: true + resolution: + integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + /json-schema-traverse/0.4.1: + dev: true + resolution: + integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + /json-schema/0.2.3: + dev: true + resolution: + integrity: sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= + /json-stable-stringify-without-jsonify/1.0.1: + dev: true + resolution: + integrity: sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + /json-stringify-safe/5.0.1: + dev: true + resolution: + integrity: sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + /jsprim/1.4.1: + dependencies: + assert-plus: 1.0.0 + extsprintf: 1.3.0 + json-schema: 0.2.3 + verror: 1.10.0 + dev: true + engines: + '0': node >=0.6.0 + resolution: + integrity: sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= + /jsx-ast-utils/2.4.1: + dependencies: + array-includes: 3.1.1 + object.assign: 4.1.0 + dev: true + engines: + node: '>=4.0' + resolution: + integrity: sha512-z1xSldJ6imESSzOjd3NNkieVJKRlKYSOtMG8SFyCj2FIrvSaSuli/WjpBkEzCBoR9bYYYFgqJw61Xhu7Lcgk+w== + /keyv/4.0.1: + dependencies: + json-buffer: 3.0.1 + dev: true + resolution: + integrity: sha512-xz6Jv6oNkbhrFCvCP7HQa8AaII8y8LRpoSm661NOKLr4uHuBwhX4epXrPQgF3+xdJnN4Esm5X0xwY4bOlALOtw== + /kind-of/3.2.2: + dependencies: + is-buffer: 1.1.6 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= + /kind-of/4.0.0: + dependencies: + is-buffer: 1.1.6 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-IIE989cSkosgc3hpGkUGb65y3Vc= + /kind-of/5.1.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== + /kind-of/6.0.3: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + /lazystream/1.0.0: + dependencies: + readable-stream: 2.3.7 + dev: true + engines: + node: '>= 0.6.3' + resolution: + integrity: sha1-9plf4PggOS9hOWvolGJAe7dxaOQ= + /lcov-parse/1.0.0: + dev: true + hasBin: true + resolution: + integrity: sha1-6w1GtUER68VhrLTECO+TY73I9+A= + /levn/0.3.0: + dependencies: + prelude-ls: 1.1.2 + type-check: 0.3.2 + dev: true + engines: + node: '>= 0.8.0' + resolution: + integrity: sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= + /liftoff/2.5.0: + dependencies: + extend: 3.0.2 + findup-sync: 2.0.0 + fined: 1.2.0 + flagged-respawn: 1.0.1 + is-plain-object: 2.0.4 + object.map: 1.0.1 + rechoir: 0.6.2 + resolve: 1.17.0 + dev: true + engines: + node: '>= 0.8' + resolution: + integrity: sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew= + /lighthouse-logger/1.2.0: + dependencies: + debug: 2.6.9 + marky: 1.2.1 + dev: true + resolution: + integrity: sha512-wzUvdIeJZhRsG6gpZfmSCfysaxNEr43i+QT+Hie94wvHDKFLi4n7C2GqZ4sTC+PH5b5iktmXJvU87rWvhP3lHw== + /load-json-file/2.0.0: + dependencies: + graceful-fs: 4.2.4 + parse-json: 2.2.0 + pify: 2.3.0 + strip-bom: 3.0.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg= + /load-json-file/4.0.0: + dependencies: + graceful-fs: 4.2.4 + parse-json: 4.0.0 + pify: 3.0.0 + strip-bom: 3.0.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-L19Fq5HjMhYjT9U62rZo607AmTs= + /locate-path/2.0.0: + dependencies: + p-locate: 2.0.0 + path-exists: 3.0.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= + /locate-path/3.0.0: + dependencies: + p-locate: 3.0.0 + path-exists: 3.0.0 + dev: true + engines: + node: '>=6' + resolution: + integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + /locate-path/5.0.0: + dependencies: + p-locate: 4.1.0 + dev: true + engines: + node: '>=8' + resolution: + integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + /lodash.clonedeep/4.5.0: + dev: true + resolution: + integrity: sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= + /lodash.defaults/4.2.0: + dev: true + resolution: + integrity: sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw= + /lodash.difference/4.5.0: + dev: true + resolution: + integrity: sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw= + /lodash.flatten/4.4.0: + dev: true + resolution: + integrity: sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8= + /lodash.flattendeep/4.4.0: + dev: true + resolution: + integrity: sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI= + /lodash.isfinite/3.3.2: + dev: false + resolution: + integrity: sha1-+4m2WpqAKBgz8LdHizpRBPiY67M= + /lodash.isobject/3.0.2: + dev: true + resolution: + integrity: sha1-PI+41bW/S/kK4G4U8qUwpO2TXh0= + /lodash.isplainobject/4.0.6: + dev: true + resolution: + integrity: sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs= + /lodash.merge/4.6.2: + dev: true + resolution: + integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + /lodash.union/4.6.0: + dev: true + resolution: + integrity: sha1-SLtQiECfFvGCFmZkHETdGqrjzYg= + /lodash.zip/4.2.0: + dev: true + resolution: + integrity: sha1-7GZi5IlkCO1KtsVCo5kLcswIACA= + /lodash/4.17.19: + resolution: + integrity: sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ== + /log-driver/1.2.7: + dev: true + engines: + node: '>=0.8.6' + resolution: + integrity: sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg== + /loglevel-plugin-prefix/0.8.4: + dev: true + resolution: + integrity: sha512-WpG9CcFAOjz/FtNht+QJeGpvVl/cdR6P0z6OcXSkr8wFJOsV2GRj2j10JLfjuA4aYkcKCNIEqRGCyTife9R8/g== + /loglevel/1.6.8: + dev: true + engines: + node: '>= 0.6.0' + resolution: + integrity: sha512-bsU7+gc9AJ2SqpzxwU3+1fedl8zAntbtC5XYlt3s2j1hJcn2PsXSmgN8TaLG/J1/2mod4+cE/3vNL70/c1RNCA== + /loose-envify/1.4.0: + dependencies: + js-tokens: 4.0.0 + dev: true + hasBin: true + resolution: + integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + /lowercase-keys/2.0.0: + dev: true + engines: + node: '>=8' + resolution: + integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== + /lru-cache/4.1.5: + dependencies: + pseudomap: 1.0.2 + yallist: 2.1.2 + dev: true + resolution: + integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== + /make-dir/2.1.0: + dependencies: + pify: 4.0.1 + semver: 5.7.1 + dev: true + engines: + node: '>=6' + resolution: + integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== + /make-error/1.3.6: + dev: true + resolution: + integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + /make-iterator/1.0.1: + dependencies: + kind-of: 6.0.3 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw== + /map-cache/0.2.2: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= + /map-visit/1.0.0: + dependencies: + object-visit: 1.0.1 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= + /marky/1.2.1: + dev: true + resolution: + integrity: sha512-md9k+Gxa3qLH6sUKpeC2CNkJK/Ld+bEz5X96nYwloqphQE0CKCVEKco/6jxEZixinqNdz5RFi/KaCyfbMDMAXQ== + /merge-source-map/1.1.0: + dependencies: + source-map: 0.6.1 + dev: true + resolution: + integrity: sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw== + /micromatch/3.1.10: + dependencies: + arr-diff: 4.0.0 + array-unique: 0.3.2 + braces: 2.3.2 + define-property: 2.0.2 + extend-shallow: 3.0.2 + extglob: 2.0.4 + fragment-cache: 0.2.1 + kind-of: 6.0.3 + nanomatch: 1.2.13 + object.pick: 1.3.0 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== + /mime-db/1.44.0: + dev: true + engines: + node: '>= 0.6' + resolution: + integrity: sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg== + /mime-types/2.1.27: + dependencies: + mime-db: 1.44.0 + dev: true + engines: + node: '>= 0.6' + resolution: + integrity: sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w== + /mime/2.4.6: + dev: true + engines: + node: '>=4.0.0' + hasBin: true + resolution: + integrity: sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA== + /mimic-fn/1.2.0: + dev: true + engines: + node: '>=4' + resolution: + integrity: sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== + /mimic-response/1.0.1: + dev: true + engines: + node: '>=4' + resolution: + integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== + /mimic-response/3.1.0: + dev: true + engines: + node: '>=10' + resolution: + integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== + /minimatch/3.0.4: + dependencies: + brace-expansion: 1.1.11 + dev: true + resolution: + integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + /minimist/1.2.5: + dev: true + resolution: + integrity: sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + /minipass/2.9.0: + dependencies: + safe-buffer: 5.2.1 + yallist: 3.1.1 + dev: true + resolution: + integrity: sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== + /mixin-deep/1.3.2: + dependencies: + for-in: 1.0.2 + is-extendable: 1.0.1 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== + /mkdirp-classic/0.5.3: + dev: true + resolution: + integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== + /mkdirp/0.5.5: + dependencies: + minimist: 1.2.5 + dev: true + hasBin: true + resolution: + integrity: sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + /mkdirp/1.0.4: + dev: true + engines: + node: '>=10' + hasBin: true + resolution: + integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + /ms/2.0.0: + dev: true + resolution: + integrity: sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + /ms/2.1.2: + resolution: + integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + /mute-stream/0.0.7: + dev: true + resolution: + integrity: sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= + /nanomatch/1.2.13: + dependencies: + arr-diff: 4.0.0 + array-unique: 0.3.2 + define-property: 2.0.2 + extend-shallow: 3.0.2 + fragment-cache: 0.2.1 + is-windows: 1.0.2 + kind-of: 6.0.3 + object.pick: 1.3.0 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== + /natural-compare/1.4.0: + dev: true + resolution: + integrity: sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + /neo-async/2.6.2: + dev: true + resolution: + integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + /nested-error-stacks/2.1.0: + dev: true + resolution: + integrity: sha512-AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug== + /nice-try/1.0.5: + dev: true + resolution: + integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== + /nodeunit-x/0.13.0: + dependencies: + ejs: 2.7.4 + tap: 12.7.0 + dev: true + hasBin: true + resolution: + integrity: sha512-64AZrL+3JaiLm76KclMlZu2i0YKU10i8I4mQzERqs8Xf7UgqoQ5CuXPJmx4c+x8duiwategZ+g2DQCNORuGXLA== + /nopt/3.0.6: + dependencies: + abbrev: 1.1.1 + dev: true + hasBin: true + resolution: + integrity: sha1-xkZdvwirzU2zWTF/eaxopkayj/k= + /nopt/4.0.3: + dependencies: + abbrev: 1.1.1 + osenv: 0.1.5 + dev: true + hasBin: true + resolution: + integrity: sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg== + /normalize-package-data/2.5.0: + dependencies: + hosted-git-info: 2.8.8 + resolve: 1.17.0 + semver: 5.7.1 + validate-npm-package-license: 3.0.4 + dev: true + resolution: + integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + /normalize-path/3.0.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + /normalize-url/4.5.0: + dev: true + engines: + node: '>=8' + resolution: + integrity: sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== + /nue/0.7.1: + dev: true + resolution: + integrity: sha1-M1I73wnJjiSf1C1Mko6MxsdlBz8= + /nyc/14.1.1: + dependencies: + archy: 1.0.0 + caching-transform: 3.0.2 + convert-source-map: 1.7.0 + cp-file: 6.2.0 + find-cache-dir: 2.1.0 + find-up: 3.0.0 + foreground-child: 1.5.6 + glob: 7.1.6 + istanbul-lib-coverage: 2.0.5 + istanbul-lib-hook: 2.0.7 + istanbul-lib-instrument: 3.3.0 + istanbul-lib-report: 2.0.8 + istanbul-lib-source-maps: 3.0.6 + istanbul-reports: 2.2.7 + js-yaml: 3.14.0 + make-dir: 2.1.0 + merge-source-map: 1.1.0 + resolve-from: 4.0.0 + rimraf: 2.7.1 + signal-exit: 3.0.3 + spawn-wrap: 1.4.3 + test-exclude: 5.2.3 + uuid: 3.4.0 + yargs: 13.3.2 + yargs-parser: 13.1.2 + dev: true + engines: + node: '>=6' + hasBin: true + resolution: + integrity: sha512-OI0vm6ZGUnoGZv/tLdZ2esSVzDwUC88SNs+6JoSOMVxA+gKMB8Tk7jBwgemLx4O40lhhvZCVw1C+OYLOBOPXWw== + /oauth-sign/0.9.0: + dev: true + resolution: + integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + /object-assign/4.1.1: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + /object-copy/0.1.0: + dependencies: + copy-descriptor: 0.1.1 + define-property: 0.2.5 + kind-of: 3.2.2 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-fn2Fi3gb18mRpBupde04EnVOmYw= + /object-inspect/1.8.0: + dev: true + resolution: + integrity: sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA== + /object-keys/1.1.1: + dev: true + engines: + node: '>= 0.4' + resolution: + integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + /object-visit/1.0.1: + dependencies: + isobject: 3.0.1 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= + /object.assign/4.1.0: + dependencies: + define-properties: 1.1.3 + function-bind: 1.1.1 + has-symbols: 1.0.1 + object-keys: 1.1.1 + dev: true + engines: + node: '>= 0.4' + resolution: + integrity: sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== + /object.defaults/1.1.0: + dependencies: + array-each: 1.0.1 + array-slice: 1.1.0 + for-own: 1.0.0 + isobject: 3.0.1 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8= + /object.map/1.0.1: + dependencies: + for-own: 1.0.0 + make-iterator: 1.0.1 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-z4Plncj8wK1fQlDh94s7gb2AHTc= + /object.pick/1.3.0: + dependencies: + isobject: 3.0.1 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= + /once/1.4.0: + dependencies: + wrappy: 1.0.2 + dev: true + resolution: + integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + /onetime/2.0.1: + dependencies: + mimic-fn: 1.2.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= + /opener/1.5.1: + dev: true + hasBin: true + resolution: + integrity: sha512-goYSy5c2UXE4Ra1xixabeVh1guIX/ZV/YokJksb6q2lubWu6UbvPQ20p542/sFIll1nl8JnCyK9oBaOcCWXwvA== + /optionator/0.8.3: + dependencies: + deep-is: 0.1.3 + fast-levenshtein: 2.0.6 + levn: 0.3.0 + prelude-ls: 1.1.2 + type-check: 0.3.2 + word-wrap: 1.2.3 + dev: true + engines: + node: '>= 0.8.0' + resolution: + integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== + /os-homedir/1.0.2: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-/7xJiDNuDoM94MFox+8VISGqf7M= + /os-tmpdir/1.0.2: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= + /osenv/0.1.5: + dependencies: + os-homedir: 1.0.2 + os-tmpdir: 1.0.2 + dev: true + resolution: + integrity: sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== + /own-or-env/1.0.1: + dependencies: + own-or: 1.0.0 + dev: true + resolution: + integrity: sha512-y8qULRbRAlL6x2+M0vIe7jJbJx/kmUTzYonRAa2ayesR2qWLswninkVyeJe4x3IEXhdgoNodzjQRKAoEs6Fmrw== + /own-or/1.0.0: + dev: true + resolution: + integrity: sha1-Tod/vtqaLsgAD7wLyuOWRe6L+Nw= + /p-cancelable/2.0.0: + dev: true + engines: + node: '>=8' + resolution: + integrity: sha512-wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg== + /p-limit/1.3.0: + dependencies: + p-try: 1.0.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== + /p-limit/2.3.0: + dependencies: + p-try: 2.2.0 + dev: true + engines: + node: '>=6' + resolution: + integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + /p-locate/2.0.0: + dependencies: + p-limit: 1.3.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= + /p-locate/3.0.0: + dependencies: + p-limit: 2.3.0 + dev: true + engines: + node: '>=6' + resolution: + integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + /p-locate/4.1.0: + dependencies: + p-limit: 2.3.0 + dev: true + engines: + node: '>=8' + resolution: + integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + /p-try/1.0.0: + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= + /p-try/2.2.0: + dev: true + engines: + node: '>=6' + resolution: + integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + /package-hash/3.0.0: + dependencies: + graceful-fs: 4.2.4 + hasha: 3.0.0 + lodash.flattendeep: 4.4.0 + release-zalgo: 1.0.0 + dev: true + engines: + node: '>=6' + resolution: + integrity: sha512-lOtmukMDVvtkL84rJHI7dpTYq+0rli8N2wlnqUcBuDWCfVhRUfOmnR9SsoHFMLpACvEV60dX7rd0rFaYDZI+FA== + /parse-filepath/1.0.2: + dependencies: + is-absolute: 1.0.0 + map-cache: 0.2.2 + path-root: 0.1.1 + dev: true + engines: + node: '>=0.8' + resolution: + integrity: sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE= + /parse-json/2.2.0: + dependencies: + error-ex: 1.3.2 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= + /parse-json/4.0.0: + dependencies: + error-ex: 1.3.2 + json-parse-better-errors: 1.0.2 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= + /parse-passwd/1.0.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= + /pascalcase/0.1.1: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= + /path-exists/3.0.0: + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + /path-exists/4.0.0: + dev: true + engines: + node: '>=8' + resolution: + integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + /path-is-absolute/1.0.1: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + /path-is-inside/1.0.2: + dev: true + resolution: + integrity: sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= + /path-key/2.0.1: + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= + /path-parse/1.0.6: + dev: true + resolution: + integrity: sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== + /path-root-regex/0.1.2: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0= + /path-root/0.1.1: + dependencies: + path-root-regex: 0.1.2 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc= + /path-type/2.0.0: + dependencies: + pify: 2.3.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM= + /path-type/3.0.0: + dependencies: + pify: 3.0.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== + /pend/1.2.0: + dev: true + resolution: + integrity: sha1-elfrVQpng/kRUzH89GY9XI4AelA= + /performance-now/2.1.0: + dev: true + resolution: + integrity: sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + /pify/2.3.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-7RQaasBDqEnqWISY59yosVMw6Qw= + /pify/3.0.0: + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= + /pify/4.0.1: + dev: true + engines: + node: '>=6' + resolution: + integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + /pkg-conf/2.1.0: + dependencies: + find-up: 2.1.0 + load-json-file: 4.0.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg= + /pkg-config/1.1.1: + dependencies: + debug-log: 1.0.1 + find-root: 1.1.0 + xtend: 4.0.2 + dev: true + engines: + node: '>=0.10' + resolution: + integrity: sha1-VX7yLXPaPIg3EHdmxS6tq94pj+Q= + /pkg-dir/2.0.0: + dependencies: + find-up: 2.1.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= + /pkg-dir/3.0.0: + dependencies: + find-up: 3.0.0 + dev: true + engines: + node: '>=6' + resolution: + integrity: sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== + /pkg-dir/4.2.0: + dependencies: + find-up: 4.1.0 + dev: true + engines: + node: '>=8' + resolution: + integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + /pluralize/7.0.0: + dev: true + engines: + node: '>=4' + resolution: + integrity: sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow== + /portscanner/2.2.0: + dependencies: + async: 2.6.3 + is-number-like: 1.0.8 + dev: false + engines: + node: '>=0.4' + npm: '>=1.0.0' + resolution: + integrity: sha512-IFroCz/59Lqa2uBvzK3bKDbDDIEaAY8XJ1jFxcLWTqosrsc32//P4VuSB2vZXoHiHqOmx8B5L5hnKOxL/7FlPw== + /posix-character-classes/0.1.1: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= + /prelude-ls/1.1.2: + dev: true + engines: + node: '>= 0.8.0' + resolution: + integrity: sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= + /process-nextick-args/2.0.1: + dev: true + resolution: + integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + /progress/2.0.3: + dev: true + engines: + node: '>=0.4.0' + resolution: + integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + /promise/7.3.1: + dependencies: + asap: 2.0.6 + dev: true + resolution: + integrity: sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg== + /prop-types/15.7.2: + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + dev: true + resolution: + integrity: sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== + /proxy-from-env/1.1.0: + dev: true + resolution: + integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + /pseudomap/1.0.2: + dev: true + resolution: + integrity: sha1-8FKijacOYYkX7wqKw0wa5aaChrM= + /psl/1.8.0: + dev: true + resolution: + integrity: sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== + /pump/3.0.0: + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + dev: true + resolution: + integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + /punycode/1.4.1: + dev: true + resolution: + integrity: sha1-wNWmOycYgArY4esPpSachN1BhF4= + /punycode/2.1.1: + dev: true + engines: + node: '>=6' + resolution: + integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + /puppeteer-core/5.2.1: + dependencies: + debug: 4.1.1 + devtools-protocol: 0.0.781568 + extract-zip: 2.0.1 + https-proxy-agent: 4.0.0 + mime: 2.4.6 + pkg-dir: 4.2.0 + progress: 2.0.3 + proxy-from-env: 1.1.0 + rimraf: 3.0.2 + tar-fs: 2.1.0 + unbzip2-stream: 1.4.3 + ws: 7.3.1 + dev: true + engines: + node: '>=10.18.1' + resolution: + integrity: sha512-gLjEOrzwgcnwRH+sm4hS1TBqe2/DN248nRb2hYB7+lZ9kCuLuACNvuzlXILlPAznU3Ob+mEvVEBDcLuFa0zq3g== + /qs/6.5.2: + dev: true + engines: + node: '>=0.6' + resolution: + integrity: sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== + /quick-lru/5.1.1: + dev: true + engines: + node: '>=10' + resolution: + integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== + /react-is/16.13.1: + dev: true + resolution: + integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + /read-pkg-up/2.0.0: + dependencies: + find-up: 2.1.0 + read-pkg: 2.0.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4= + /read-pkg-up/4.0.0: + dependencies: + find-up: 3.0.0 + read-pkg: 3.0.0 + dev: true + engines: + node: '>=6' + resolution: + integrity: sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA== + /read-pkg/2.0.0: + dependencies: + load-json-file: 2.0.0 + normalize-package-data: 2.5.0 + path-type: 2.0.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg= + /read-pkg/3.0.0: + dependencies: + load-json-file: 4.0.0 + normalize-package-data: 2.5.0 + path-type: 3.0.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k= + /readable-stream/2.3.7: + dependencies: + core-util-is: 1.0.2 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + dev: true + resolution: + integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== + /readable-stream/3.6.0: + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + dev: true + engines: + node: '>= 6' + resolution: + integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + /readdir-glob/1.0.0: + dependencies: + minimatch: 3.0.4 + dev: true + resolution: + integrity: sha512-km0DIcwQVZ1ZUhXhMWpF74/Wm5aFEd5/jDiVWF1Hkw2myPQovG8vCQ8+FQO2KXE9npQQvCnAMZhhWuUee4WcCQ== + /rechoir/0.6.2: + dependencies: + resolve: 1.17.0 + dev: true + engines: + node: '>= 0.10' + resolution: + integrity: sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q= + /regex-not/1.0.2: + dependencies: + extend-shallow: 3.0.2 + safe-regex: 1.1.0 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== + /regexpp/2.0.1: + dev: true + engines: + node: '>=6.5.0' + resolution: + integrity: sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== + /release-zalgo/1.0.0: + dependencies: + es6-error: 4.1.1 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA= + /repeat-element/1.1.3: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== + /repeat-string/1.6.1: + dev: true + engines: + node: '>=0.10' + resolution: + integrity: sha1-jcrkcOHIirwtYA//Sndihtp15jc= + /request/2.88.2: + dependencies: + aws-sign2: 0.7.0 + aws4: 1.10.0 + caseless: 0.12.0 + combined-stream: 1.0.8 + extend: 3.0.2 + forever-agent: 0.6.1 + form-data: 2.3.3 + 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.27 + oauth-sign: 0.9.0 + performance-now: 2.1.0 + qs: 6.5.2 + safe-buffer: 5.2.1 + tough-cookie: 2.5.0 + tunnel-agent: 0.6.0 + uuid: 3.4.0 + deprecated: 'request has been deprecated, see https://github.com/request/request/issues/3142' + dev: true + engines: + node: '>= 6' + resolution: + integrity: sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== + /require-directory/2.1.1: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + /require-main-filename/2.0.0: + dev: true + resolution: + integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + /require-uncached/1.0.3: + dependencies: + caller-path: 0.1.0 + resolve-from: 1.0.1 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM= + /resolve-alpn/1.0.0: + dev: true + resolution: + integrity: sha512-rTuiIEqFmGxne4IovivKSDzld2lWW9QCjqv80SYjPgf+gS35eaCAjaP54CCwGAwBtnCsvNLYtqxe1Nw+i6JEmA== + /resolve-dir/1.0.1: + dependencies: + expand-tilde: 2.0.2 + global-modules: 1.0.0 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-eaQGRMNivoLybv/nOcm7U4IEb0M= + /resolve-from/1.0.1: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY= + /resolve-from/4.0.0: + dev: true + engines: + node: '>=4' + resolution: + integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + /resolve-url/0.2.1: + deprecated: 'https://github.com/lydell/resolve-url#deprecated' + dev: true + resolution: + integrity: sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= + /resolve/1.1.7: + dev: true + resolution: + integrity: sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= + /resolve/1.17.0: + dependencies: + path-parse: 1.0.6 + dev: true + resolution: + integrity: sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== + /responselike/2.0.0: + dependencies: + lowercase-keys: 2.0.0 + dev: true + resolution: + integrity: sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw== + /resq/1.7.1: + dependencies: + fast-deep-equal: 2.0.1 + dev: true + resolution: + integrity: sha512-09u9Q5SAuJfAW5UoVAmvRtLvCOMaKP+djiixTXsZvPaojGKhuvc0Nfvp84U1rIfopJWEOXi5ywpCFwCk7mj8Xw== + /restore-cursor/2.0.0: + dependencies: + onetime: 2.0.1 + signal-exit: 3.0.3 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-n37ih/gv0ybU/RYpI9YhKe7g368= + /ret/0.1.15: + dev: true + engines: + node: '>=0.12' + resolution: + integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== + /rgb2hex/0.2.0: + dev: true + resolution: + integrity: sha512-cHdNTwmTMPu/TpP1bJfdApd6MbD+Kzi4GNnM6h35mdFChhQPSi9cAI8J7DMn5kQDKX8NuBaQXAyo360Oa7tOEA== + /rimraf/2.6.3: + dependencies: + glob: 7.1.6 + dev: true + hasBin: true + resolution: + integrity: sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== + /rimraf/2.7.1: + dependencies: + glob: 7.1.6 + dev: true + hasBin: true + resolution: + integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + /rimraf/3.0.2: + dependencies: + glob: 7.1.6 + dev: true + hasBin: true + resolution: + integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + /run-async/2.4.1: + dev: true + engines: + node: '>=0.12.0' + resolution: + integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== + /run-parallel/1.1.9: + dev: true + resolution: + integrity: sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q== + /rxjs/5.5.12: + dependencies: + symbol-observable: 1.0.1 + dev: true + engines: + npm: '>=2.0.0' + resolution: + integrity: sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw== + /safe-buffer/5.1.2: + dev: true + resolution: + integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + /safe-buffer/5.2.1: + dev: true + resolution: + integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + /safe-regex/1.1.0: + dependencies: + ret: 0.1.15 + dev: true + resolution: + integrity: sha1-QKNmnzsHfR6UPURinhV91IAjvy4= + /safer-buffer/2.1.2: + dev: true + resolution: + integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + /semver/5.7.1: + dev: true + hasBin: true + resolution: + integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + /semver/6.3.0: + dev: true + hasBin: true + resolution: + integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + /serialize-error/7.0.1: + dependencies: + type-fest: 0.13.1 + dev: true + engines: + node: '>=10' + resolution: + integrity: sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw== + /set-blocking/2.0.0: + dev: true + resolution: + integrity: sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + /set-value/2.0.1: + dependencies: + extend-shallow: 2.0.1 + is-extendable: 0.1.1 + is-plain-object: 2.0.4 + split-string: 3.1.0 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== + /shebang-command/1.2.0: + dependencies: + shebang-regex: 1.0.0 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= + /shebang-regex/1.0.0: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= + /signal-exit/3.0.3: + dev: true + resolution: + integrity: sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== + /slice-ansi/1.0.0: + dependencies: + is-fullwidth-code-point: 2.0.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg== + /snapdragon-node/2.1.1: + dependencies: + define-property: 1.0.0 + isobject: 3.0.1 + snapdragon-util: 3.0.1 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== + /snapdragon-util/3.0.1: + dependencies: + kind-of: 3.2.2 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== + /snapdragon/0.8.2: + dependencies: + base: 0.11.2 + debug: 2.6.9 + define-property: 0.2.5 + extend-shallow: 2.0.1 + map-cache: 0.2.2 + source-map: 0.5.7 + source-map-resolve: 0.5.3 + use: 3.1.1 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== + /source-map-resolve/0.5.3: + dependencies: + atob: 2.1.2 + decode-uri-component: 0.2.0 + resolve-url: 0.2.1 + source-map-url: 0.4.0 + urix: 0.1.0 + dev: true + resolution: + integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== + /source-map-support/0.5.19: + dependencies: + buffer-from: 1.1.1 + source-map: 0.6.1 + dev: true + resolution: + integrity: sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== + /source-map-url/0.4.0: + dev: true + resolution: + integrity: sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= + /source-map/0.2.0: + dependencies: + amdefine: 1.0.1 + dev: true + engines: + node: '>=0.8.0' + optional: true + resolution: + integrity: sha1-2rc/vPwrqBm03gO9b26qSBZLP50= + /source-map/0.5.7: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + /source-map/0.6.1: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + /spawn-wrap/1.4.3: + dependencies: + foreground-child: 1.5.6 + mkdirp: 0.5.5 + os-homedir: 1.0.2 + rimraf: 2.7.1 + signal-exit: 3.0.3 + which: 1.3.1 + dev: true + resolution: + integrity: sha512-IgB8md0QW/+tWqcavuFgKYR/qIRvJkRLPJDFaoXtLLUaVcCDK0+HeFTkmQHj3eprcYhc+gOl0aEA1w7qZlYezw== + /spdx-correct/3.1.1: + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.5 + dev: true + resolution: + integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== + /spdx-exceptions/2.3.0: + dev: true + resolution: + integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== + /spdx-expression-parse/3.0.1: + dependencies: + spdx-exceptions: 2.3.0 + spdx-license-ids: 3.0.5 + dev: true + resolution: + integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + /spdx-license-ids/3.0.5: + dev: true + resolution: + integrity: sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== + /split-string/3.1.0: + dependencies: + extend-shallow: 3.0.2 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== + /sprintf-js/1.0.3: + dev: true + resolution: + integrity: sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + /sprintf-js/1.1.2: + dev: true + resolution: + integrity: sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug== + /sshpk/1.16.1: + dependencies: + asn1: 0.2.4 + assert-plus: 1.0.0 + bcrypt-pbkdf: 1.0.2 + dashdash: 1.14.1 + ecc-jsbn: 0.1.2 + getpass: 0.1.7 + jsbn: 0.1.1 + safer-buffer: 2.1.2 + tweetnacl: 0.14.5 + dev: true + engines: + node: '>=0.10.0' + hasBin: true + resolution: + integrity: sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== + /stack-utils/1.0.2: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA== + /standard-engine/9.0.0: + dependencies: + deglob: 2.1.1 + get-stdin: 6.0.0 + minimist: 1.2.5 + pkg-conf: 2.1.0 + dev: true + resolution: + integrity: sha512-ZfNfCWZ2Xq67VNvKMPiVMKHnMdvxYzvZkf1AH8/cw2NLDBm5LRsxMqvEJpsjLI/dUosZ3Z1d6JlHDp5rAvvk2w== + /standard/12.0.1: + dependencies: + eslint: 5.4.0 + eslint-config-standard: 12.0.0_c42c979afabd254629515c034069b101 + eslint-config-standard-jsx: 6.0.2_e60ea4cf0c907bef2e3b23660a172e14 + eslint-plugin-import: 2.14.0_eslint@5.4.0 + eslint-plugin-node: 7.0.1_eslint@5.4.0 + eslint-plugin-promise: 4.0.1 + eslint-plugin-react: 7.11.1_eslint@5.4.0 + eslint-plugin-standard: 4.0.1_eslint@5.4.0 + standard-engine: 9.0.0 + dev: true + engines: + node: '>=4' + hasBin: true + resolution: + integrity: sha512-UqdHjh87OG2gUrNCSM4QRLF5n9h3TFPwrCNyVlkqu31Hej0L/rc8hzKqVvkb2W3x0WMq7PzZdkLfEcBhVOR6lg== + /static-extend/0.1.2: + dependencies: + define-property: 0.2.5 + object-copy: 0.1.0 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= + /string-width/2.1.1: + dependencies: + is-fullwidth-code-point: 2.0.0 + strip-ansi: 4.0.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + /string-width/3.1.0: + dependencies: + emoji-regex: 7.0.3 + is-fullwidth-code-point: 2.0.0 + strip-ansi: 5.2.0 + dev: true + engines: + node: '>=6' + resolution: + integrity: sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== + /string.prototype.trimend/1.0.1: + dependencies: + define-properties: 1.1.3 + es-abstract: 1.17.6 + dev: true + resolution: + integrity: sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g== + /string.prototype.trimstart/1.0.1: + dependencies: + define-properties: 1.1.3 + es-abstract: 1.17.6 + dev: true + resolution: + integrity: sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw== + /string_decoder/1.1.1: + dependencies: + safe-buffer: 5.1.2 + dev: true + resolution: + integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + /string_decoder/1.3.0: + dependencies: + safe-buffer: 5.2.1 + dev: true + resolution: + integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + /strip-ansi/3.0.1: + dependencies: + ansi-regex: 2.1.1 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= + /strip-ansi/4.0.0: + dependencies: + ansi-regex: 3.0.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-qEeQIusaw2iocTibY1JixQXuNo8= + /strip-ansi/5.2.0: + dependencies: + ansi-regex: 4.1.0 + dev: true + engines: + node: '>=6' + resolution: + integrity: sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + /strip-ansi/6.0.0: + dependencies: + ansi-regex: 5.0.0 + dev: true + engines: + node: '>=8' + resolution: + integrity: sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== + /strip-bom/3.0.0: + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= + /strip-json-comments/2.0.1: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-PFMZQukIwml8DsNEhYwobHygpgo= + /supports-color/2.0.0: + dev: true + engines: + node: '>=0.8.0' + resolution: + integrity: sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= + /supports-color/3.2.3: + dependencies: + has-flag: 1.0.0 + dev: true + engines: + node: '>=0.8.0' + resolution: + integrity: sha1-ZawFBLOVQXHYpklGsq48u4pfVPY= + /supports-color/5.5.0: + dependencies: + has-flag: 3.0.0 + dev: true + engines: + node: '>=4' + resolution: + integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + /supports-color/6.1.0: + dependencies: + has-flag: 3.0.0 + dev: true + engines: + node: '>=6' + resolution: + integrity: sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== + /supports-color/7.1.0: + dependencies: + has-flag: 4.0.0 + dev: true + engines: + node: '>=8' + resolution: + integrity: sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== + /symbol-observable/1.0.1: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ= + /table/4.0.3: + dependencies: + ajv: 6.12.3 + ajv-keywords: 3.5.1_ajv@6.12.3 + chalk: 2.4.2 + lodash: 4.17.19 + slice-ansi: 1.0.0 + string-width: 2.1.1 + dev: true + engines: + node: '>=4.0.0' + resolution: + integrity: sha512-S7rnFITmBH1EnyKcvxBh1LjYeQMmnZtCXSEbHcH6S0NoKit24ZuFO/T1vDcLdYsLQkM188PVVhQmzKIuThNkKg== + /tap-mocha-reporter/3.0.9: + dependencies: + color-support: 1.1.3 + debug: 2.6.9 + diff: 1.4.0 + escape-string-regexp: 1.0.5 + glob: 7.1.6 + js-yaml: 3.14.0 + tap-parser: 5.4.0 + unicode-length: 1.0.3 + dev: true + hasBin: true + optionalDependencies: + readable-stream: 2.3.7 + resolution: + integrity: sha512-VO07vhC9EG27EZdOe7bWBj1ldbK+DL9TnRadOgdQmiQOVZjFpUEQuuqO7+rNSO2kfmkq5hWeluYXDWNG/ytXTQ== + /tap-parser/5.4.0: + dependencies: + events-to-array: 1.1.2 + js-yaml: 3.14.0 + dev: true + hasBin: true + optionalDependencies: + readable-stream: 2.3.7 + resolution: + integrity: sha512-BIsIaGqv7uTQgTW1KLTMNPSEQf4zDDPgYOBRdgOfuB+JFOLRBfEu6cLa/KvMvmqggu1FKXDfitjLwsq4827RvA== + /tap-parser/7.0.0: + dependencies: + events-to-array: 1.1.2 + js-yaml: 3.14.0 + minipass: 2.9.0 + dev: true + hasBin: true + resolution: + integrity: sha512-05G8/LrzqOOFvZhhAk32wsGiPZ1lfUrl+iV7+OkKgfofZxiceZWMHkKmow71YsyVQ8IvGBP2EjcIjE5gL4l5lA== + /tap/12.7.0: + dependencies: + bind-obj-methods: 2.0.0 + browser-process-hrtime: 1.0.0 + capture-stack-trace: 1.0.1 + clean-yaml-object: 0.1.0 + color-support: 1.1.3 + coveralls: 3.1.0 + domain-browser: 1.2.0 + esm: 3.2.25 + foreground-child: 1.5.6 + fs-exists-cached: 1.0.0 + function-loop: 1.0.2 + glob: 7.1.6 + isexe: 2.0.0 + js-yaml: 3.14.0 + minipass: 2.9.0 + mkdirp: 0.5.5 + nyc: 14.1.1 + opener: 1.5.1 + os-homedir: 1.0.2 + own-or: 1.0.0 + own-or-env: 1.0.1 + rimraf: 2.7.1 + signal-exit: 3.0.3 + source-map-support: 0.5.19 + stack-utils: 1.0.2 + tap-mocha-reporter: 3.0.9 + tap-parser: 7.0.0 + tmatch: 4.0.0 + trivial-deferred: 1.0.1 + ts-node: 8.10.2_typescript@3.9.7 + tsame: 2.0.1 + typescript: 3.9.7 + write-file-atomic: 2.4.3 + yapool: 1.0.0 + dev: true + engines: + node: '>=4' + hasBin: true + resolution: + integrity: sha512-SjglJmRv0pqrQQ7d5ZBEY8ZOqv3nYDBXEX51oyycOH7piuhn82JKT/yDNewwmOsodTD/RZL9MccA96EjDgK+Eg== + /tar-fs/2.1.0: + dependencies: + chownr: 1.1.4 + mkdirp-classic: 0.5.3 + pump: 3.0.0 + tar-stream: 2.1.3 + dev: true + resolution: + integrity: sha512-9uW5iDvrIMCVpvasdFHW0wJPez0K4JnMZtsuIeDI7HyMGJNxmDZDOCQROr7lXyS+iL/QMpj07qcjGYTSdRFXUg== + /tar-stream/2.1.3: + dependencies: + bl: 4.0.2 + end-of-stream: 1.4.4 + fs-constants: 1.0.0 + inherits: 2.0.4 + readable-stream: 3.6.0 + dev: true + engines: + node: '>=6' + resolution: + integrity: sha512-Z9yri56Dih8IaK8gncVPx4Wqt86NDmQTSh49XLZgjWpGZL9GK9HKParS2scqHCC4w6X9Gh2jwaU45V47XTKwVA== + /tcp-port-used/1.0.1: + dependencies: + debug: 4.1.0 + is2: 2.0.1 + resolution: + integrity: sha512-rwi5xJeU6utXoEIiMvVBMc9eJ2/ofzB+7nLOdnZuFTmNCLqRiQh2sMG9MqCxHU/69VC/Fwp5dV9306Qd54ll1Q== + /test-exclude/5.2.3: + dependencies: + glob: 7.1.6 + minimatch: 3.0.4 + read-pkg-up: 4.0.0 + require-main-filename: 2.0.0 + dev: true + engines: + node: '>=6' + resolution: + integrity: sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g== + /text-table/0.2.0: + dev: true + resolution: + integrity: sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + /through/2.3.8: + dev: true + resolution: + integrity: sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= + /tmatch/4.0.0: + dev: true + resolution: + integrity: sha512-Ynn2Gsp+oCvYScQXeV+cCs7citRDilq0qDXA6tuvFwDgiYyyaq7D5vKUlAPezzZR5NDobc/QMeN6e5guOYmvxg== + /tmp/0.0.33: + dependencies: + os-tmpdir: 1.0.2 + dev: true + engines: + node: '>=0.6.0' + resolution: + integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== + /to-fast-properties/2.0.0: + dev: true + engines: + node: '>=4' + resolution: + integrity: sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + /to-object-path/0.3.0: + dependencies: + kind-of: 3.2.2 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= + /to-regex-range/2.1.1: + dependencies: + is-number: 3.0.0 + repeat-string: 1.6.1 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= + /to-regex/3.0.2: + dependencies: + define-property: 2.0.2 + extend-shallow: 3.0.2 + regex-not: 1.0.2 + safe-regex: 1.1.0 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== + /tough-cookie/2.5.0: + dependencies: + psl: 1.8.0 + punycode: 2.1.1 + dev: true + engines: + node: '>=0.8' + resolution: + integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + /trivial-deferred/1.0.1: + dev: true + resolution: + integrity: sha1-N21NKdlR1jaKb3oK6FwvTV4GWPM= + /ts-node/8.10.2_typescript@3.9.7: + dependencies: + arg: 4.1.3 + diff: 4.0.2 + make-error: 1.3.6 + source-map-support: 0.5.19 + typescript: 3.9.7 + yn: 3.1.1 + dev: true + engines: + node: '>=6.0.0' + hasBin: true + peerDependencies: + typescript: '>=2.7' + resolution: + integrity: sha512-ISJJGgkIpDdBhWVu3jufsWpK3Rzo7bdiIXJjQc0ynKxVOVcg2oIrf2H2cejminGrptVc6q6/uynAHNCuWGbpVA== + /tsame/2.0.1: + dev: true + resolution: + integrity: sha512-jxyxgKVKa4Bh5dPcO42TJL22lIvfd9LOVJwdovKOnJa4TLLrHxquK+DlGm4rkGmrcur+GRx+x4oW00O2pY/fFw== + /tunnel-agent/0.6.0: + dependencies: + safe-buffer: 5.2.1 + dev: true + resolution: + integrity: sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= + /tweetnacl/0.14.5: + dev: true + resolution: + integrity: sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= + /type-check/0.3.2: + dependencies: + prelude-ls: 1.1.2 + dev: true + engines: + node: '>= 0.8.0' + resolution: + integrity: sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= + /type-fest/0.13.1: + dev: true + engines: + node: '>=10' + resolution: + integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg== + /typescript/3.9.7: + dev: true + engines: + node: '>=4.2.0' + hasBin: true + resolution: + integrity: sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw== + /ua-parser-js/0.7.21: + dev: true + resolution: + integrity: sha512-+O8/qh/Qj8CgC6eYBVBykMrNtp5Gebn4dlGD/kKXVkJNDwyrAwSIqwz8CDf+tsAIWVycKcku6gIXJ0qwx/ZXaQ== + /uglify-js/3.10.0: + dev: true + engines: + node: '>=0.8.0' + hasBin: true + optional: true + resolution: + integrity: sha512-Esj5HG5WAyrLIdYU74Z3JdG2PxdIusvj6IWHMtlyESxc7kcDz7zYlYjpnSokn1UbpV0d/QX9fan7gkCNd/9BQA== + /unbzip2-stream/1.4.3: + dependencies: + buffer: 5.6.0 + through: 2.3.8 + dev: true + resolution: + integrity: sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg== + /unc-path-regex/0.1.2: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-5z3T17DXxe2G+6xrCufYxqadUPo= + /underscore.string/3.3.5: + dependencies: + sprintf-js: 1.1.2 + util-deprecate: 1.0.2 + dev: true + resolution: + integrity: sha512-g+dpmgn+XBneLmXXo+sGlW5xQEt4ErkS3mgeN2GFbremYeMBSJKr9Wf2KJplQVaiPY/f7FN6atosWYNm9ovrYg== + /unicode-length/1.0.3: + dependencies: + punycode: 1.4.1 + strip-ansi: 3.0.1 + dev: true + resolution: + integrity: sha1-Wtp6f+1RhBpBijKM8UlHisg1irs= + /union-value/1.0.1: + dependencies: + arr-union: 3.1.0 + get-value: 2.0.6 + is-extendable: 0.1.1 + set-value: 2.0.1 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== + /uniq/1.0.1: + dev: true + resolution: + integrity: sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= + /unset-value/1.0.0: + dependencies: + has-value: 0.3.1 + isobject: 3.0.1 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= + /uri-js/4.2.2: + dependencies: + punycode: 2.1.1 + dev: true + resolution: + integrity: sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== + /urix/0.1.0: + deprecated: 'Please see https://github.com/lydell/urix#deprecated' + dev: true + resolution: + integrity: sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= + /use/3.1.1: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== + /util-deprecate/1.0.2: + dev: true + resolution: + integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + /uuid/3.4.0: + dev: true + hasBin: true + resolution: + integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + /uuid/8.2.0: + dev: true + hasBin: true + resolution: + integrity: sha512-CYpGiFTUrmI6OBMkAdjSDM0k5h8SkkiTP4WAjQgDgNB1S3Ou9VBEvr6q0Kv2H1mMk7IWfxYGpMH5sd5AvcIV2Q== + /v8flags/3.1.3: + dependencies: + homedir-polyfill: 1.0.3 + dev: true + engines: + node: '>= 0.10' + resolution: + integrity: sha512-amh9CCg3ZxkzQ48Mhcb8iX7xpAfYJgePHxWMQCBWECpOSqJUXgY26ncA61UTV0BkPqfhcy6mzwCIoP4ygxpW8w== + /validate-npm-package-license/3.0.4: + dependencies: + spdx-correct: 3.1.1 + spdx-expression-parse: 3.0.1 + dev: true + resolution: + integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + /verror/1.10.0: + dependencies: + assert-plus: 1.0.0 + core-util-is: 1.0.2 + extsprintf: 1.3.0 + dev: true + engines: + '0': node >=0.6.0 + resolution: + integrity: sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= + /webdriver/6.4.0: + dependencies: + '@wdio/config': 6.1.14 + '@wdio/logger': 6.0.16 + '@wdio/protocols': 6.3.6 + '@wdio/utils': 6.4.0 + got: 11.5.1 + lodash.merge: 4.6.2 + dev: true + engines: + node: '>=10.0.0' + resolution: + integrity: sha512-yF5i2Wc6G+uQdEl3iAFpDPFP3xgfucUWaj6uXogEcMtq67SSIc4G9mq6vZCUF6F/GoW0H5c9F0L8ab8ZSTSX6w== + /webdriverio/6.4.0: + dependencies: + '@types/puppeteer': 3.0.1 + '@wdio/config': 6.1.14 + '@wdio/logger': 6.0.16 + '@wdio/repl': 6.4.0 + '@wdio/utils': 6.4.0 + archiver: 5.0.0 + atob: 2.1.2 + css-value: 0.0.1 + devtools: 6.4.0 + get-port: 5.1.1 + grapheme-splitter: 1.0.4 + lodash.clonedeep: 4.5.0 + lodash.isobject: 3.0.2 + lodash.isplainobject: 4.0.6 + lodash.zip: 4.2.0 + minimatch: 3.0.4 + puppeteer-core: 5.2.1 + resq: 1.7.1 + rgb2hex: 0.2.0 + serialize-error: 7.0.1 + webdriver: 6.4.0 + dev: true + engines: + node: '>=10.0.0' + resolution: + integrity: sha512-dtttlqvOLp5tCvCvT/A9Slau/W+9d2VtaMsL8awF9lPpjKMRBXRfD541CqU8fxnIl1XszqAAvcXdTJkqgtGPyg== + /which-module/2.0.0: + dev: true + resolution: + integrity: sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= + /which/1.3.1: + dependencies: + isexe: 2.0.0 + dev: true + hasBin: true + resolution: + integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + /word-wrap/1.2.3: + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + /wordwrap/1.0.0: + dev: true + resolution: + integrity: sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= + /wrap-ansi/5.1.0: + dependencies: + ansi-styles: 3.2.1 + string-width: 3.1.0 + strip-ansi: 5.2.0 + dev: true + engines: + node: '>=6' + resolution: + integrity: sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== + /wrappy/1.0.2: + dev: true + resolution: + integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + /write-file-atomic/2.4.3: + dependencies: + graceful-fs: 4.2.4 + imurmurhash: 0.1.4 + signal-exit: 3.0.3 + dev: true + resolution: + integrity: sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ== + /write/0.2.1: + dependencies: + mkdirp: 0.5.5 + dev: true + engines: + node: '>=0.10.0' + resolution: + integrity: sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c= + /ws/7.3.1: + dev: true + engines: + node: '>=8.3.0' + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + resolution: + integrity: sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA== + /xtend/4.0.2: + dev: true + engines: + node: '>=0.4' + resolution: + integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + /y18n/4.0.0: + dev: true + resolution: + integrity: sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== + /yallist/2.1.2: + dev: true + resolution: + integrity: sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= + /yallist/3.1.1: + dev: true + resolution: + integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + /yapool/1.0.0: + dev: true + resolution: + integrity: sha1-9pPymjFbUNmp2iZGp6ZkXJaYW2o= + /yargs-parser/13.1.2: + dependencies: + camelcase: 5.3.1 + decamelize: 1.2.0 + dev: true + resolution: + integrity: sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== + /yargs/13.3.2: + dependencies: + cliui: 5.0.0 + find-up: 3.0.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + require-main-filename: 2.0.0 + set-blocking: 2.0.0 + string-width: 3.1.0 + which-module: 2.0.0 + y18n: 4.0.0 + yargs-parser: 13.1.2 + dev: true + resolution: + integrity: sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== + /yauzl/2.10.0: + dependencies: + buffer-crc32: 0.2.13 + fd-slicer: 1.1.0 + dev: true + resolution: + integrity: sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= + /yn/3.1.1: + dev: true + engines: + node: '>=6' + resolution: + integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== + /zip-stream/4.0.2: + dependencies: + archiver-utils: 2.1.0 + compress-commons: 4.0.1 + readable-stream: 3.6.0 + dev: true + engines: + node: '>= 10' + resolution: + integrity: sha512-TGxB2g+1ur6MHkvM644DuZr8Uzyz0k0OYWtS3YlpfWBEmK4woaC2t3+pozEL3dBfIPmpgmClR5B2QRcMgGt22g== +specifiers: + grunt: 1.2.1 + grunt-contrib-nodeunit: 2.1.0 + grunt-istanbul: 0.8.0 + grunt-standard: 3.2.0 + portscanner: 2.2.0 + tcp-port-used: 1.0.1 + webdriverio: 6.4.0 diff --git a/tasks/safaridriver.js b/tasks/safaridriver.js new file mode 100644 index 0000000..c850b88 --- /dev/null +++ b/tasks/safaridriver.js @@ -0,0 +1,108 @@ +const portscanner = require('portscanner') +const tcpPortUsed = require('tcp-port-used') +const { spawn } = require('child_process') + +const defaultPort = 4444 + +function getPortFromArgs (args) { + let port + if (args.some(arg => (port = /--port=(\d+)/.exec(arg)))) return +port[1] + args.some(arg => { + if (arg === '--port' || arg === '-p') port = true + else if (port) { + port = +arg + return true + } + }) + return port || defaultPort +} + +function finalizeArgs (options) { + const args = options.args || [] + const port = options.port || getPortFromArgs(args) + const promise = options.findAvailablePort ? portscanner.findAPortNotInUse(port) : Promise.resolve(port) + return promise.then(port => { + let skip + return { + args: args + .filter(arg => { + if (skip) { + skip = false + return false + } + if (arg === '-p') { + skip = true + return false + } + return !arg.startsWith('--port=') + }) + .concat([`--port=${port}`]), + port + } + }) +} + +let safaridriver + +module.exports = grunt => { + grunt.registerMultiTask('safaridriver', + 'Controls Safari on OSX using the WebDriver interface via safaridriver without Selenium.', + function (command) { + /* istanbul ignore next */ + if (!command) grunt.fatal('command verb missing; append ":start" or ":stop" to the task name') + switch (command.toLowerCase()) { + case 'start': start(this); break + case 'stop': stop(); break + /* istanbul ignore next */ + default: grunt.fatal(`invalid command verb: "${command}"; append ":start" or ":stop" to the task name`) + } + + function start (task) { + /* istanbul ignore next */ + if (safaridriver) grunt.fatal('SafariDriver already started.') + const done = task.async() + const options = Object.assign({ + findAvailablePort: false, + args: [], + force: false + }, task.data) + const target = this.target + let usedPort + finalizeArgs(options) + .then(({ args, port }) => { + usedPort = port + grunt.config.set(`safaridriver.${target}.port`, port) + grunt.log.writeln(`Starting SafariDriver on port ${port}`) + safaridriver = spawn('/usr/bin/safaridriver', args) + return new Promise((resolve, reject) => { + safaridriver.stdout.pipe(process.stdout) + safaridriver.stderr.pipe(process.stderr) + safaridriver.on('error', error => reject(error)) + setTimeout(resolve, 1000) + }) + }) + .then(() => tcpPortUsed.waitUntilUsed(usedPort, 200, 10000)) + .then(() => { + grunt.log.writeln('SafariDriver was started successfully.') + grunt.event.emit(`safaridriver.${target}.listening`, usedPort) + process.on('exit', stop) + }) + .catch(/* istanbul ignore next */ function (error) { + safaridriver = null + grunt.verbose.error(error.stack) + const warn = options.force ? grunt.log.warn : grunt.fail.warn + warn(`safaridriver failed: ${error.message}`) + }) + .finally(() => done()) + } + + function stop () { + if (safaridriver) { + grunt.log.writeln('Stopping SafariDriver.') + safaridriver.kill() + safaridriver = null + process.off('exit', stop) + } + } + }) +} diff --git a/test/started.js b/test/started.js new file mode 100644 index 0000000..f06c096 --- /dev/null +++ b/test/started.js @@ -0,0 +1,34 @@ +const { remote } = require('webdriverio') +const tcpPortUsed = require('tcp-port-used') +const defaultPort = 4444 + +exports.safaridriver = { + started: test => { + const port = +process.env.SAFARIDRIVER_PORT || defaultPort + tcpPortUsed + .check(port) + .then(used => test.ok(used, `port ${port} is used`)) + .catch(error => { + console.error(error.stack) + test.ok(false, error.message) + }) + .finally(() => test.done()) + }, + works: test => { + const port = +process.env.SAFARIDRIVER_PORT || defaultPort + remote({ + port, + logLevel: 'warn', + capabilities: { browserName: 'safari' } + }) + .then(browser => { + test.ok(true, 'browser is up') + return browser.deleteSession() + }) + .catch(error => { + console.error(error.stack) + test.ok(false, error.message) + }) + .finally(() => test.done()) + } +} diff --git a/test/stopped.js b/test/stopped.js new file mode 100644 index 0000000..b748781 --- /dev/null +++ b/test/stopped.js @@ -0,0 +1,16 @@ +const tcpPortUsed = require('tcp-port-used') +const defaultPort = 4444 + +exports.safaridriver = { + stopped: test => { + const port = +process.env.SAFARIDRIVER_PORT || defaultPort + tcpPortUsed + .waitUntilFree(port) + .then(() => test.ok(true, `port ${port} is free`)) + .catch(error => { + console.error(error.stack) + test.ok(false, error.message) + }) + .finally(() => test.done()) + } +}